当前位置:文档之家› 数值分析课程实验报告-二分法和牛顿迭代法

数值分析课程实验报告-二分法和牛顿迭代法

《数值分析》课程实验报告
用二分法和牛顿迭代法求方程的根
算法名称用二分法和牛顿迭代法求方程的根
学科专业机械工程
作者姓名xxxxxx
作者学号xxxBiblioteka xx作者班级xxxxxxxx
xx大学
二〇一五年十二月
《数值分析》课程实验报告
实验名称
用二分法和牛顿迭代法求方程的根
成绩
一、问题背景
在科学研究与工程计算中,常遇到方程(组)求根问题。若干个世纪以来,工程师和数学家花了大量时用于探索求解方程(组),研究各种各样的方程求解方法。对于方程f(x)=0,当f(x)为线性函数时,称f(x)=0为线性方程;当f(x)为非线性函数时,称式f(x)=0为非线性方程。对于线性方程(组)的求解,理论与数值求法的成果丰富;对于非线性方程的求解,由于f(x)的多样性,尚无一般的解析解法。当f(x)为非线性函数时,若f(x)=0无解析解,但如果对任意的精度要求,设计迭代方程,数值计算出方程的近似解,则可以认为求根的计算问题已经解决,至少能够满足实际要求。
fx=subs(ff,x,xk);
fa=subs(ff,x,a);
k=k+1;
iffx==0
y(k)=xk;
break;
elseiffa*fx<0
b=xk;
else
a=xk;
end
y(k)=xk;
end
plot(y,'.-');
gridon
(2)牛顿迭代法程序:
functionx=newton(xx,n)
对二分法和牛顿迭代法的观察和分析我们可以知道,二分法的优点是方法比较简单,编程比较容易,只是二分法只能用于求方程的近似根,不能用于求方程的复根,且收敛速度慢。而牛顿迭代法的收敛速度明显大于二分法的速度。
2、牛顿迭代法:牛顿迭代法是一种逐次逼近的方法,其步骤是首先给定一个粗糙的初始值,然后用一个迭代公式反复修正这个值,知道满足要求为止。
四、主要代码
(1)二分法程序代码:
functiony=erfen1(m,n,er)
symsxxk
a=m;b=n;k=0;
ff=x^3+x-1;
whileb-a>er
xk=(a+b)/2;
Columns 6 through 10
0.682327803828019 0.682327803828019 0.682327803828019 0.682327803828019 0.682327803828019
Column 11
0.682327803828019
根据题目精度要求,故所求根为x=0.6823278。
x=zeros(1,n+1);
x(1)=xx;
fori=1:n
x(i+1)=x(i)-(x(i)^3+x(i)-1)/(3*x(i)^2+1);
end
五、实验结果及分析
(1)二分法:
在命令窗口下执行:
实验结果如下:
可以得到迭代区间中点数列分布及图像,数值如下:
ans =
[ 0.5, 0.75, 0.625, 0.6875, 0.65625, 0.671875, 0.6796875, 0.68359375, 0.68164062, 0.68261719, 0.68212891, 0.68237305, 0.68225098, 0.68231201, 0.68234253, 0.68232727, 0.6823349]
依据题目要求的精度,则需做十七次,由实验数据知x=0.6823349即为所求的根。
(2)牛顿迭代法:
在命令窗口下执行:
>>format long
>>x=newton(1,10)
实验结果如下:
可以得到迭代列:
x =
Columns 1 through 5
1.000000000000000 0.750000000000000 0.686046511627907 0.682339582597314 0.682327803946513
二、数学模型
1.使用二分法求方程x^3+x-1=0在[0,1]内的近似根(误差<10^-5)。
2.使用牛顿迭代求方程x^3+x-1=0在[0,1]内的近似根,设置迭代格式为
三、算法描述
1、二分法:二分法是最简单的求根方法,它是利用连续函数的零点定理,将汗根区间逐次减半缩小,取区间的中点构造收敛点列{ }来逼近根x。
相关主题