求解Mathematica(Wolfram)中的非线性方程系统
我正在尝试通过NSOLVE的功能求解Mathmatica中的方程系统,
代码应代表工厂的质量平衡,在一个试图更改Conc的流中。溶剂及其可行的溶剂指向有效的
代码是:
NSolve[{
m1 == m4 + m5,
m1*0.952 == m4 + m5*0.454,
m1*0.048 == m5*0.546,
x6MgCl2 + x6H2O == 1,
0.255*x6MgCl2 == x6Mg,
0.745*x6MgCl2 == x6Cl2,
x11H2O + x11Br2 + x11Cl2 == 1,
m5 + m7 + m9 + m10 + m12 == m6 + m11,
m5*0.072 == m6*x6Mg,
m5*0.454 + m7 + m10 == m6*x6H2O + m11*x11H2O,
m5*0.474 == m11*x11Br2,
m9 + m12 == m6*x6Cl2 + m11*x11Cl2,
m6 == m7 + m8,
m6*x6MgCl2 == m8*0.056,
m6*x6H2O == m7 + m8*0.944,
m11 == m12 + m13 + 8163.265,
m11*x11Br2 == m13*0.030 + 8000,
m11*x11H2O == m13*0.970 + 163.265,
m11*x11Cl2 == m12,
x11Cl2 == x11Br2*0.0311,
m1 >= 0, m4 >= 0, m5 >= 0, m6 >= 0, m7 >= 0, m8 >= 0, m9 >= 0,
m10 >= 0, m11 >= 0, m12 >= 0, m13 >= 0, x11H2O >= 0, x11Br2 >= 0,
x11Cl2 >= 0, x6MgCl2 > 0, x6H2O > 0, x6Mg > 0, x6Cl2 > 0
}, {m1, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, x11H2O, x11Br2,
x11Cl2, x6MgCl2, x6H2O, x6Mg, x6Cl2}, Reals]
我得到的答案是:
{{m1 -> 192590., m4 -> 175660., m5 -> 16931., m6 -> 2.0519*10^5,
m7 -> 119830., m8 -> 85365., m9 -> 3561.4, m10 -> 73874.,
m11 -> 9251.3, m12 -> 249.58, m13 -> 838.41, x11H2O -> 0.10556,
x11Br2 -> 0.86747, x11Cl2 -> 0.026978, x6MgCl2 -> 0.023297,
x6H2O -> 0.9767, x6Mg -> 0.0059407, x6Cl2 -> 0.017356}}
但是,如果我更改eq 14& 15为了减少浓度。我没有得到答案(如果我做oppsite,我确实会得到答案)
: 更改架子为:
m6*x6MgCl2 == m8*0.05,
m6*x6H2O == m7 + m8*0.95,
不要给我一个答案,将其更改
m6*x6MgCl2 == m8*0.06,
m6*x6H2O == m7 + m8*0.94,
为答案,
我需要所有的值才能为正,所有x代表质量分数,需要在0到1之间,
请帮助我解决这个问题:(
I'm Trying to solve a System of equations in Mathmatica with the Function of NSolve
The Code should represent a Mass Balance of A factory, in one of the Flows im trying to change the Conc. of the Solvent and it work up to a certian point
The Code that works is :
NSolve[{
m1 == m4 + m5,
m1*0.952 == m4 + m5*0.454,
m1*0.048 == m5*0.546,
x6MgCl2 + x6H2O == 1,
0.255*x6MgCl2 == x6Mg,
0.745*x6MgCl2 == x6Cl2,
x11H2O + x11Br2 + x11Cl2 == 1,
m5 + m7 + m9 + m10 + m12 == m6 + m11,
m5*0.072 == m6*x6Mg,
m5*0.454 + m7 + m10 == m6*x6H2O + m11*x11H2O,
m5*0.474 == m11*x11Br2,
m9 + m12 == m6*x6Cl2 + m11*x11Cl2,
m6 == m7 + m8,
m6*x6MgCl2 == m8*0.056,
m6*x6H2O == m7 + m8*0.944,
m11 == m12 + m13 + 8163.265,
m11*x11Br2 == m13*0.030 + 8000,
m11*x11H2O == m13*0.970 + 163.265,
m11*x11Cl2 == m12,
x11Cl2 == x11Br2*0.0311,
m1 >= 0, m4 >= 0, m5 >= 0, m6 >= 0, m7 >= 0, m8 >= 0, m9 >= 0,
m10 >= 0, m11 >= 0, m12 >= 0, m13 >= 0, x11H2O >= 0, x11Br2 >= 0,
x11Cl2 >= 0, x6MgCl2 > 0, x6H2O > 0, x6Mg > 0, x6Cl2 > 0
}, {m1, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, x11H2O, x11Br2,
x11Cl2, x6MgCl2, x6H2O, x6Mg, x6Cl2}, Reals]
the Answer that i get is :
{{m1 -> 192590., m4 -> 175660., m5 -> 16931., m6 -> 2.0519*10^5,
m7 -> 119830., m8 -> 85365., m9 -> 3561.4, m10 -> 73874.,
m11 -> 9251.3, m12 -> 249.58, m13 -> 838.41, x11H2O -> 0.10556,
x11Br2 -> 0.86747, x11Cl2 -> 0.026978, x6MgCl2 -> 0.023297,
x6H2O -> 0.9767, x6Mg -> 0.0059407, x6Cl2 -> 0.017356}}
However, if im Changing Eq 14 & 15 in order to reduce the Conc. I dont get an answer (if i do the oppsite i do get an answer)
For Example :
Changing the Eqution to :
m6*x6MgCl2 == m8*0.05,
m6*x6H2O == m7 + m8*0.95,
dont give me an answer, Changing it to
m6*x6MgCl2 == m8*0.06,
m6*x6H2O == m7 + m8*0.94,
does give an answer
I need all The Values to be Positive and all the x Represent Mass Fraction and need to be between 0 to 1
Please Help Me with that :(
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论