24小时热门版块排行榜    

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

wanyshenger

金虫 (正式写手)

[求助] 请教大神:matlab怎么求解有符号变量的方程组 已有2人参与

MATLAB刚刚入门,不太会用,老板让我计算绝热火焰温度,现在遇到的问题是燃烧生成的CO2,H2O会分解,但化学平衡的方程组不会解,简单来说就是方程组里有符号变量如何求解
例如:
x*[c+0.5*(x+y)]^0.5/(a-x)=K1;
y*[c+0.5*(x+y)]^0.5/(b-y)=K2;
其中a,b,c,K1,K2 均为过程中赋值的变量,求解x,y,请问这种情况应该如何用MATLAB求解。请各位大神不吝指教,感谢感谢!
回复此楼

» 猜你喜欢

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

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

wanyshenger

金虫 (正式写手)

引用回帖:
6楼: Originally posted by 月只蓝 at 2015-07-30 12:20:01
不存在解析解的。
如果给出a,b,c,K1,K2 的具体数值,可以求出数值解。

请问:我会在过程中给a b c K1 K2赋值,不过因为有个循环,所以这五个的值是会变化的,所以我想问的就是怎么在某一个循环下(就是a b c K1 K2被赋值),求解这步循环所应该得到的x和y。谢谢!
USAwaitforme
7楼2015-07-30 12:46:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wanyshenger

金虫 (正式写手)

引用回帖:
5楼: Originally posted by 断剑残雪 at 2015-07-30 08:34:25
最终版:
syms z a b c  K1 K2 x y;
a=1 ;b=1 ;c=1  ;K1=1 ;K2=1; %比如已知它们的值,要求x,y。那么把前面的注释去掉再运行即可,它们的值也可以自己设定。
=solve(x*sqrt(c+0.5*(x+y))/(a-x)==K1 , y*sqrt(c ...

谢谢你的帮忙,还想请问一下,如果我这个方程更加复杂,比如
x*[c+0.5*(x+y)]^0.5/(a-x)/(a+b+c+0.5*(x+y))^0.5=K1;
y*[c+0.5*(x+y)]^0.5/(b-y)/(a+b+c+0.5*(x+y))^0.5=K2;
这样的话也可以这样做吗?这样会不会效率不高呀,因为我还有循环(每一步循环中a b c K1 K2会变),这样会不会计算很慢呀,谢谢
USAwaitforme
8楼2015-07-30 13:00:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wanyshenger

金虫 (正式写手)

引用回帖:
9楼: Originally posted by 断剑残雪 at 2015-07-30 13:08:44
给定矩阵,每一次让它自己提取即可。...

我刚刚试了下,用你的code跑出来的为什么是四个同样的解呀?
x =

(K1*a + K2*b + 2*K2*c)/(K1 - K2) - (2*RootOf(z^4 + z^3*(K1 + K2) - z^2*(c - K1*K2) - z*((K1*a)/2 + (K2*b)/2 + K1*c + K2*c) - K1*K2*c - (K1*K2*b)/2 - (K1*K2*a)/2, z)[1]^3)/(K1 - K2) + (2*c*RootOf(z^4 + z^3*(K1 + K2) - z^2*(c - K1*K2) - z*((K1*a)/2 + (K2*b)/2 + K1*c + K2*c) - K1*K2*c - (K1*K2*b)/2 - (K1*K2*a)/2, z)[1])/(K1 - K2) - (2*K2*RootOf(z^4 + z^3*(K1 + K2) - z^2*(c - K1*K2) - z*((K1*a)/2 + (K2*b)/2 + K1*c + K2*c) - K1*K2*c - (K1*K2*b)/2 - (K1*K2*a)/2, z)[1]^2)/(K1 - K2)
(K1*a + K2*b + 2*K2*c)/(K1 - K2) - (2*RootOf(z^4 + z^3*(K1 + K2) - z^2*(c - K1*K2) - z*((K1*a)/2 + (K2*b)/2 + K1*c + K2*c) - K1*K2*c - (K1*K2*b)/2 - (K1*K2*a)/2, z)[2]^3)/(K1 - K2) + (2*c*RootOf(z^4 + z^3*(K1 + K2) - z^2*(c - K1*K2) - z*((K1*a)/2 + (K2*b)/2 + K1*c + K2*c) - K1*K2*c - (K1*K2*b)/2 - (K1*K2*a)/2, z)[2])/(K1 - K2) - (2*K2*RootOf(z^4 + z^3*(K1 + K2) - z^2*(c - K1*K2) - z*((K1*a)/2 + (K2*b)/2 + K1*c + K2*c) - K1*K2*c - (K1*K2*b)/2 - (K1*K2*a)/2, z)[2]^2)/(K1 - K2)
(K1*a + K2*b + 2*K2*c)/(K1 - K2) - (2*RootOf(z^4 + z^3*(K1 + K2) - z^2*(c - K1*K2) - z*((K1*a)/2 + (K2*b)/2 + K1*c + K2*c) - K1*K2*c - (K1*K2*b)/2 - (K1*K2*a)/2, z)[3]^3)/(K1 - K2) + (2*c*RootOf(z^4 + z^3*(K1 + K2) - z^2*(c - K1*K2) - z*((K1*a)/2 + (K2*b)/2 + K1*c + K2*c) - K1*K2*c - (K1*K2*b)/2 - (K1*K2*a)/2, z)[3])/(K1 - K2) - (2*K2*RootOf(z^4 + z^3*(K1 + K2) - z^2*(c - K1*K2) - z*((K1*a)/2 + (K2*b)/2 + K1*c + K2*c) - K1*K2*c - (K1*K2*b)/2 - (K1*K2*a)/2, z)[3]^2)/(K1 - K2)
(K1*a + K2*b + 2*K2*c)/(K1 - K2) - (2*RootOf(z^4 + z^3*(K1 + K2) - z^2*(c - K1*K2) - z*((K1*a)/2 + (K2*b)/2 + K1*c + K2*c) - K1*K2*c - (K1*K2*b)/2 - (K1*K2*a)/2, z)[4]^3)/(K1 - K2) + (2*c*RootOf(z^4 + z^3*(K1 + K2) - z^2*(c - K1*K2) - z*((K1*a)/2 + (K2*b)/2 + K1*c + K2*c) - K1*K2*c - (K1*K2*b)/2 - (K1*K2*a)/2, z)[4])/(K1 - K2) - (2*K2*RootOf(z^4 + z^3*(K1 + K2) - z^2*(c - K1*K2) - z*((K1*a)/2 + (K2*b)/2 + K1*c + K2*c) - K1*K2*c - (K1*K2*b)/2 - (K1*K2*a)/2, z)[4]^2)/(K1 - K2)
而且我刚刚试了把我上一个回复的复杂一点的方程组放进去解,解出来是八个,好像也是都一样,请问那怎么选择呢?
USAwaitforme
11楼2015-07-30 13:35:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wanyshenger 的主题更新
信息提示
请填处理意见