全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
3845 1
2015-02-28

1stOpt解出非线性方程组的解作为初值用Matlab求解,解不出来

这是一个非线性方程组(Matlab表示):


复制代码

用一开始建模型的人给的粗略的初始值范围,用默认设置选项,解出的解明显不对,警告提示要用Levenberg-Marquardt算法,后改用这种算法options=optimset('Display','iter','Algorithm','Levenberg-Marquardt'); 结果还是一样。


于是使用1stOpt软件,网上只能下载到免安装的1.5版本,使用如下代码:


复制代码




结果为:

====== 结果 ======


迭代数: 148

计算用时(:::毫秒): 00:00:00:482

计算中止原因: 达到收敛判定标准

优化算法: 最大继承法

函数表达式 1: bt*(3*(m*(-150)+n*150+p*c)*(-150)/rl^5-m/rl^3)/(-48030)-1-(0)

         2: bt*(3*(m*(-150)+n*150+p*c)*150/rl^5-n/rl^3)/29370-1-(0)

         3: bt*(3*(m*(-150)+n*150+p*c)*c/rl^5-p/rl^3)/(-19077.3)-1-(0)

         4: m^2+n^2+p^2-1-(0)

         5: rl-sqrt((-150)^2+150^2+c^2)-(0)

目标函数值: 0

Bt: 999812590445.556

c: 161.888089867363

m: 0.401079546362512

n: -0.0464426102549249

p: 0.914865171182263

Rl: 266.847809885904


====== 计算结束 ======

当然每次运行结果都会有点不同,但大致都在这个范围内。


因为我要继续一步作分析,BxByBz是测试数据,要从表格中读出的,对应每一组数据求一次方程组,相当于变常量,按照上面注释中采用的两种方法,都没有达到我预期的效果,软件把它也当做变量去求解了,也有可能是用的方法不对,但我从手册中找不到其它方法了。因为Matlab编程方便,可以实现我的需求,于是我又转回Matlab,用1stOpt解出非线性方程组的解作为初值用Matlab求解,依然求不出解,除了算法的设置,误差和迭代次数的设置都是因为解不出正确的解,自己调的,但是依然没用。




复制代码
请问:如何用Matlab可以解出这个方程组的解?

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-11-23 23:04:25
只能说明Matlab的方程求解能力还很弱。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群