help in fzero function
Afficher commentaires plus anciens
Here x, y,teta are vectors. When I call the function fzero it shows this message:
fzero(@(t)shkruajek(x,y,1,3,teta,0.1,4,t),0)
Exiting fzero: aborting search for an interval containing a sign change
because NaN or Inf function value encountered during search.
(Function value at -2.54232e+306 is NaN.)
Check function or try again with a different starting value.
NaN
can you help me to determine where is the problem here??
function [ek]=shkruajek(x,y,i,j,teta,speed,R,t)
ek=sqrt(((x(i)+ speed*cos(teta(i)*t)) - (x(j) + speed*sin(cos(teta(j)*t))))^ 2+ ((y(i) + speed*sin(teta(i)*t)) - (y(j) + speed*sin(teta(j)*t))).^ 2)-R;
end
a=fzero(@(t)shkruajek(x,y,i,j,teta,speed,R,t),0);
4 commentaires
John Chilleri
le 13 Jan 2017
Is it possible your function doesn't have a root?
ana take
le 13 Jan 2017
ana take
le 13 Jan 2017
Walter Roberson
le 13 Jan 2017
Note that only the newer versions of MATLAB support fzero on complex-valued functions.
Réponse acceptée
Plus de réponses (1)
John Chilleri
le 13 Jan 2017
Modifié(e) : John Chilleri
le 13 Jan 2017
1 vote
Hello,
In addition to what Walter Roberson said as good practice, it would appear that your function does not have a root.
I say this because your t is only found within sine and cosine functions, and after fzero has tested one period then no other value of t will make a difference, so the fact that it does not find a root within one period and rather continues to eventually error at -2.5 e306 suggests there is no root.
Hope this helps!
Catégories
En savoir plus sur Surrogate Optimization dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!