数值分析课程实验报告
时间:2021-10-13 来源:博通范文网 本文已影响 人
《数值分析》课程实验报告
实验名称 用二分法和迭代法求方程的根
成绩
一、实验目的
掌握利用二分法以及迭代法求方程近似根的方法,并学会运用 matlab 软件编写程序,求解出方程的根,对迭代法二分法进一步认识并灵活运用。
二、实验内容
比较求方程 5 0xx e 的根,要求精确到小数点后的第 4 位 1.在区间[0,1]内用二分法; 2.用迭代法1/5kxkx e ,取初值00.25 x .三、算法描述
1、二分法:二分法是最简单的求根方法,它是利用连续函数的零点定理,将汗根区间逐次减半缩小,取区间的中点构造收敛点列{ }来逼近根 x.2、迭代法:迭代法是一种逐次逼近的方法,其步骤是首先给定一个粗糙的初始值,然后用一个迭代公式反复修正这个值,知道满足要求为止。
四、实验步骤
1 1 、二分法:
(1)计算 f(x)在区间[0,1]端点处的值 f(0)和 f(1)的值;
(2)计算 f(x)在区间【0,1】的中点(0+1)/2=1/2 处的值 f((a+b)/2);
(3)如果函数值 f(1/2)=0,则 1/2 是 f(x)=0 的实根,输出根 x,终止;否则继续转(4)继续做检验。由于 f(1/2)≠0,所以继续做检验。
(4)如果函数值 f(0)* f(1/2)<0,则根在区间[0,1/2]内,这时以 1/2 代表 1;否则以 1/2 代表 0; ,此时应该用 1/2 代表 1.(5)重复执行(2)(3)(4)步,直到满足题目所要求的精度,算法结束。
2 2 、迭代法
(1)提供迭代初值25 .00 x; (2)计算迭代值) (0 1x x ;
(3)检查|0 1x x |,若 | |0 1x x,则以1x代替0x转(2)步继续迭代;当 | |0 1x x时
终止计算,取作为所求结果。
五、程序
(1)二分法程序:
function y=bisection(fx,xa,xb,n,delta)
x=xa;fa=5*x-exp(x);
x=xb;fb=5*x-exp(x);
disp("[
n
xa
xb
xc
fc
]");
for i=1:n
xc=(xa+xb)/2;x=xc;fc=5*x-exp(x);
X=[i,xa,xb,xc,fc];
disp(X),
if fc==0,end
if fc*fa<0
xb=xc;
else xa=xc;
end
if (xb-xa) end (2)迭代法程序: function y=diedai(fx,x0,n,delta) disp("[ k xk ]"); for i=1:n x1=(exp(x0))/5; X=[i,x1]; disp(X); if abs(x1-x0) fprintf("The procedure was successful") return else i=i+1; x0=x1; end end 六、实验结果及分析 (1)二分法: 实验结果如下: [ n xa xb xc fc ] 1.0000 0 1.0000 0.5000 0.8513 2.0000 0 0.5000 0.2500 - - 0.0340 3.0000 0.2500 0.5000 0.3750 0.4200 4.0000 0.2500 0.3750 0 .3125 0.1957 5.0000 0.2500 0.3125 0.2813 0.0815 6.0000 0.2500 0.2813 0.2656 0.0239 7.0000 0.2500 0.2656 0.2578 - - 0.0050 8.0000 0.2578 0.2656 0.2617 0.0094 9.0000 0.2578 0.2617 0.2598 0.0022 10.0000 0.2578 0.2598 0.2588 - - 0.0014 11.0000 0.2588 0.2598 0.2593 0.0004 12.0000 0.2588 0.2593 0.2590 - - 0.0005 13.0000 0.2590 0.2593 0.2592 - - 0.0001 14.0000 0.2592 0.2 593 0.2592 0.0002 15.0000 0.2592 0.2592 0.2592 0.0001 依据题目要求的精度,则需做二分十四次,由实验数据知 x=0.2592 即为所求的根 (2)迭代法: 实验结果如下: 根据题目精度要求,故所求根为 x=0.2592. 对二分法和迭代法的观察和分析我们可以知道,二分法的优点是方法比较简单,编程比较容易, 只是二分法只能用于求方程的近似根,不能用于求方程的复根,且收敛速度慢。而迭代法的收敛速度明显大于二分法的速度。 九十分! 学号: 姓名: 实验二插值法 实验2.1(多项式插值的振荡现象) 问题提出:考虑一个固定的区间上用插值逼近一个函数。显然拉格朗日插值中使用的节点越多,插值多项式的次数就越高。 我们自然关心插值多项式的次数增加时,L(x)是否也更加靠近被逼近的函数。龙格给出了一个极著名例子。设区间[-1,1]上函数 f(x)=1/(1+25x^2) 实验内容:考虑区间[-1,1]的一个等距划分,分点为: x(i)=-1+2i/n,i=0,1,2…,n 则拉格朗日插值多项式为: L(x)=∑l(i)(x)/(1+25x(j)^2 ) i=0,1,…n 其中l(i)(x), i=0,1,…n,n是n次拉格朗日插值基函数。 实验要求: ⑴ 选择不断增大的分点数目n=2,3…,画出f(x)及插值多项式函数L(x)在[-1,1]上的图象,比较分析实验结果。 (2)选择其它的函数,例如定义在区间[-5,5]上的函数 h(x)=x/(1+x^4) ,g(x)=arctanx 重复上述的实验看其结果如何。 (3)区间[a,b]上切比雪夫点的定义为: xk=(b+a)/2+((b-a)/2)cos((2k-1)π/(2(n+1))),k=1,2,^,n+1 以x1,x2^x(n+1)为插值节点构造上述各函数的拉格朗日插值多项式,比较其结果。 实验过程: 程序:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 数值实验结果及分析:。。。。。。。。。。。。。。。。。。。。。。。。。。。 讨论。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 实验总结:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 好文章经得起推敲。