Can I call a fsolve funciton with arguments? I was trying to do somethink like this:
root2d.m file:
function (F) = root2d(x)
F(1) = x(1)*E+x(2)- x(2)*(x(1)^2); F(2) = x(1)*cos(x(2)) + x(2)*sin(x(1)) - E;
and calling the function: fun = @root2d; E = 23; x0 = [0,0]; x = fsolve(fun,x0);
So how can i call fsolve function for diferents values of E ?

 Accepted Answer

Sean de Wolski
Sean de Wolski on 20 Jun 2016
Edited: Sean de Wolski on 20 Jun 2016
Easiest way to do this is with a nested function. The nested function can see its parent workspace.
function x = fsolveex(E)
x0 = [0,0];
x = fsolve(@root2d,x0);
function F = root2d(x)
F(1) = x(1)*E+x(2)- x(2)*(x(1)^2);
F(2) = x(1)*cos(x(2)) + x(2)*sin(x(1)) - E;
end
end
Now just pass E values into fsolveex
x = fsolveex(23)

1 Comment

Tiago Casagrande
Tiago Casagrande on 21 Jun 2016
Edited: Tiago Casagrande on 21 Jun 2016
Thanks man, worked perfectly!

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!