Info

此问题已关闭。 请重新打开它进行编辑或回答。

Problem with nonlinear solver fsolve??

1 次查看(过去 30 天)
ghazal mohamed
ghazal mohamed 2018-1-8
关闭: MATLAB Answer Bot 2021-8-20
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 个评论
Torsten
Torsten 2018-1-8
Plot your function and you'll find the reason.
Best wishes
Torsten.

回答(1 个)

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

此问题已关闭。

标签

Community Treasure Hunt

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

Start Hunting!

Translated by