搜索
首页 教育/科学 理工学科 数学

matlab如何解非线性超标定方程

  我有一个三个未知数,九个方程的非线性方程组,请问如何求解? cos(x3)*sin(x2)*sin(x1)-sin(x3)*cos(x1)=-0。9944 ; sin(x3)*sin(x2)*sin(x1) cos(x3)*cos(x1)=-0。0870; cos(x2)*sin(x1)=-0。
  0606; cos(x3)*sin(x2)*cos(x1) sin(x3)*sin(x1)=0。0349; sin(x3)*sin(x2)*cos(x1)-cos(x3)*sin(x1)=-0。8085; cos(x2)*cos(x1)=0。5875; os(x3)*cos(x2)=-0。
  1001; sin(x3)*cos(x2)=0。5821; -sin(x2)=0。8070; 谢谢!!!。

全部回答

2018-04-25

1 0

    首先说明,非线性超标定方程没有准确解,即满足所有方程的解,而只有最优解,即,综合考虑,使9个方程都近似满足,这里存在一个目标函数的问题,一般来说,目标函数取为: T(x1,x2,x3)=a1*f1^2 a2*f2^2 … a9*f9^2。
   这里记9个方程为: f1(x1,x2,x3)=0; f2(x1,x2,x3)=0; f3(x1,x2,x3)=0; f4(x1,x2,x3)=0; f5(x1,x2,x3)=0; f6(x1,x2,x3)=0; f7(x1,x2,x3)=0; f8(x1,x2,x3)=0; f9(x1,x2,x3)=0; a1~a9为正的权重系数,如果这9个方程没有侧重点,则它们可取相同的值,如果对某个方程要求“更加逼近”,则对应的权系数取的大些,例如,如对f2要求的优先级高,可使a2=5,其它的全为1。
     以下就是具体的求解了~~ 求解的过程是一个解搜索的过程,不知道你是否了解搜索算法,因为我以前搞过算法研究,所以比较清楚,典型实用的主要有,梯度搜索算法、牛顿搜索算法和盲搜索算法。
   在你这个具体的问题中,盲搜索算法比较合适,盲搜索算法又有两种典型的分类:遗传算法和粒子群算法。
     我个人比较喜欢遗传算法,但它相对于粒子群算法来说,复杂,对没搞过这个的来说,可能会浪费很多时间,这里还是建议你用粒子群搜索吧,可以网上自己看下资料,自己写一下matlab程序,求解一下,实在不行就找我吧 QQ:369388513。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

教育/科学
数学
出国/留学
院校信息
人文学科
职业教育
升学入学
理工学科
外语学习
学习帮助
K12
理工学科
数学
生物学
农业科学
化学
天文学
环境学
建筑学
工程技术科学
地球科学
生态学
心理学
物理学
数学
数学
举报
举报原因(必选):
取消确定举报