《数值分析》实验报告
班级信科1501学院
课程名称
学号150803114数学科学学院
数值分析
姓名梁恩昊日期2017103
专业
信息与计算科学
成绩
实验一
方程求根
一、实验目的
掌握二分法、Newto
法、不动点迭代法、弦截法求方程的根的各种计算方法、并实施程序调试和运行,学习应用这些算法于实际问题。
二、实验内容
二分法、Newto
法、不动点迭代法、弦截法求方程的根、程序的调试和运行,给出实例的计算结果。观察初值对收敛性的影响。
三、实验步骤:
①、二分法:
定义:对于区间a,b上连续不断且f(a)f(b)0的函数yf(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫二分法。
实现方法:首先我们设一方程400x4300x3200x210x10,并求其在区间011上的根,误差限为e104。PS:本方法应用的软件为matlab。
disp二分法
a01b1
tol00001
0100
fa400a4300a3200a210a1
fori1
0pab2fp400p4300p3200p210p1
fiffp0absba2toldisp用二分法求得方程的根pdisppdisp二分迭代次数为:dispi
break
e
d
iffafp0apelsebp
e
d
e
d
ifi
0fp0absba2toldisp
0disp次二分迭代后没有求出方程的根
e
d
程序调试:
f运行结果:用二分法求得方程的根p
01108
二分迭代次数为:14
②Newto
法
定义:取定初值x0,找到函数对应的点,然后通过该点作函数切线,交x轴,得到新的横坐标值,然后找函数对应的点,做切线,得到新的横坐标值重复上述步骤,多次迭代,直到收敛到需要的精度。
实现方法:我们与二分法一样,先设一方程400x4300x3200x210x10,并求其在区间011上的根。
PS:本方法应用的软件为matlab。
symsx
diff400x4300x3200x210x1求导方程
函数文件:fu
ctio
Newto
fu
aNewto
400a4300a3200a210a1e
d
fu
ctio
Newto
2dfu
bNewto
21600b3900b2400b10fu
函数的导数e
d
主程序:
x01
while1
x1x0fu
x0dfu
x0
ifabsx1x01e8absfu
x11e10
break
fe
dx0x1e
ddisp用牛顿法求得的方程的根为:xdispx1程序调试:
运行结果:用牛顿法求得的方程的根为:
x01108③、不动点迭代法:采用不动点迭代法计算非线性方程x34x2100,在区间12上的一个根。
PS:本方法应用的软件为matlab。
不动点迭代法程序:函数文件:fu
ctio
y
BDDxepsif
argi
1eps10e6elseif
argi
1errorretur
fe
dx1ggx
1while
ormx1x1e6
10000xx1x1ggx
1e
dyx
M函数:r