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]

 Respuesta aceptada

Matt J
Matt J el 30 de Jun. de 2015
Editada: Matt J el 30 de Jun. de 2015

0 votos

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 comentario

JM
JM el 30 de Jun. de 2015
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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Productos

Preguntada:

JM
el 30 de Jun. de 2015

Comentada:

JM
el 30 de Jun. de 2015

Community Treasure Hunt

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

Start Hunting!

Translated by