Newton's Method Plot of Errors
2 views (last 30 days)
Show older comments
Hi! I am new to MATLAB and I am using this code
%to solve nonlinear equations using newton
%f(x)=(x+1)*(x-1/2)
%df(x)=2*x+1/2
%initial conditions
x0=-1.2;
maxIter=10;
tolX=0.001;
%computation using newton
x=x0;
xold=x0;
for i=1:maxIter
f=(x+1)*(x-1/2);
df=2*x+1/2;
x=x-f/df
err=abs(x-xold);
xold=x;
if (err<tolX)
break;
end
end
to try and plot logarithms of the errors against each other. My though process is to write
>> prevErr=err(1:9);
>> currErr=err(2:10);
>> plot (log(prevErr),log(currErr),'--r')
but after the first line I am getting the notice "Index exceeds the number of array elements (1)." if anyone know how I can fix this please let me know!
0 Comments
Answers (1)
Image Analyst
on 17 Feb 2021
You need to index err:
err(i) = abs(x - xold);
Otherwise it's just a scalar, not a vector with 9 elements because you're overwriting it every time.
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!