matlab非线性方程组求解得到矩阵,非线性方程组求解——附Matlab原程序

在科学与工程计算中,经常遇到求解非线性方程组的问题;非线性方程组在收敛速度及收敛性比线性方程组要差,特别对于非凸的非线性方程组,其求解更是困难。下面简要介绍非线性方程组的三种解法——牛顿法、拟牛顿法、同伦算法,分析三种解法的适用性,并附Matlab原程序。

(一)、牛顿迭代法

迭代公式为:xk+1=xk-f(xk)/f'(xk);牛顿迭代法是解非线性方程组比较经典的方法,在局部收敛点附近是平方收敛的;但其解依赖于初始解,且迭代每一步都要计算f'(xk),不仅计算量大而且有时会发生计算困难。

(二)、拟牛顿迭代法

拟牛顿法是为了解决求Jacobi矩阵时带来的困难,现已成为解决非线性方程组和最优化问题的最有效方法之一。其迭代格式为:

x(k+1)=x(k)-Ak-1F(x(k))

Ak+1=Ak+[(yk-Aksk)(yk-Aksk)T]/[(yk-Aksk)Tsk]

在一定条件下,计算H的序列是超收敛的,但稳定性较差,有时迭代效果不理想。

(三)、同伦算法

同伦算法基本思想是从容易求解的方程组开始,逐步过渡到原方程组的求解,从而得到问题的解。非线性方程组为:F(x)=0,其解为X*。

构造泛函 G:[0,1]XRn->Rn

G定义为:G(λ,x)=λ

F(x)+(1-λ)[F(x)-F(x(0))]=F(x)+(λ-1)F(x(0))

(其中:x(0)为任意给的初值,假定为λ函数(λ=0)

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值