How to plot a function dependent on no. of iterations, provided it plots till nth iteration where n is the number where the function is converged?

3 views (last 30 days)
ISHA ARORA
ISHA ARORA on 28 Jan 2022
Edited: VBBV on 29 Jan 2022
Hello All,
I am trying to plot a function vs no. of iterations. In the for loop, i have given the convergence condition, but I am unable to plot for f(x) vs no. iterations (till convergence). Please help.
Its of the form:
for m=1:n
pu(m)=(-1)^m)/((2*m)+1))*(exp(-((2*m)+1)))
e = e+pu;
if (abs(pu)/e)<(10^(-6)) %convergence check
break
end
end
hold all
plot(1:n,pu,'linestyle','none','marker','*')

Accepted Answer

VBBV
VBBV on 28 Jan 2022
Edited: VBBV on 29 Jan 2022
n= 10;
e = 0;
for m=1:n
pu(m)=(-1)^m/((2*m)+1)*(exp(-((2*m)+1)))
e = e+pu(m);
if (abs(pu(m))/e)>(10^(-6)) %convergence check
break
end
end
pu = -0.0166
pu = 1×2
-0.0166 0.0013
pu = 1×3
-0.0166 0.0013 -0.0001
pu = 1×4
-0.0166 0.0013 -0.0001 0.0000
pu = 1×5
-0.0166 0.0013 -0.0001 0.0000 -0.0000
pu = 1×6
-0.0166 0.0013 -0.0001 0.0000 -0.0000 0.0000
pu = 1×7
-0.0166 0.0013 -0.0001 0.0000 -0.0000 0.0000 -0.0000
pu = 1×8
-0.0166 0.0013 -0.0001 0.0000 -0.0000 0.0000 -0.0000 0.0000
pu = 1×9
-0.0166 0.0013 -0.0001 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000
pu = 1×10
-0.0166 0.0013 -0.0001 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000
hold all
plot(1:n,pu,'linestyle','-','marker','.')
Check the convergence condition
  7 Comments
VBBV
VBBV on 29 Jan 2022
u=zeros(n,npoints); % change also This line in beginning
u(m,cidx)=pu(m);
hold all
plot(1:m,u(1:m,cidx),'linestyle','none','marker',mrkr{cidx},'Color',clr{cidx})
You also need to change these two lines inside the for loop. As you can see the u value is dependent on pu which is again varying with each outer iteration of for loop.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!