Billow 发表于 2008-11-3 11:27

非线性方程组求解问题

有个非线性方程组的求解问题,一直没有解决掉,请各位帮帮忙请详细说明下。最好有程序,我对MATLAB数值计算不怎么理解。方程组如下:
= ...
('x1^2+y1^2+z1^2=75515.04','x2^2+y2^2+z2^2=47698.56','x3^2+y3^2+z3^2=48620.25',...
'x4^2+y4^2+z4^2=33160.41','x5^2+y5^2+z5^2=219117.61','(x1-x2)^2+(y1-y2)^2+(z1-z2)^2=36902.41',...
'(x1-x3)^2+(y1-y3)^2+(z1-z3)^2=25027.24','(x1-x4)^2+(y1-y4)^2+(z1-z4)^2=157212.25',...
'(x1-x5)^2+(y1-y5)^2+(z1-z5)^2=90721.44','(x2-x3)^2+(y2-y3)^2+(z2-z3)^2=25058.89',...
'(x2-x4)^2+(y2-y4)^2+(z2-z4)^2=156816','(x2-x5)^2+(y2-y5)^2+(z2-z5)^2=89760.16',...
'(x3-x4)^2+(y3-y4)^2+(z3-z4)^2=133225','(x3-x5)^2+(y3-y5)^2+(z3-z5)^2=66254.76',...
'(x4-x5)^2+(y4-y5)^2+(z4-z5)^2=384400')


15个未知数,15个方程。要是用fsolve。我不知道如何猜初值,也不知道其收敛性如何!!

咕噜噜 发表于 2008-11-3 11:39

猜初值?初值是猜得吗?呵呵

Billow 发表于 2008-11-3 12:09

回复 沙发 咕噜噜 的帖子

呵呵。。。。大家帮我想想办法,我现在急着把这个方程组解出来。在线等。。。。。。。。。。。:time:

心灯 发表于 2008-11-3 16:43

根据前面的方程 ('x1^2+y1^2+z1^2=75515.04','x2^2+y2^2+z2^2=47698.56','x3^2+y3^2+z3^2=48620.25',...
'x4^2+y4^2+z4^2=33160.41','x5^2+y5^2+z5^2=219117.61' 可以初步判断出这15个参数的取值范围;然后在这个取值范围内人为多取几组初值,也可在这个范围内利用rand随机取值+多次运算,然后看求解效果如何... 你这个求导数比较容易,建议利用导数信息。 具体如何使用fsolve,相信你已经看help的解释了,建议你再认真看看,尽可能的利用该命令提供的功能,提高搜索到解的概率。

mxlzhenzhu 发表于 2015-12-24 18:20

不管函数是显式的还是隐式的,MATLAB都能解决非线性最小二乘问题。

问题是,怎么定义数学模型,目标函数,初值
数学模型,这个不好说,目前研究太浅。。。
目标函数不一样,收敛特性不一样,甚至不收敛;
初值不合理,可能不收敛,也可能 局部收敛,不是全局最优解,初值不同,收敛解不同。。。
页: [1]
查看完整版本: 非线性方程组求解问题