Info

Cette question est clôturée. Rouvrir pour modifier ou répondre.

Problem with nonlinear solver fsolve??

3 vues (au cours des 30 derniers jours)
ghazal mohamed
ghazal mohamed le 8 Jan 2018
Clôturé : MATLAB Answer Bot le 20 Août 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 commentaires
Torsten
Torsten le 8 Jan 2018
Plot your function and you'll find the reason.
Best wishes
Torsten.
ghazal mohamed
ghazal mohamed le 9 Jan 2018
Ok,Torsten Thank you for your reply.

Réponses (1)

John D'Errico
John D'Errico le 8 Jan 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 commentaire
ghazal mohamed
ghazal mohamed le 9 Jan 2018
Hi john, thank you for your reply, yes the problem is with the function's expression.

Cette question est clôturée.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by