'Problem' with fzero

Hi, hope you all are well. I am here due to a problem with the function called 'fzero'.
On one hand, I have this file: f.m
function y=f(x)
y= besselj(1,x);
And on the other hand: exercise.m
D=fzero(@f,[0 10]);
tam=length(D);
for i=1:tam
fprintf(' Possible MAX or MIN: f(%f) \n',D(i))
end
When I run exercise.m, I get this output:
Possible MAX or MIN: f(0.000000)
I know where this values should be located...
What am I doing wrong? Thanks in advance. PD: I have to use fzero and besselj(1,x) at [0:10]

 采纳的回答

Matt J
Matt J 2015-6-30
编辑:Matt J 2015-6-30

0 个投票

Looks like the code succeded to me. Your function does have a root at x=0.
No idea why you display a message involving MAX and MIN unless you were really trying to minimize/maximize the function. But as its name implies, fzero finds zeros, not max's and min's. You might have been looking to use fminsearch()

1 个评论

Thanks for your answer. Due to that I realized I should have used f'(x) instead of f(x). Here it is the fixed code:
x=0:10;
xx=0:0.01:10;
y= @(x) besselj(1,x); % F(X)
f= @(x) (besselj(0, x) - besselj(1, x)/x); % F'(X)
for i=2:10
D=fzero(f,x(i));
fprintf(' Possible MAX or MIN: f(%f) \n',D)
end
It gives you all the possible max's and min's (absolutes and relatives) of F(X) evaluated at [0:10] but at 0 and 10. Thanks again. Regards

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Loops and Conditional Statements 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by