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 ?

 Respuesta aceptada

Sean de Wolski
Sean de Wolski el 20 de Jun. de 2016
Editada: Sean de Wolski el 20 de Jun. de 2016

0 votos

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 comentario

Tiago Casagrande
Tiago Casagrande el 21 de Jun. de 2016
Editada: Tiago Casagrande el 21 de Jun. de 2016
Thanks man, worked perfectly!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Entering Commands en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 20 de Jun. de 2016

Editada:

el 21 de Jun. de 2016

Community Treasure Hunt

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

Start Hunting!

Translated by