Info

La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.

Problem with nonlinear solver fsolve??

3 visualizaciones (últimos 30 días)
ghazal mohamed
ghazal mohamed el 8 de En. de 2018
Cerrada: MATLAB Answer Bot el 20 de Ag. de 2021
Hi everyone,
I try to solve
g=@(x)((0.01783926*sin(0.02077086*x)/7155831.61*x)-1.7519952539)
using fsolve toolbox with this options:
options=optimoptions('fsolve','algorithm','Levenberg-Marquardt','Display','off');
but it returns x0 that i passed in parameter see this examples:
>> fsolve(g,0.1,options)
ans =
0.1000
>>fsolve(g,222,options)
ans =
222.0000
fsolve(g,pi,options)
ans =
3.1416
how i can choose the x0 to get a correcte solution?
thanks
  2 comentarios
Torsten
Torsten el 8 de En. de 2018
Plot your function and you'll find the reason.
Best wishes
Torsten.
ghazal mohamed
ghazal mohamed el 9 de En. de 2018
Ok,Torsten Thank you for your reply.

Respuestas (1)

John D'Errico
John D'Errico el 8 de En. de 2018
Note my use of .* in there, to allow vectorized input.
g=@(x)((0.01783926*sin(0.02077086*x)/7155831.61.*x)-1.7519952539)
ezplot(g,[0 5000])
grid on
Se that your function pretty much never crosses zero. Although, if I allow it to go out much further, it could, since the swings oscillate in size proportionally with x.
So I think you have a problem in your function definition.
  1 comentario
ghazal mohamed
ghazal mohamed el 9 de En. de 2018
Hi john, thank you for your reply, yes the problem is with the function's expression.

La pregunta está cerrada.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by