24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1009  |  回复: 1

cpwpeng

金虫 (小有名气)

[求助] 高等反应工程教程例题与习题 例1-2matlab程序 已有1人参与

function ChemEqui2
%最小自由能法计算甲烷水蒸气转化反应的化学平衡组成
% format long
%x(1):CH4物质的量;x(2):H2O物质的量;x(3):CO物质的量;x(4):CO2物质的量;
%x(5):H2物质的量;x(6):拉格朗日乘子1;x(7):拉格朗日乘子2;x(8):拉格朗日乘子3
x0=[0.10,0.7,1.2,0.3,6,5000,1500,180000];
% op=optimset('MaxFunEvals',100000);
x=fsolve(@equi2,x0);

function f=equi2(x)
f1=19.3*1000+8314*log(x(1)/(x(1)+x(2)+x(3)+x(4)+x(5)))+x(6)+4*x(7);
f2= -192.6*1000+8314*log(x(2)/(x(1)+x(2)+x(3)+x(4)+x(5)))+2*x(7)+x(8);
f3=-200.6*1000+8314*log(x(3)/(x(1)+x(2)+x(3)+x(4)+x(5)))+x(6)+x(8);
f4=-395.9*1000+8314*log(x(4)/(x(1)+x(2)+x(3)+x(4)+x(5)))+x(6)+2*x(8);
f5=8314*log(x(5)/(x(1)+x(2)+x(3)+x(4)+x(5)))+2*x(7);
f6=x(1)+x(3)+x(4)-2;
f7=4*x(1)+2*x(2)+2*x(5)-14;
f8=x(3)+2*x(4)+x(2)-3;
f=[f1,f2,f3,f4,f5,f6,f7,f8];

按照教程上的算法,运行得到如下
fsolve stopped because the relative size of the current step is less than the
default value of the step size tolerance squared and the vector of function values
is near zero as measured by the default value of the function tolerance.
这个是初始值设置的问题还是求不出解?
回复此楼

» 猜你喜欢

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

tju1994820

铜虫 (初入文坛)


【答案】应助回帖


感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2017-09-21 22:07:46
我在matlab 2017里运行了上述的程序,没有问题,完全有解,而且求解出来的结果也合理。有一个警告是因为最后一步的步骤很小,程序怀疑可能函数在零点处有突变。不过从最后一步函数的值来看,最后结果为[-4.54747350886464e-12        0        0        5.82076609134674e-11        -1.36424205265939e-12        0        0        4.44089209850063e-16],很接近于零。另外求出来的解也有物理意义。

     你的matlab是哪个版本?在大概2007版之后,函数function就可以直接在matlab脚本script文件中定义。而高等反应工程中matlab代码是老版本,所以编写的代码都是以大的函数function写成的。此时函数文件既不能调用workspace里的变量,生成的变量也在函数返回时自动清除。要查看运行解的结果可以把代码改成如下(那个书上所有的源码都可以那么改):
%最小自由能法计算甲烷水蒸气转化反应的化学平衡组成
% format long
%x(1):CH4物质的量;x(2):H2O物质的量;x(3):CO物质的量;x(4):CO2物质的量;
%x(5):H2物质的量;x(6):拉格朗日乘子1;x(7):拉格朗日乘子2;x(8):拉格朗日乘子3
x0=[0.10,0.7,1.2,0.3,6,5000,1500,180000];
% op=optimset('MaxFunEvals',100000);
x=fsolve(@equi2,x0);

function f=equi2(x)
f1=19.3*1000+8314*log(x(1)/(x(1)+x(2)+x(3)+x(4)+x(5)))+x(6)+4*x(7);
f2= -192.6*1000+8314*log(x(2)/(x(1)+x(2)+x(3)+x(4)+x(5)))+2*x(7)+x(8);
f3=-200.6*1000+8314*log(x(3)/(x(1)+x(2)+x(3)+x(4)+x(5)))+x(6)+x(8);
f4=-395.9*1000+8314*log(x(4)/(x(1)+x(2)+x(3)+x(4)+x(5)))+x(6)+2*x(8);
f5=8314*log(x(5)/(x(1)+x(2)+x(3)+x(4)+x(5)))+2*x(7);
f6=x(1)+x(3)+x(4)-2;
f7=4*x(1)+2*x(2)+2*x(5)-14;
f8=x(3)+2*x(4)+x(2)-3;
f=[f1,f2,f3,f4,f5,f6,f7,f8];
end
2楼2017-09-21 16:53:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 cpwpeng 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 求调剂 +3 图鉴212 2026-03-30 3/150 2026-03-31 00:31 by jp9609
[考研] 食品工程专硕一志愿中海洋309求调剂 +5 小张zxy张 2026-03-26 10/500 2026-03-31 00:29 by jp9609
[考研] 求调剂,一志愿 南京航空航天大学 ,080500材料科学与工程学硕,总分289分 +9 @taotao 2026-03-29 9/450 2026-03-30 22:29 by 我是小康
[考研] 一志愿华东师范大学有机化学专业,初试351分,复试被刷求调剂! +7 真名有冰 2026-03-29 8/400 2026-03-30 21:08 by maaj02
[考研] 学硕274求调剂 +10 Li李鱼 2026-03-26 10/500 2026-03-30 20:54 by dophin1985
[考研] 0703一志愿9,初试成绩:338,四六级已过,有科研经历,求调剂! +7 Zuhui0306 2026-03-25 7/350 2026-03-30 19:01 by 源_2020
[考研] 085600 材料与化工 329分求调剂 +18 Mr. Z 2026-03-25 19/950 2026-03-30 19:01 by Wang200018
[考研] 26考研-291分-厦门大学(085601)-柔性电子学院材料工程专业求调剂 +5 min3 2026-03-24 6/300 2026-03-30 18:42 by 544594351
[考研] 297求调剂 +17 田洪有 2026-03-26 18/900 2026-03-30 18:32 by nothing投稿中
[考研] 298求调剂 +3 什么是胖头鱼 2026-03-30 5/250 2026-03-30 14:41 by 青海小西牛
[考研] 311求调剂 +6 冬十三 2026-03-24 6/300 2026-03-29 20:45 by 无际的草原
[有机交流] 高温高压反应求助 10+4 chibby 2026-03-25 4/200 2026-03-27 21:08 by BT20230424
[考研] 266求调剂 +11 阳阳哇塞 2026-03-27 12/600 2026-03-27 17:56 by yu221
[考研] 085600,材料与化工321分调剂 +4 大馋小子 2026-03-27 6/300 2026-03-27 14:11 by 松花缸1201
[考研] 085601 材料工程 313分 求调剂 +5 Ong3 2026-03-27 5/250 2026-03-27 12:24 by goldfish51
[考研] 321求调剂 +6 Ymlll 2026-03-24 6/300 2026-03-26 20:50 by 不吃魚的貓
[考研] 机械学硕310分,数一英一,一志愿211本科双非找调剂信息 +3 @357 2026-03-25 3/150 2026-03-26 16:34 by by.MENG
[考研] 07化学303求调剂 +5 睿08 2026-03-25 5/250 2026-03-25 22:46 by 418490947
[考研] 网络空间安全0839招调剂 +4 w320357296 2026-03-25 6/300 2026-03-25 17:59 by 255671
[考研] 302求调剂 +4 锦衣卫藤椒 2026-03-25 4/200 2026-03-25 16:29 by 功夫疯狂
信息提示
请填处理意见