作者parker16 (爱将 150)
看板MATLAB
标题Re: [运算] 三元二次方程式 求解
时间Thu Aug 16 23:43:02 2012
或许可以用gradient descent去做
但提供一个另外解法
n1-P1*(x(1)/((x(1)+x(2)+x(3))))-x(1);------(1)
n2-P2*(x(2)/((x(1)+x(2)+x(3))))-x(2);------(2)
n3-P3*(x(3)/((x(1)+x(2)+x(3))))-x(3);------(3)
化简 (1) (2) (3)
(n1-x(1))/P1=(x(1)/(x(1)+x(2)+x(3)))-------(4)
(n2-x(2))/P2=(x(2)/(x(1)+x(2)+x(3)))-------(5)
(n3-x(3))/P3=(x(3)/(x(1)+x(2)+x(3)))-------(6)
(4)+(5)+(6)
可得 a1x(1)+a2x(2)+a3x(3)=Const
Let [x(1) x(2) x(3)]=[c1 c2 c3]+u 向量1+ v 向量2
向量1 和向量2 和平面法向量垂直
代入 (7) (8)
((n1-x(1))/P1) (x(1)+x(2)+x(3))= x(1)-------(7)
((n2-x(2))/P2) (x(1)+x(2)+x(3))= x(2)-------(8)
变成u v 二元二次 应该就解的出来了
解出来你在看似不是有和剩下两个方程式
※ 引述《boffin (新的开始)》之铭言:
: 参考了上面的例子後仍无法了解该如何进行
: 希望可以得到一些解答
: 我是用fsolve去解 因为2009找不到有关solve的说明
: 式子在F中 应该只需要前三个就可以求得解了
: 但同时需要符合下面两个式子
: 此外所求得的解要为正值且 x(1) < n1
: x(2) < n2
: x(3) < n3
: 试了很多初始值代入都得不到合理的答案
: 请问该如何修改或是用什麽方式来求解
: 感谢!!
: ==============================================
: [x] = fsolve(@myfun,x0,options)
: function F = myfun(x)
: n1=7.1638e-04;
: n2=4.1505e-09;
: n3=5.3156e-12;
: P1=3.1316e-02;
: P2=9.7300e-03;
: P2=7.4428e-03;
: R=0.082;
: T=298;
: K2=1e5;
: K3=5.7e3;
: Va=1;
: F = [ n1-P1*(x(1)/((x(1)+x(2)+x(3))))-x(1);
: n2-P2*(x(2)/(x(1)+x(2)+x(3)))-x(2);
: n3-P3*(x(3)/(x(1)+x(2)+x(3)))-x(3);
: x(2)-(n2-x(2))*R*T/Va*K2*x(1)*18/1000;
: x(3)-(n3-x(3))*R*T/Va*K3*x(1)*18/1000];
: end
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.240.22.251
1F:推 boffin:非常感谢 08/16 23:57