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 Simulation, Tuning, Visualization, and MIDI 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