Azzera filtri
Azzera filtri

Info

Questa domanda è chiusa. Riaprila per modificarla o per rispondere.

Trying to solve for P in the equation. Been told fzero does not give correct solution.

1 visualizzazione (ultimi 30 giorni)
%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)

Risposte (1)

Samatha Aleti
Samatha Aleti il 26 Feb 2020
Hi,
I think you need to specify the variables as “sym” to use “solve”. You may also solve for “P” using “fsolve function.
Here is the documentation link for “fsolve”.
  4 Commenti
Walter Roberson
Walter Roberson il 26 Feb 2020
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
dpb il 28 Feb 2020
Ah, indeed! I hadn't really looked at the algebra, just the numerical solution. Nicely done, Walter!

Questa domanda è chiusa.

Community Treasure Hunt

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

Start Hunting!

Translated by