Solving VdW's Eq of State with MATLAB

In summary: I hope you can figure out how to fix your code after reading through these sections. Good luck!In summary, the conversation discusses using Newton's method to solve for molar volume of a gas using Van der Waals' equation of state. It provides guidelines for writing a MATLAB m-file to solve the problem and compares it to using the built-in function fzero. The conversation also addresses the rules for asking and providing help on homework questions.
  • #1
chronicals
36
0

Homework Statement



Van der Waals’s equation of state for an imperfect gas is

( P + a / v ^ 2) ( v - b ) = R T

where P is the pressure (atm), v is the molar volume (liters/mole), T is the absolute temperature (K), and a (liter
2.atm/mol2), and b (liter/mol) are constants that depend on the particular gas. Find
molar volume of carbon dioxide at 3 atm and 320 K. For carbon dioxide, you may use a=3.592

and b=0.04267. (Hint: Use ideal gas law to make your initial guess.)

a) Write a generic MATLAB m-file that uses Newton’s (Newton-Raphson) method to solve for x
given the function f(x), initial guess x0, and error tolerance es. Make use of the attached
pseudocode given for the fixed-point iteration method.
b) Write a MATLAB m-file that uses the generic m-file you have developed in part (a) to solve for
the molar volume of any gas, given the P, T, R, a, and b. Use a relative error tolerance of
0.01% for convergence of molar volume.
c) Run the m-file you have developed in part (b) along with the generic m-file of part (a) for the
case of carbon dioxide given above. Make sure you display the result at each iteration.
d) Plot error as a function of the iteration step. Do not forget to label the axes.
e) MATLAB has a built-in function called fzero to find the real root of a single equation. A
simple representation of its syntax is
fzero(function, x0)
where function is the name of the function being evaluated, and x0 is the initial guess.
Solve the above problem using fzero. Comment on the result by comparing with the result
of (c).



Homework Equations





The Attempt at a Solution


How can i solve this question?
 
Physics news on Phys.org
  • #2
As required by the rules of the homework questions forum, please show your own attempt at a solution.
 
  • #3
The rules are here: https://www.physicsforums.com/showthread.php?t=5374.

Homework Help:
On posting questions: Any and all high school and undergraduate homework assignments or textbook style exercises for which you are seeking assistance are to be posted in the appropriate forum in our Homework & Coursework Questions area--not in blogs, visitor messages, PMs, or the main technical forums. This should be done whether the problem is part of one's assigned coursework or just independent study. The reason for this is that the scientific and mathematical sections of Physics Forums are to be reserved for discussions and not academic assistance. Since graduate level assignments are meant to be more thought provoking (and hence more worthy of discussion), graduate level questions will be allowed in the relevant part of the main section of PF, provided that the graduate student attempts the problem and shows his work. NOTE: You MUST show that you have attempted to answer your question in order to receive help. You MUST make use of the homework template, which automatically appears when a new topic is created in the homework help forums.

We do not support cheating in any form: Do not ask for solution manuals, answers to exams, or instructor's manuals. Every school and instructor has their own policies or honor codes on what constitutes cheating, and it is up to the individual student to adhere to those policies when seeking help here. If you are in doubt as to whether you are permitted to seek help, consider erring on the side of caution and not asking for help.

On helping with questions: Any and all assistance given to homework assignments or textbook style exercises should be given only after the questioner has shown some effort in solving the problem. If no attempt is made then the questioner should be asked to provide one before any assistance is given. Under no circumstances should complete solutions be provided to a questioner, whether or not an attempt has been made.
 
  • #4
This is my m-file,can you check it,please? I can't see the plot?Why? I use [root]=Newtoniandream( ' y ', 1e-3)


function [f, derf ]=y(v)
a=3.592; b=0.04267; P=3; T=320; R=0.082;
f= (P+a/v^2)*(v-b)-R*T;
derf=P-a/v^2+2*a*b/v^3;


