用fsolve求两个未知数出错求助
各位大大,不好意思。我以下这个问题想了几天,还是没办法找出问题所在。我有两个unknown(vfg2,x2)和两个equations(vfg2=vf2*(1-x2)-hg2 和 1000*hf2+1000*hfg2*x2+/2-1000*h1+V1^2/2)。我要求x2.其他的variable已经在以上解决了。 我运用了fsolve 来解决,却一直出现error.可是却想不到问题错在哪儿?有高手可以帮帮忙吗????谢谢。。。
% for refrigerant R22
% Input v - specific volume
% h - enthalpy
% V - velocity
format long
m=input('input the value of m=');
t1=input('input the value of t1=');
t2=input('input the value of t2=');
d=input('input the value of d=');
A=pi*d^2/4;
G=m/A;
x1=0;
vf1=1*10^-8*t1^2+2^-6*t1+0.0008;
vf2=1*10^-8*t2^2+2^-6*t2+0.0008;
vg1=3*10^-5*t1^2-0.0023*t1+0.0705;
vg2=3*10^-5*t2^2-0.0023*t2+0.0705;
v1=vf1*(1-x1)+vg1*x1;
V1=G*v1
hf1=0.0018*t1^2+1.3414*t1+199.97;
hf2=0.0018*t2^2+1.3414*t2+199.97;
hfg2=-0.0034*t2^2-0.7528*t2+198.85;
hg1=-0.0015*t1^2+0.5869*t1+398.84;
hg2=-0.0015*t2^2+0.5869*t2+398.84;
h1=hf1*(1-x1)+hg1*x1
options=optimset('Display','iter')
F=inline('vfg2-vf2*(1-x2)+hg2*x2;1000*hf2+1000*hfg2*x2+/2-1000*h1+V1^2/2')
InitialGuess=;
=fsolve(F,InitialGuess,options)
[ 本帖最后由 eight 于 2007-11-17 10:55 编辑 ] 原帖由 denisestar 于 2007-11-17 03:08 发表 http://www.chinavib.com/forum/images/common/back.gif
各位大大,不好意思。我以下这个问题想了几天,还是没办法找出问题所在。我有两个unknown(vfg2,x2)和两个equations(vfg2=vf2*(1-x2)-hg2 和 1000*hf2+1000*hfg2*x2+/2-1000*h1+V1^2/2)。 ...
请先看看各个置顶贴,然后检查一下你的问题是否描述清楚 不好意思。我再清楚讲解我的问题(对不起,中文程度不太好,请见谅)
我又两个公式, 即vfg2=vf2*(1-x2)-hg2 和 *hf2+1000*hfg2*x2+/2=1000*h1-V1^2/2
在这两个公式中,其中vf2,hg2,hfg2,G,vf2,h1,V1 已经知道,剩下vfg2 和 x2 是未知。
从这两个公式中,我需要求vfg2 和x2.我尝试用fsolve 来解决,如下:
options=optimset('Display','iter')
F=inline('vfg2-vf2*(1-x2)+hg2*x2;1000*hf2+1000*hfg2*x2+/2-1000*h1+V1^2/2')
InitialGuess=;
=fsolve(F,InitialGuess,options)
可是却一直出现error, 想得我头都快爆炸了。。。
请高手帮帮忙。。。谢谢 可是却一直出现error
到底是什么error?这是我要你看置顶贴的主要目的
回复 #3 denisestar 的帖子
inline不能建立方程组,你要用m文件代替 Sorry, I got what u mean. :DDError shown:
??? Error using ==> inline.feval at 23
Not enough inputs to inline function.
Error in ==> fsolve at 193
fuser = feval(funfcn{3},x,varargin{:}); 用1stOpt很方便啊,假如 m=1,t1=2,t2=3,d=4
代码:
Constant m=1,t1=2,t2=3,d=4;
Constant
A=pi*d^2/4,
G=m/A,
x1=0,
vf1=1*10^-8*t1^2+2^-6*t1+0.0008,
vf2=1*10^-8*t2^2+2^-6*t2+0.0008,
vg1=3*10^-5*t1^2-0.0023*t1+0.0705,
vg2=3*10^-5*t2^2-0.0023*t2+0.0705,
v1=vf1*(1-x1)+vg1*x1,
V1=G*v1,
hf1=0.0018*t1^2+1.3414*t1+199.97,
hf2=0.0018*t2^2+1.3414*t2+199.97,
hfg2=-0.0034*t2^2-0.7528*t2+198.85,
hg1=-0.0015*t1^2+0.5869*t1+398.84,
hg2=-0.0015*t2^2+0.5869*t2+398.84,
h1=hf1*(1-x1)+hg1*x1;
Function vfg2-vf2*(1-x2)+hg2*x2;
1000*hf2+1000*hfg2*x2+(G^2*(vf2+vfg2*x2)^2)/2-1000*h1+V1^2/2;
结果:
vfg2 = 2.80008954480262
x2 = -0.00687013194790977 原帖由 dingd 于 2007-11-18 20:46 发表 http://www.chinavib.com/forum/images/common/back.gif
用1stOpt很方便啊,假如 m=1,t1=2,t2=3,d=4
if using Matlab?
页:
[1]