24小时热门版块排行榜    

查看: 2746  |  回复: 7

lgycjpcqu

金虫 (正式写手)

[求助] 求助 MATLAB解方程组-fslove

求解x,y,z的数值,我用MATLAB 的fslove函数求解,解出来结果为
>> x=fsolve(@myfun1,[0.8 0.9 0.05],optimset('Display','off'))
x =
   0.800000000000194   0.900000000000932   0.050000000000305
这个结果似乎就是在初始值附件变动了一下,我改变初始值,结果也发生变化,是不是解法有问题,下面是我写的程序
function q=myfun1(p)
K1=10^(-12.43);
K2=10^(19.4);
K3=5.6*10^(-20);
Ccu=0.24;
Coh=0.75;
Csa=0.26;
x(1)=p(1);
x(2)=p(2);
x(3)=p(3);
q(1)=((1/Coh)*(x(1)/((1-x(1)-x(2))*(1-x(1)-3*x(2)-2*x(3)))))-K1;
q(2)=((1/(Csa*Coh^3))*(x(2)/((1-x(2)-x(3))*(1-x(1)-x(2))*(1-x(1)-3*x(2)-2*x(3))^3)))-K2;
q(3)=(Ccu*Coh^2*(1-x(2)-x(3))*(1-x(1)-3*x(2)-2*x(3))^2)-K3;
%x=fsolve(@myfun1,[0.8 0.9 0.05],optimset('Display','off'));
要是该方程解出来就是这个这个结果,就说明我方程有问题,我就去重新考虑数学模型,现在求高手帮忙看看这些方程的求解是否有问题,多谢!或者哪位高手能够有其它方法准确的求解这个方程,还请指点一下。

方程组及参数

[ Last edited by lgycjpcqu on 2012-7-16 at 16:13 ]
回复此楼

» 本帖@通知

» 猜你喜欢

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

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

zt_chem

木虫 (正式写手)

非线性方程组求值时,求解结果与初值有关
2楼2012-07-16 17:00:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lgycjpcqu

金虫 (正式写手)

引用回帖:
2楼: Originally posted by zt_chem at 2012-07-16 17:00:58
非线性方程组求值时,求解结果与初值有关

但是每次求解的结果只在初始值附近波动一个极小的数值,这样正常吗?而且一直随初始值改变,如何确定哪一个是方程的解?我水平比较低,还望您给详细解释下,谢谢!
3楼2012-07-16 17:34:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
lgycjpcqu: 金币+5 2012-07-18 09:20:05
第二个式子似乎有问题,没法满足。
4楼2012-07-16 18:00:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
dbb627: 金币+1, 欢迎交流 2012-07-17 19:16:52
lgycjpcqu: 金币+10, 有帮助 2012-07-18 09:19:26
我觉得可能吧,你的方程得改改,比如乘以一个系数什么的,让x,y,z的变化对方程值的影响大一些。因为x,y,z变化很大,但是函数值仍变化很小,那么就会被认为是一个极小值,就不再迭代了。所以得看看求解时的结束条件是什么。
showmethemoney
5楼2012-07-16 18:06:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zt_chem

木虫 (正式写手)

引用回帖:
3楼: Originally posted by lgycjpcqu at 2012-07-16 17:34:20
但是每次求解的结果只在初始值附近波动一个极小的数值,这样正常吗?而且一直随初始值改变,如何确定哪一个是方程的解?我水平比较低,还望您给详细解释下,谢谢!...

是不是数学模型的问题?我觉得5楼的建议可以参考
6楼2012-07-16 19:25:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

emspire529

铜虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
dbb627: 金币+1, 欢迎交流 2012-07-17 19:17:50
lgycjpcqu: 金币+5 2012-07-18 09:19:34
这个应该是化学反应动力学里的吧?据我的初步经验不要用这种,应该考虑一下反应引起的刚性问题。可以减小就算步长或者换成刚性求解器。
7楼2012-07-17 09:01:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mataohk

银虫 (初入文坛)

我也遇到了相同的问题,方程组的解总是随着初值的改变而改变,但是方程组确实没错
8楼2012-09-29 17:53:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lgycjpcqu 的主题更新
信息提示
请填处理意见