function [root]=Newtoniandream(v0,tol)
v=v0;
n=0;
err=3;
fprintf('iteration x percent relative error\n')
while err>tol
n=n+1;
[f, derf ]=feval('y',v);
vnew=v-f/derf;
err(n)=(abs((vnew-v)/vnew))*100;
fprintf('%2d %f %f\n',n,vnew,err(n))
v=vnew;
plot(n,err)
hold on
end
root=vnew
 
  • #5
chronicals said:
This is my m-file,can you check it,please? I can't see the plot?Why? I use [root]=Newtoniandream( ' y ', 1e-3)


function [f, derf ]=y(v)
a=3.592; b=0.04267; P=3; T=320; R=0.082;
f= (P+a/v^2)*(v-b)-R*T;
derf=P-a/v^2+2*a*b/v^3;


function [root]=Newtoniandream(v0,tol)
v=v0;
n=0;
err=3;
fprintf('iteration x percent relative error\n')
while err>tol
n=n+1;
[f, derf ]=feval('y',v);
vnew=v-f/derf;
err(n)=(abs((vnew-v)/vnew))*100;
fprintf('%2d %f %f\n',n,vnew,err(n))
v=vnew;
plot(n,err)
hold on
end
root=vnew

You're not using the plot command correctly. It should be used on two arrays, not on a single pair of coordinates, which means it should probably not be inside your while loop.

Also, I don't think you are using err correctly. In one line, you set err to 3, but inside your while loop, you treat err as an array.

Some documentation that might be helpful is here: http://www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/getstart.pdf.

Ch. 2 deals with data types, including matrices. See Working with Matrices, p. 2-16, and the following pages.

Ch. 3 deals with plotting. See Using Basic Plotting Functions on page 3-56.

Ch. 4 deals with Flow Control, including functions. See Functions, page 4-22.
 

Related to Solving VdW's Eq of State with MATLAB

1. What is VdW's equation of state?

Van der Waals' equation of state is a mathematical relationship that describes the behavior of real gases, taking into account the attractive forces between gas molecules and the volume occupied by the molecules themselves. It is often used to model gases at high pressures and low temperatures, where the ideal gas law breaks down.

2. How is VdW's equation of state solved with MATLAB?

VdW's equation of state can be solved with MATLAB by using the solve function and specifying the variables and initial conditions. The equation can also be manipulated algebraically to isolate the desired variable and then solved using MATLAB's symbolic math toolbox.

3. What are the limitations of using MATLAB to solve VdW's equation of state?

While MATLAB is a powerful tool for solving equations, it does have limitations when it comes to VdW's equation of state. This equation is only valid for real gases, so it cannot be used to model ideal gases. Additionally, it may not accurately predict the behavior of gases at extreme pressures and temperatures.

4. How can I validate the results of solving VdW's equation of state with MATLAB?

To validate the results of solving VdW's equation of state with MATLAB, you can compare the calculated values to experimental data or to results obtained from other equations of state. It is also important to check that the solutions make physical sense and are within the expected range for the given conditions.

5. Can VdW's equation of state be used for all gases?

No, VdW's equation of state is only applicable to real gases. Ideal gases, which do not have intermolecular forces, are not accurately described by this equation. Additionally, the equation may not accurately predict the behavior of gases with complex molecular structures or at extreme pressures and temperatures.

Similar threads

  • Engineering and Comp Sci Homework Help
Replies
2
Views
1K
  • Engineering and Comp Sci Homework Help
Replies
3
Views
2K
  • Engineering and Comp Sci Homework Help
Replies
1
Views
2K
  • Engineering and Comp Sci Homework Help
Replies
1
Views
1K
  • Engineering and Comp Sci Homework Help
Replies
2
Views
1K
  • Engineering and Comp Sci Homework Help
Replies
1
Views
2K
  • Engineering and Comp Sci Homework Help
Replies
1
Views
3K
  • Engineering and Comp Sci Homework Help
Replies
2
Views
2K
  • Engineering and Comp Sci Homework Help
Replies
1
Views
3K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
5
Views
1K
Back
Top