24小时热门版块排行榜    

查看: 1005  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

xwl196

银虫 (小有名气)

[求助] matlab求解含中间变量的非线性方程组 已有1人参与

方程组如附件所示,其中:
T=328.2;
ρmc=1.0254;
Eii=0.432*195.2;
C=1.23;
Eis=-1250;
ρads为中间变量
求大神指点:1.如何求解想x和y;2.或者如何从方程(1)中把ρads表示成关于x的表达式。

matlab求解含中间变量的非线性方程组
1.jpg
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xwl196

银虫 (小有名气)

引用回帖:
4楼: Originally posted by dingd at 2015-04-09 16:05:54
Solve命令是求符号解,不一定有的。可以是数值解。
下面是用1stOpt求解,很简单:

Constant T=328.2,rhomc=1.0254,Eii=0.432*195.2,C=1.23,Eis=-1250;
LoopConstant x=;
PassParameter nex=2*C*(rhoads-x)/rh ...

你用的1stopt是哪个版本的,我用1stopt1.5运行的结果如下:
"model nex"

====== 结果 ======

迭代数: 16
计算用时(时:分:秒:毫秒): 00:00:00:50
计算中止原因: 达到收敛判定标准
优化算法: 麦夸特法(Levenberg-Marquardt) + 通用全局优化法
函数表达式 ln(rhoads*(1.0254-x)/(x*(1.0254-rhoads)))+(7*rhoads-8*x)/1.0254*84.3264/328.2+(-1250)/328.2
目标函数值: 0
rhoads: 0.485072231445505
x: 0.0421283782771957

====== 计算结束 ======

没有得到你运行的结果,是不是我用的1stopt版本太低的原因?
5楼2015-04-09 16:29:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
nex有数值吗,多少?
2楼2015-04-09 14:36:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xwl196

银虫 (小有名气)

引用回帖:
2楼: Originally posted by dingd at 2015-04-09 14:36:36
nex有数值吗,多少?

ρb=x=[[0.0116
0.0240
0.0502
0.0804
0.1170
0.1608
0.2152
0.2972
0.4123
0.5257
0.6100];
所以问题转化为在方程(1)中用matlab的solve求解ρads,然后将ρads带入方程(2)中求解nex就好了!
matlab程序:
>> T=328.2;
rhomc=1.0254;
Eii=0.432*195.2;
C=1.23;
Eis=-1250;
x=[0.0116
0.0240
0.0502
0.0804
0.1170
0.1608
0.2152
0.2972
0.4123
0.5257
0.6100];
>> syms rhoads
>> [rhoads]=solve(log(rhoads*(rhomc-x)/(x*(rhomc-rhoads)))+(7*rhoads-8*x)/rhomc*Eii/T+Eis/T==0)
运行后出现的提示是:
??? Error using ==> mupadmex
Error in MuPAD command: Array sizes must match.

Error in ==> sym.plus at 14
    X = mupadmex('symobj::zip',A.s,B.s,'_plus');
没找到问题出现在哪?
3楼2015-04-09 15:50:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
xwl196: 金币+10, ★★★很有帮助 2015-04-09 16:40:44
Solve命令是求符号解,不一定有的。可以是数值解。
下面是用1stOpt求解,很简单:
CODE:
Constant T=328.2,rhomc=1.0254,Eii=0.432*195.2,C=1.23,Eis=-1250;
LoopConstant x=[0.0116,0.0240,0.0502,0.0804,0.1170,0.1608,0.2152,0.2972,0.4123,0.5257,0.6100];
PassParameter nex=2*C*(rhoads-x)/rhomc;
Function
ln(rhoads*(rhomc-x)/(x*(rhomc-rhoads)))+(7*rhoads-8*x)/rhomc*Eii/T+Eis/T;

Ñ-»·3£êy x        rhoads        nex
0.0116        0.257851015773962        0.590771892728639
0.024        0.378121213925542        0.849559378054255
0.0502        0.520370658449439        1.1279693970993
0.0804        0.618855300376744        1.29178860827656
0.117        0.699976313181814        1.3985973575456
0.1608        0.769244989810605        1.45969833716997
0.2152        0.831497991791605        1.47853818978677
0.2972        0.896153280504329        1.43692712116311
0.4123        0.952359132344292        1.2956363034591
0.5257        0.984696573619486        1.10116205490924
0.61        0.999729281534294        0.934985403329788
4楼2015-04-09 16:05:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见