My goal is to find how many times the iteration takes to have a tolerance of 10^-5 where g(x)=x
Show older comments
Here is my code... it will only run through once, and I dont know where I am going wrong...
g=@(x)(sin(x)^2 + 11/10);
x0=1;
x1=10;
TOL= 10^(-5);
N=0;
while abs(x1-x0)>TOL
x1=g(x0)
x0=x1;
N=N+1
end
I have more while loops that are doing the same thing (only running through once)... I think its in my abs() statement, but I don't know how to fix it...
I am trying to get it to run this
x0
x1=f(x0)
x2=f(x1)
x3=f(x2)
... until abs(xn-f(xn-1))<10^(-5)
Thank you!!
Answers (1)
You need to switch the order of assignment of x0 and x1 inside the loop. You first define x1, then say x0=x1. So the difference between them is of course 0, which is not greater than TOL! Rather, capture the old value of x1 in x0 first, then get the new value of x1 to compare...
g=@(x)(sin(x)^2 + 11/10);
x0=1;
x1=10;
TOL= 10^(-5);
N=0;
while abs(x1-x0)>TOL
x0=x1;
x1=g(x0);
N=N+1;
end
[N x1]
Categories
Find more on Logistic Distribution 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!