Iteration of Ideal Gas Law

Hi,
How can I do the iteration for the follwoing Ideal Gas Law? I would like to use the Vn and get the Pn value and compare the Ln value to the L. When Ln and L are very close, it will stop the iteration. I would really appreciate your help.
P=101325;
R=8.314;
r=20*10^-6;
L=117*10^-6;
V=pi*r^2*L;
T=300;
n=(P*V)/(R*T);
% Iteration should start from here
Tn=300+273;
Pn=(n/V)*R*Tn;
stress=Pn;
E=69.22*10^9;
S=stress/E;
dL=S*L;
Ln=L+dL;
Vn=pi*r^2*Ln;

1 Comment

Please note that I am not a category of knowledge, and so should not be named in a tag.

Sign in to comment.

 Accepted Answer

Iterations can be done using either for loops or while loops.
If you want to repeat until a condition is met, a while loop is probably the best option. You just need to set up a conditional statement that evaluates as false until your statement is true. For example
L=1;
Ln=5;
while abs(Ln-L)>0.1
Ln=Ln-1
end
Ln = 4
Ln = 3
Ln = 2
Ln = 1
There is one thing to be careful of. It is possible to create what is called an infinite loop. This occurs when your contidional statement is always false.

5 Comments

Thank you for your response. How can I use the new Vn value every time? Note that Pn depends on Vn and vice-versa. The V will be replaced by Vn every time.
Tn=300+273;
Pn=(n/V)*R*Tn;
stress=Pn;
E=69.22*10^9;
S=stress/E;
dL=S*L;
Ln=L+dL;
Vn=pi*r^2*Ln;
I would suggest setting Vn equal to V before the loop starts, and then only use Vn inside the loop. Each loop will use the previous value of Vn. It would be something similar to what I did with Ln in my previous example.
...
Vn = V;
while abs(Ln-L)>0.1
Pn=(n/Vn)*R*Tn;
Vn=pi*r^2*Ln;
end
Thank you so much. In the while loop, there is no value for Ln. How the loop will know about the Ln value?Should I set Ln=L before the loop?
I haven't given you the whole solution. In the code you shared originally, you calculate Ln right before you use it.
Ln=L+dL;
Vn=pi*r^2*Ln;
If you need to use the current value of Ln as L in the next loop, then yes, you should set Ln=L before the loop, and update all uses of L inside the loop to be Ln.
If you don't understand how loops work, I suggest looking at Ch 13 of MATLAB Onramp. It covers for loops, not while loops, but the underlying principles are the same.
Thank you!

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!