求解非线性方程组
搜集整理的一些关于求解非线性方程组的程序,供大家参考学习。其中包括了:Newton-Raphson,Levenberg-Marquardt,Homotopy Algorithm,Quasi-Newton (Broyden) 等方法。详见附件。如有错误、不懂的地方,欢迎指教。 首先应帮大家感谢LZ无私的分享一个小建议, 若能举例并说明下各方法的差异, 或许更完整些 向高手学习 【没有找到怎么修改帖子,就在这里说吧!】
一般情况下,非线性方程组的求解是针对凸非线性方程组的优化问题,对于非凸问题,求解比较困难。常见的方法包括:
1.Newton-Raphson,是解非线性方程组比较经典的方法,在局部收敛点附近是平方收敛的;但其解依赖于初始解,而且都要计算Jacobi 矩阵。
2.Quasi-Newton,解决了求Jacobi矩阵时带来的困难,但是稳定性比较差。
3.Homotopy Algorithm,是对方程组进行近似,从容易求解的方程组开始,逐步过渡到原方程组的求解,从而得到问题的解。
4.Levenberg-Marquardt,则是将非线性方程组的求解转换为最小二乘问题进行优化求解。
这几种方法收敛性和稳定性,以及具体的差异,要从求解过程本身出发,详见参考书目:
. J. M. Ortega andW. G. Rheinboldt, Iterative SolutionofNonlinearEquationsinSeveral Variables, 1970.
. C. T. Kelley, Iterative Methods for Optimization, SIAM Frontiers in Applied Mathematics, No18, 1999. 非常感谢分享 我还没有涉及到解非线性,不过马上也要接触了,谢谢楼主分享,支持 太好了,找了好几天终于找到了 楼主真是及时雨,以前只会用牛顿法,现在可以都试一下比较效果了。
好的东东 很好的 学习一下 呵呵 向高手学习 回复 4 # yanyongju 的帖子
多谢LZ分享,请问楼主涉及过非线性方程吗?这里所说的对非线性方程同样适用吗?我在解一个非线性方程,三次的,解了好几天了,可是就是数量级不对,我用的是解析的解法,我估计是系数的数量级差太多,带入解析表达式,结果matlab给忽略了,所以转向数值求解了 shuidixn 发表于 2012-9-6 21:11 static/image/common/back.gif
回复 4 # yanyongju 的帖子
多谢LZ分享,请问楼主涉及过非线性方程吗?这里所说的对非线性方程同样适用吗? ...
如果解析求解,可以尝试一下Maple来求解。求解结果不正确的话,你应该先检查一下你的Jacobian矩阵是否正确。
好,留名,一般我直接用solve给解了,不过有时也解不出来,而已满,问下,有解符号非线性的程序没? kyu16866 发表于 2012-11-9 21:27 static/image/common/back.gif
好,留名,一般我直接用solve给解了,不过有时也解不出来,而已满,问下,有解符号非线性的程序没?
你好,非线性方程符号解未必一定存在,暂时还没有程序,maple主要多用于公式推导了
页:
[1]
2