MATLAB实现的用二分法,割线法,牛顿迭代法求解方程的根的实验报告
4.0000 2.0625 2.1250 0.0625 1.5957
5.0000 2.0625 2.0938 0.0313 0.8220
6.0000 2.0781 2.0938 0.0156 0.4049
7.0000 2.0781 2.0859 0.0078 0.2040
8.0000 2.0781 2.0820 0.0039 0.1016
9.0000 2.0801 2.0820 0.0020 0.0507
10.0000 2.0801 2.0811 0.0010 0.0254
11.0000 2.0801 2.0806 0.0005 0.0127
12.0000 2.0801 2.0803 0.0002 0.0063
13.0000 2.0801 2.0802 0.0001 0.0032
14.0000 2.0801 2.0801 0.0001 0.0016
elapsed time is 0.316426 seconds.
三、牛顿法计算实验
3.1 牛顿法算法思想和简要描述
我们有一个函数f,其零点由数值计算得出,设r是f的一个零点,x
是r的一个近似。若f的二阶导数存在并且连续,则有泰勒定理,得
0=f(r)=f(x+h)=f(x)+hf’(x)+o(h^2)
其中h=r-x。若h较小(即x在r附近),则有理由略去o(h^2)项并且
在余下方程中求h。即得到h=-f(x)/f’(x)。故x-f(x)/f’(x)是比x更好的一个近似。牛顿法从r的一个估计x0开始,得到更加准确的近似值xn。递推式定义为:
f(xn)xn+1=xn n3.2 MATLAB运行牛顿法程序
牛顿法求解f=x^3-9的根
参数设置:x0设置为函数f零点的近似。
n设置为牛顿法for语句迭代次数。
alpha设置为最后结果f(x)的精度。
delta设置为最后结果x的精度。
(若alpha,delta都符合设置的计算精度时,结束迭代并得
出计算结果,否则一直迭代到n次)
设置初始值:设置参数x0分别为为3;迭代次数n为50次;alpha和
delta都设置为0.001。
列出计算结果:
>> newton(f,50,3,0.001,0.001)
n x f(x) delta alpha
1.0000 2.3333 3.7037 0.6667 3.7037
2.0000 2.1066 0.3483 0.2268 0.3483
3.0000 2.0804 0.0043 0.0262 0.0043
Elapsed time is 0.166680 seconds.
四、割线法计算实验