How to get this help file to run
3 次查看(过去 30 天)
显示 更早的评论
function [v,err,count] = MS1_Ideal_Gas(P)
% MS1_Ideal_Gas
% R = 0.082057; % Ideal gas constant in L atm / K mol
% T = 293; % Temperature in K
% P = [1 1.5 2 2.5 3 5 10 15 25 50 100];
% v = zeros(1,length(P));
% for i=1:length(P)
% [u,err,count] = MS1_Ideal_Gas(P(i));
% v(i)=u;
% end
% P1=[1:0.1:100];
% V1=R*T./P1;
% plot(P1,V1) %ideal
% hold on
% plot(P,v,'xr') %Redlich
% title('Molar Volume vs Pressure for Cl_2')
% xlabel('Pressure P (atm)')
% ylabel('Molar Volume v (L/mol)')
% legend({'Ideal Gas Law','Redlich-Kwong Equation'},'Location','northeast')
% Version 1: created 18/02/20. Author: Savana Stewart
% UCD ID: 19208141
% Inputs:
R = 0.082057; % Ideal gas constant in L atm / K mol
T = 293; % Temperature in K
Tc = 416.90; % Critical temperature of Cl_2 in K
Pc = 78.72918; % Critical Pressure of Cl_2 in atm
a = ((R^2)*(Tc^(5/2)))/(9*Pc*(2^(1/3)-1));
b = (R*Tc*(2^(1/3)-1))/(3*Pc);
% P Pressure in atm
% Outputs:
% v equals molar volume (V/n) in L/mol
% err equals modulus of function evaluated at approximate root.
% count is number of iterations taken by Newton-Raphson algorithm.
if (~isscalar(P)) || (~isreal(P)) || P <= 0
error('Input argument P must be positive real scalar.')
end
Iteration_limit = 20; % maximum number of iterations permitted
Tolerance = 10^7; % maximum acceptable value for modulus of
% function evaluated at estimated root3of
A = (a*P)/((R^2)*(T^(5/2)));
B = (b*P)/(R*T);
v = R * T / P; % Molar volume
Z = 1;
C = A-B-B^2; % Substitution to simplify equation
poly_f = [1 -1 C -A*B]; % = (Z^3) - (Z^2) + (A-B-(B^2))*Z - (A*B)
f = polyval(poly_f,Z);
poly_df = [0 3 -2 C]; % = 3*Z^2 - 2*Z + (A - B - (B^2))
for count = 1:Iteration_limit + 1
% Terminate with error message if iteration limit exceeded:
if count == Iteration_limit + 1
error('Iteration limit reached. Iteration did not converge.')
end
df = polyval(poly_df,Z);
Z = Z - (f/df); % Newton-Raphson iteration
% Terminate iteration if function is sufficiently small at current
% estimate
if abs(f) < Tolerance
break
end
end
v = Z*R*T/P; % Subsitiution to find v
% to find numerical values for table 2 in report:
%v1 = R * T / P;
%fprintf('P = %d \nv (Ideal Gas Law) = %d \nv (Redlich-Kwong) = %d \nrequires %d iterations \n \n',P,v1,v,count);
err = abs(f); % Error is magnitude of f(v) at final root estimate
help MS1_Ideal_Gas; % help function
end
When I type in the comments at the beginning if the file into the command window, it runs fine. However, When I tried to turn it into a help file the code no longer runs. How can I change the help file so it acts like I am just typing all of the first comments into the command window?
0 个评论
回答(2 个)
Pravin Jagtap
2020-2-26
Hello Savana,
The issue which you are facing is not clear from your question and code. I found a similar question you posted as an extension of this question.
I am assuming you are facing issues with the 'help' function and executing the 'MS1_Ideal_Gas' function file. You need to pass the argument 'P' which is scalar value as per code (Make sure that you are in the same directory before executing following command).
>> MS1_Ideal_Gas(1)
Refer to the following link for understanding the usage of 'help' function:
0 个评论
Image Analyst
2022-7-30
Not sure what you want. Do you want the comments/instructions to be printed to the command window if no proper arguments, or no arguments at all, are passed in?
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!