Info

This question is closed. Reopen it to edit or answer.

Problem with nonlinear solver fsolve??

2 views (last 30 days)
ghazal mohamed
ghazal mohamed on 8 Jan 2018
Closed: MATLAB Answer Bot on 20 Aug 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 Comments
Torsten
Torsten on 8 Jan 2018
Plot your function and you'll find the reason.
Best wishes
Torsten.
ghazal mohamed
ghazal mohamed on 9 Jan 2018
Ok,Torsten Thank you for your reply.

Answers (1)

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

This question is closed.

Tags

Community Treasure Hunt

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

Start Hunting!