马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
解一组非线性方程组log10(a)=-x1*(Ta-x3)/(x2+Ta-x3)+x1*(Tb-x3)/(x2+Tb-x3);
x1,x2,x3为未知数
a,Ta,Tb 为常数,对应3组数值为
a=23,Ta=120,Tb=130.
a=44,Ta=130,Tb=150.
a=14,Ta=150,Tb=170.
Ta,Tb 分别代表温度
开始先在matlab自己编牛顿拉尔森法解,结果Jacobian矩阵 singular了,算了一下determinant 大概是10的负8次左右。用 J\(-F) 或者 pinv(J)*(-F) 均不能得到满意的结果。
后采用matlab自带 fsolve开始解。 结果也不能算得满意结果,带入结果验算,每组数据大概10%到20%的偏差。
但是如果只用其中两组数据倒是可以拟合得到对这两组数据完美拟合的结果,但是对另外一组数据不适用,大概有20%偏差。
后来化简了一下式子,把分母都乘上去了,仍然不能算得满意结果。
无奈下找到被吹的天花乱坠的1stopt,还是不能算得合理结果。 计算结果对第一第三组数据符合,但是对第二组数据偏差30%左右。分母乘上去以后,偏差更大,结果完全没意义了。。。
想请问一下论坛上的高手们,有什么方法可以算得结果么,或者这个式子对应这组数据,根本就算不出来。 可怜我老板一个劲说3组数据,3个未知数,肯定可以算出确定解的。。。
这两天被这东西折磨死了,大哥们帮帮我吧。。 |