Why am I not able to plot the error vs iterations?
Afficher commentaires plus anciens
I am new to MATLAB. Can someone please tell what should I do to get a plot of the error (here, abs (z-Z)) vs the number of iterations? Another question is, earlier I used different variables and for x-axis plot of i (using plot(i,abs(z-Z)), I used ilim([0 20]), which showed "undefined function ilim for input argument double". Does this mean I can plot only when variables are named as x and y?
z=1;
for i=1:100
f=(1-z)*exp(-2*z)-3*exp(-z)+2;
fprime=exp(-2*z)*(2*z-3)+3*exp(-z);
Z=z;
z=Z-f/fprime;
if abs (Z-z)<10^(-6)
break
end
x=i;
y=abs (Z-z);
plot(x,y)
xlim([0 20])
ylim([0 1])
end
1 commentaire
Serhiy Shtovba
le 21 Nov 2020
- Type "hold on" before plot.
- But your code is not perfect. It is not a good idea to use plot inside for. It will be better to collect error on each iteration in vector, for example, y(i)=abs (Z-z), and finnaly, after end_of_for make your graph: plot(1:100, y, 'ro--'
Réponse acceptée
Plus de réponses (1)
Setsuna Yuuki.
le 21 Nov 2020
You can store the data of (Z-z) in a vector:
for ...
zz(i) = (Z-z)
if abs(zz)<10^(-6)
break
end
end...
And leave the graph out of the loop
x=1:100;
y=zz;
plot(x,y);
xlim([0 20])
ylim([0 1])
1 commentaire
Ipshita
le 22 Nov 2020
Catégories
En savoir plus sur Graphics Performance 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!

