# Mathematica, nested optmization [duplicate]

I want to use the solution of Maximize, defined as a function, in another function. Here's an example:

f1[y_] := x /. Last[Maximize[{Sin[x y], Abs[x] <= y}, x]]  (* or any other function *)


This definition is fine, for example if I give f1[4], I get the answer -((3 \[Pi])/8).

The problem is that when I want to use it in another function I get an error. For example:

FindRoot[f1[y] == Pi/4, {y, 1}]


Gives me the following error:

ReplaceAll::reps: {x} is neither a list of replacement rules nor a valid dispatch table, and so cannot be used for replacing. >>

FindRoot::nlnum: The function value {-0.785398+(x/.x)} is not a list of numbers with dimensions {1} at {y} = {1.}. >>

I've been struggling with this for several days now! Any comment, idea, help, ... is deeply appreciated!

-

## marked as duplicate by Szabolcs, Verbeia♦Mar 1 '13 at 4:28

Try evaluating f[y] alone and you'll see that the function f, a you defined it, simply isn't compatible with symbolic arguments. –  Szabolcs Mar 1 '13 at 4:00