数值分析实验五
组号班级学号姓名
非线性方程求根
分数
一、实验目的
1、掌握用MATLAB软件求解非线性方程和方程组的基本用法,并对结果做出初步的分析。2、学会用二分法、牛顿法求非线性方程的根。
二、实验内容及基本知识介绍
1、二分法、假设fx∈Cab,由连续函数的性质知,如果区间ab内存在相异的两点x1x2对在此我们假设fafb0称应的函数值异号。则方程fx0在x1x2内至少有一个根。
ab为有根区间。
y
yfx
a1
b1
x
O
a
x0
b
x
为了找到ab内的根α,令ax1bx2,则可以按下面的二分法计算第一步:取中间中点c
ab并计算fc2
第二步:如果fc≈0或ca≈0则认为ac,算法终止;如果fc比较大,fc则或大于零或小于零,因而必与fa或fb异号,就是说要么区间ac中存在方程的根,要么区间cb中存在方程的根,如果ac中存在方程的根,即fafc0令bc。返回
1
f第一步。如果cb中存在方程的根,即fbfc0,令ac,也返回第一步。按二分法求根,只会出现两种情况:一种情况是在某一步fc≈0成立;一种情况是不断更新的区间ab的长度h逐次减半,直到趋于零,这时,因为α∈ab,所以我们就可以认为αc,因此,二分法必有限步终止。2、牛顿法、计算公式为
xk1xkfxkf′xk
定理
k012…
设所要求解的方程为fx0,且此方程有根x。如果fx≠0,而且f′′x在x
得某个邻域上连续,则牛顿法是局部收敛的并且至少是二阶收敛的。设fx其单根x附近有连续的二阶导数,将fx在xxk1处泰勒展开得
从而
f′′ξxxk122f′′ξfxfxk1f′xk1xxk1xxk122fxfxk1f′xxk1
当xk1充分靠近x时,得
fx≈fxk1f′xk1xxk1
这样fx0导出
x≈xk1
由此结果我们预期xk1
fxk1f′xk1
fxk1因此xk1精度更高的近似值。这样牛顿迭代法f′xk1fxk1f′xk1
()
xkxk1
y
L
x
2
x2
x1
x0
x
f从几何上理解,牛顿迭代法每次迭代是用切线代替曲线,所以又称切线法。牛顿迭代法的映射为gxx
fx显见xgx等价于fx0,故迭代式()定f′x
义合理,由于fx0而x是单根时,f′x≠0
gx1
f′xr