While Loop Problem Displaying NaN
Afficher commentaires plus anciens
So I am trying to make a while loop which finds the value of log(x+1) using a taylor series. I am having the series run until the answer comes into a certain precision. When I run the function with x=1 I get the correct out for both y and i. However if I try it with any greater number the y value displays as NaN. Can anyone help me figure out how to fix this.
function logoneplusx(x)
format long
y=0;i=1;Err=1;
while Err>0.001
y=((-1)^(i-1))*((x^i)/i)+y;
i=i+1;
Err=abs(y-log(x+1));
end
disp(y)
disp(i)
Réponses (2)
Azzi Abdelmalek
le 15 Juil 2014
Modifié(e) : Azzi Abdelmalek
le 15 Juil 2014
0 votes
When x is bigger, y becomes infinite, and after you have Err=(inf-inf)=NaN. Matlab or another software has its limits.
1 commentaire
Dan
le 15 Juil 2014
James Tursa
le 15 Juil 2014
0 votes
If you check this link, you will see that the series you are using only converges for abs(x) <= 1 and x not equal to -1:
If you want to use an x value outside this convergence range, use a different series. On this same link there is another series you can use for other values of x.
Catégories
En savoir plus sur Elementary Math 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!