| 2 | 1/1 | 返回列表 |
| 查看: 1004 | 回復: 1 | |||
[求助]
高等反應(yīng)工程教程例題與習題 例1-2matlab程序 已有1人參與
|
|
function ChemEqui2 %最小自由能法計算甲烷水蒸氣轉(zhuǎn)化反應(yīng)的化學平衡組成 % format long %x(1):CH4物質(zhì)的量;x(2):H2O物質(zhì)的量;x(3):CO物質(zhì)的量;x(4):CO2物質(zhì)的量; %x(5):H2物質(zhì)的量;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. 這個是初始值設(shè)置的問題還是求不出解? |
銅蟲 (初入文壇)
|
我在matlab 2017里運行了上述的程序,沒有問題,完全有解,而且求解出來的結(jié)果也合理。有一個警告是因為最后一步的步驟很小,程序懷疑可能函數(shù)在零點處有突變。不過從最后一步函數(shù)的值來看,最后結(jié)果為[-4.54747350886464e-12 0 0 5.82076609134674e-11 -1.36424205265939e-12 0 0 4.44089209850063e-16],很接近于零。另外求出來的解也有物理意義。 你的matlab是哪個版本?在大概2007版之后,函數(shù)function就可以直接在matlab腳本script文件中定義。而高等反應(yīng)工程中matlab代碼是老版本,所以編寫的代碼都是以大的函數(shù)function寫成的。此時函數(shù)文件既不能調(diào)用workspace里的變量,生成的變量也在函數(shù)返回時自動清除。要查看運行解的結(jié)果可以把代碼改成如下(那個書上所有的源碼都可以那么改): %最小自由能法計算甲烷水蒸氣轉(zhuǎn)化反應(yīng)的化學平衡組成 % format long %x(1):CH4物質(zhì)的量;x(2):H2O物質(zhì)的量;x(3):CO物質(zhì)的量;x(4):CO2物質(zhì)的量; %x(5):H2物質(zhì)的量;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 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 求材料調(diào)劑 +7 | 隔壁陳先生 2026-03-12 | 7/350 |
|
|---|---|---|---|---|
|
[教師之家] 焦慮 +8 | 水冰月月野兔 2026-03-13 | 12/600 |
|
|
[考研] 070300化學319求調(diào)劑 +6 | 錦鯉0909 2026-03-17 | 6/300 |
|
|
[考研] 334求調(diào)劑 +3 | 志存高遠意在機?/a> 2026-03-16 | 3/150 |
|
|
[基金申請] 被我言中:新模板不強調(diào)格式了,假專家開始管格式了 +4 | beefly 2026-03-14 | 4/200 |
|
|
[考研] 326求調(diào)劑 +5 | 上岸的小葡 2026-03-15 | 6/300 |
|
|
[考研] 本人考085602 化學工程 專碩 +16 | 不知道叫什么! 2026-03-15 | 18/900 |
|
|
[考研] 一志愿南京大學,080500材料科學與工程,調(diào)劑 +4 | Jy? 2026-03-16 | 4/200 |
|
|
[考研] [導師推薦]西南科技大學國防/材料導師推薦 +3 | 尖角小荷 2026-03-16 | 6/300 |
|
|
[考研] 藥學383 求調(diào)劑 +3 | 藥學chy 2026-03-15 | 4/200 |
|
|
[考研] 318求調(diào)劑 +3 | Yanyali 2026-03-15 | 3/150 |
|
|
[考研] 0703一志愿211 285分求調(diào)劑 +5 | ly3471z 2026-03-13 | 5/250 |
|
|
[考研] 0856求調(diào)劑 +3 | 劉夢微 2026-03-15 | 3/150 |
|
|
[考研] 297一志愿上交085600求調(diào)劑 +5 | 指尖八千里 2026-03-14 | 5/250 |
|
|
[考研] 求調(diào)劑 +5 | 一定有學上- 2026-03-12 | 5/250 |
|
|
[考研] 310求調(diào)劑 +3 | 【上上簽】 2026-03-11 | 3/150 |
|
|
[考研] 考研調(diào)劑 +4 | 芬達46 2026-03-12 | 4/200 |
|
|
[考研] 材料專碩350 求調(diào)劑 +4 | 王金科 2026-03-12 | 4/200 |
|
|
[考研] 308求調(diào)劑 +3 | 是Lupa啊 2026-03-12 | 3/150 |
|
|
[考研] 270求調(diào)劑 085600材料與化工專碩 +3 | YXCT 2026-03-11 | 3/150 |
|