数值分析实验五
组号班级学号姓名
非线性方程的求根
分数
一:实验目的
1、掌握用MATLAB软件求解非线性方程的基本用法。2、熟练运用不动点迭代法和牛顿法求解非线性方程的根。
二:实验内容及基本知识介绍
不动点迭代法基本思路:首先给定一个粗糙的初始值,然而用一个迭代公式,反复校对这个初值,将已有近似值逐步精确化,一直到满足精度为止。
具体的,把方程fx0改写成x的表达式xx⑴,若xx称x为
x的一个不动点,求fx的零点等价于求x的不动点。在ab上任取一点x0代
入x求得x1x0,又将x1代入x求得x2x1,如此反复下去,一般地得
xk1xkk012L⑵。x称为迭代函数,xx为迭代公式。
牛顿法基本思想:将非线性方程fx0逐步转化为某种线性方程来求解。设fx0的一个近似根
x0,则函数fx在点x0附近可以用一阶泰勒公式fx≈fx0f′x0xx00来
近似。若f′x0≠0,解得xx0
fx0,将此根为原方程的近似根x1,然后按上式迭f′x0fxkk012L称为牛顿法。f′xk
代计算,使形成一种新的迭代公式xk1xk
三:实验问题及方法、步骤
1用MATLAB函数求解方程fxx33x10在x02附近的根。首先建立如下的函数文件,Fu
ctio
yfxyxxx3x1然后在命令窗口中键入:然后在命令窗口中键入:fzerof2
1
f得到:
a
s
187942用不动点迭代法求fxx34x210在115上的一个根。首先构造并定义M函数fu
ctio
fgxf1sqrt25xxx4编写MATLAB程序如下fu
ctio
y
BDDxepsif
argi
1eps106eelseif
argi
1errorretur
e
dx1gx
1while
ormx1x1e6
1000xx1x1gx
1e
dyx
运行得到结果如下:
BDD1
2
f21
a
s
136523用牛顿法求方程x3x10在x02附近的根。首先编写MATLAB程序如下:fu
ctio
y
ewto
21e4x02i1whileabsx0x11e4xi1xixixixixi13xixi1bxi1xiii1
ifi
error‘
isfull’e
de
d输出牛顿的数值解输出牛顿的数值解
xi1xi计算结果如下:
3
a
s
18794
x4用牛顿法计算方程fxsi
x0的一个近似根,准确到105,初始值2
3
2
f。2首先构造并定义M函数fu
ctio
f(x)2si
x()编写MATLAB程序如下fu
ctio
()Newto
(xsi
xx22x2si
xx2cosx051e5)if
argi
5
500e
dif
argi
4e1e5e
dxx0x0pi2k0fpri
t‘xd129f
’kxr