Why am I not able to plot the error vs iterations?
Ältere Kommentare anzeigen
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 Kommentar
Serhiy Shtovba
am 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--'
Akzeptierte Antwort
Weitere Antworten (1)
Setsuna Yuuki.
am 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 Kommentar
Ipshita
am 22 Nov. 2020
Kategorien
Mehr zu Graphics Performance finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

