Info
此问题已关闭。 请重新打开它进行编辑或回答。
Trying to solve for P in the equation. Been told fzero does not give correct solution.
2 次查看(过去 30 天)
显示 更早的评论
%clc; clear; close all; format short g;
%knowns
gamma = 1.66;
R = 8.314;
m = 4.0e-3;
RoM = R/m;
P0 = 10e5;
T0 = 300;
r0 = 0.01;
L = 0.05;
rho0 = P0/(RoM*T0);
%function for area
x = [0:0.001:2*L];
func = @(x) r0*((2*x./L)+ exp(-2*x./L));
y = func(x);
plot(x,y);
At = pi*r0*r0;
% equations
mc = At*(sqrt(gamma*P0*rho0))*(2/(gamma+1))^((gamma+1)/(2*(gamma-1))); %mass flux choking
%solving for P
f = @(P) ((P/P0)^(2/gamma)) - ((P/P0)^(1+(1/gamma))) == ((gamma-1)/(2*gamma))*((mc^2)/((At^2)*P0*rho0));
r = solve (f,eps)
1 个评论
回答(1 个)
Samatha Aleti
2020-2-26
Hi,
I think you need to specify the variables as “sym” to use “solve”. You may also solve for “P” using “fsolve” function.
4 个评论
Walter Roberson
2020-2-26
If you convert everything to rational, except using the transcendentatal pi instead of an approximation of it, then 281250*sqrt(3) becomes an exact solution. That is approximately 487139.2898.
dpb
2020-2-28
Ah, indeed! I hadn't really looked at the algebra, just the numerical solution. Nicely done, Walter!
此问题已关闭。
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!