How to add the iteration code in MATLAB
Show older comments
I wanna ask how to add the iteration code, because now the code I do is keep using the old value of xr.
for iteration = 1:3
iteration = 0;
xl = 4
xu = 6
xr =(xl+xu)/2
Xr = xr
syms a b xl fxl
E2 = sym('fxl = a*xl + b')
fxl = solve(E2,'fxl')
fXl = subs(fxl,{xl,a,b},{4,2,3})
syms a b X_r fxr
E3=sym('fxr = a*X_r+ b')
fxr = solve(E3,'fxr')
fXr = subs(fxr,{X_r,a,b},{Xr,2,3})
PreviousApprox = Xr
Test = fXl * fXr
if Test < 0
Xu = xr
Xl = xl
Xr_new =(Xl +Xu)/2
CurrentApprox = Xr_new
error=(CurrentApprox-Xr)/CurrentApprox*100
elseif Test > 0
Xu = xu
Xl = Xr
Xr_new=(Xl +Xu)/2
CurrentApprox = Xr_new
error=(CurrentApprox-Xr)/CurrentApprox*100
else
Test = 0
CurrentApprox = Xr_new
error=(CurrentApprox-Xr)/CurrentApprox*100
disp('we got the root value');
break
end
ApproxErrorPercentage(iterations)=abs((CurrentApprox-PreviousApprox)/(CurrentApprox)*100)
end
1 Comment
Alper Olca
on 27 Mar 2020
x1=5;
x2=5;
x3=5;
x4=5;
td=10^-2;
a=0;
for i= 1:10
a=0+i;
if( (abs(x1-x1)<td && abs(x2-x2)<td) && (abs(x3-x3)<td)&& abs(x4-x4)<td)
x1=(-23+x2-x3+2*x4)/4;
x2=(-21-2*x1+x3-3*x4)/6;
x3=(-11+x1+2*x2-x4)/5;
x4=(22+x1-2*x2+3*x3)/6;
end
k=(4*x1-x2+x3-2*x4);
l=(2*x1+6*x2-x3+3*x4);
m=(-x1-2*x2+5*x3+x4);
n=(-x1+2*x2-3*x3+6*x4);
end
rslt=[k l m n ; x1 x2 x3 x4]
Answers (1)
Cam Salzberger
on 21 May 2018
Hello Mavis,
In each loop, it seems like you use a previous value of xr to create a new value of Xr_new. Generally, users making use of this design pattern will either update xr to the value of Xr_new at the beginning or end of the loop, or simply only ever use xr. For example:
Xr_new = 1;
for k = 1:10
xr = Xr_new;
seeHowGoodXrIs(xr)
Xr_new = updateValue(xr);
end
If you don't need to use the previous value more than once, it's generally easier to just do "in-place" updates to the value:
xr = 1;
for k = 1:10
seeHowGoodXrIs(xr)
xr = updateValue(xr);
end
Hope this helps!
-Cam
Categories
Find more on MATLAB 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!