Broyden方法解非线性方程组
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用Broyden 方法求解非线性方程
沈欢
北京大学工学院,北京100871
2011年10月26日
摘要
用Broyden 方法求解给定的非线性方程组。
1问题描述
用Broyden 方法计算非线性方程组(x 1+3)(x 32−7)+18=0
(1)sin (x 2e x 1−1)=0(2)
的解,取初始猜测为−→x 0
=(−0.5,1.4)T 。2问题分析
通过观察不难看出(0,1)点是方程的一个精确解。取初始猜测−→x 0=(−0.5,1.4)T 在精确解附近,可以用Broyden 方法求解。设:−−−−−−→F (x 1,x 2)=F 1(x 1,x 2)−→i +F 2(x 1,x 2)−→j 其中F 1(x 1,x 2)=
(x 1+3)(x 32−7)+18;F 2(x 1,x 2)=sin (x 2e
x 1−1)。3Broyden 算法
Broyden 算法类似于牛顿方法,它通过在已知的雅可比矩阵上加上一个修正项得到新的雅可比矩阵,从而避免了牛顿方法计算雅可比矩阵的复杂度。Broyden 算法如图一所示。Broyden 算法说明:a )初始迭代点取−→x 0
=(−0.5,1.4)T ;初始的雅可比矩阵的近似矩阵取为真实的雅可比矩阵,即:A =∇F (−→x )= x 32−73(x 1+3)x 22cos (x 2e x 1−1)∗x 2∗e x 1cos (x 2e x 1−1)∗e x 1
(3)1
图1:Broyden方法的算法简图
A0=∇F(−→x)=
−4.256014.7000
0.83950.5996
(4)
取精度为10−8。并计算得到−→x1=[−0.0553,1.0281]T。
b)在每步迭代中用−→
x k和−−→
x k−1来估计新的雅可比近似矩阵。
A k=A k−1+g k−A k−1.y k
y
k
.y k
∗y T k(5)
其中:g k=F(−−→
x k−1)−F(−→
x k),y k=−−→
x k−1−−→
x k。
c)解线性方程
A k∗−→s=−F(−→
x k)(6)得到位移向量−→
x k,从而计算出新的迭代点;
−−→
x k+1=−→
x k+−→s(7) 4计算结果
调用所编写的函数[roots,flag]=Broyden,得到结果roots=[0.0000,1.0000]T,flag=6。说明,当初值取−→x0=(−0.5,1.4)T时,经过6次迭代得到该非线性方程组满足精度要求的解x1=0.0000,x2=1.0000。与理论解比较,Broyden方法给出的结果非常准确,且迭代次数较少,收敛速度很高。
2
参考文献
[1]汤华中,《数值方法:原理、算法和应用》讲义.
3