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 ?

 Risposta accettata

Sean de Wolski
Sean de Wolski il 20 Giu 2016
Modificato: Sean de Wolski il 20 Giu 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 Commento

Tiago Casagrande
Tiago Casagrande il 21 Giu 2016
Modificato: Tiago Casagrande il 21 Giu 2016
Thanks man, worked perfectly!

Accedi per commentare.

Più risposte (0)

Categorie

Community Treasure Hunt

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

Start Hunting!

Translated by