how to plot this data as data-points?
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi All,
I have written a code to estimate a root of x^10=1 using modified regula falsi. My code is working pretty well now but I want to plot ea versus iter variable and xr versus iter variable as data-points but there is a problem about this. In my workspace, iter,ea and xr appear only as their last values. I want to see their previous values too. Because of this I can't plot a data-point figure point by point.
Here is my code;
f=@(x)x^10-1;
xl=0;
xu=1.3;
xr = xu;
es=0.01;
fl=f(xl);
fu=f(xu);
iter=0;
iu = 0;
il = 0;
fprintf('\n\n%10s\t%10s\t%10s\t%10s\t%10s\t%10s\t\t%10s\t%10s\n',...
'iter','xl','xu','f(xl)','f(xu)','xr','f(xr)','ea')
fprintf([' ',repmat('-',1,92),'\n'])
while 1
xrold = xr;
xr = xu - fu*(xl-xu)/(fl-fu);
fr = f(xr);
iter=iter+1;
if xr<0
elseif xr>0
ea=abs((xr-xrold)/xr)*100;
end
test = fl*fr;
if test<0
xu = xr;
fu = f(xu);
iu = 0;
il = il+1;
if il>=2
fl=fl/2;
end
elseif test>0
xl=xr;
fl=f(xl);
il=0;
iu=iu+1;
if iu>=2
fu=fu/2;
end
else
ea=0;
end
if ea<es
break
end
fprintf('%10.2i\t%10.7f\t%10.7f\t%10.7f\t%10.7f\t%10.10f\t%10.7f\t%10.4f\t\n',...
iter,xl,xu,f(xl),f(xu),xr,f(xr),ea)
end
fprintf('\n\n')
ModFalsePos=xr;
What would you recommend for this situation?
I'll appreciate for any help.
Thanks Already!
Réponse acceptée
Walter Roberson
le 6 Nov 2012
In the loop, before the "end",
saved_iter(iter) = iter;
saved_ea(iter) = ea;
saved_xr(iter) = xr;
Then after the loop, you can plot saved_iter vs saved_ea and so on.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!