While Loop Problem Displaying NaN
Show older comments
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)
Answers (2)
Azzi Abdelmalek
on 15 Jul 2014
Edited: Azzi Abdelmalek
on 15 Jul 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.
James Tursa
on 15 Jul 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.
Categories
Find more on Elementary Math in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!