matlab中怎么解方程中参数怎么引用前面求出结果。

function[]=jiachunxll(P,d)%d为泄露孔直径毫米,P为液体压力,T0为天然气温度℃p=792;%甲醇密度A=(d/2000)^2*pi;P0=10... function []=jiachunxll(P,d)%d为泄露孔直径毫米,P为液体压力,T0为天然气温度℃
p=792;%甲醇密度
A=(d/2000)^2*pi;
P0=10130;%环境压力
C0=0.5;
g=9.8;
hl=2;%液体距泄漏口高度
A0=0;%防火堤内液池面积
u=1.5;%风速
Dz=pi*10*p;
T0=293.15;%环境温度

for t=1:50
Qm=p*A*C0*(2*((P-P0)/p+g*hl))^0.5;%泄漏量

Hv=1169690;%蒸发热j/kg————
Cp=2.534;%热熔kj/(kg*K)
Tb=337.75;%泄漏液体的沸点K
Tt=20+273;%泄漏液体的储存温度K
a=1.29*10^(-7);%水泥地面热扩散系数
K=1.1;%水泥地面导热系数
b=5.285*10^(-3);%大气稳定程度e时系数
n=0.3;
P1=12.8*1000;%液体表面蒸汽压Pa
M=32;
R=8.314;
if Tt >= Tb
Fv=Cp*(Tt-Tb)/Hv;%闪蒸比例
else
Fv=0
end
Q1=Qm*Fv;%闪蒸蒸发率kg/s
D=5*Fv*Qm%带到空气中的液体量kg/s

Q2=K*A0*(T0-Tb)/(Hv*(pi*a*1)^0.5)

r=(A0/pi)^0.5;%液池半径
Q3=b*P1*M/(R*T0)*u^((2-n)*(2+n))*r^((4+n)/(2+n))%————
Ds=Qm-D-Q2-Q3;
Dh=D+Q2+Q3;%损失的液体质量

s0=(Dz-Qm*t)/10
if s0>=pi/2
y=solve('s0-pi/2=y*(1-y^2)^0.5+asin(y)','y')
y=1+y
else
y=solve('pi/2-s0=y*(1-y^2)^0.5+asin(y)','y')
y=1-y
end
hl=y

A0=Ds/(0.015*p)
if A0 >= 112
A0=112
end
end
程序中s0上面计算出的结果下面解方程一直引用不了
展开
lhmhz
高粉答主

2014-11-28 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17009

向TA提问 私信TA
展开全部
将y=solve('s0-pi/2=y*(1-y^2)^0.5+asin(y)','y')代码中,去掉丹引号,即

y=solve(s0-pi/2-(y*(1-y^2)^0.5+asin(y)),'y')
同理,y=solve('pi/2-s0=y*(1-y^2)^0.5+asin(y)','y')改为

y=solve(pi/2-s0-(y*(1-y^2)^0.5+asin(y)),'y')
追问
if s0>=pi/2
y=solve(pi/2+y*(1-y^2)^0.5+asin(y)-s0,'y')
y=1+y
else
y=solve(pi/2-s0-y*(1-y^2)^0.5-asin(y),'y')
y=1-y
end
改完以后为什么
??? Undefined function or variable "y".
追答
那你还需要对y 声明为变量,即
syms y
加在 function []=jiachunxll(P,d) 的后面
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式