实验一用递推公式计算定积分
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 用递推公式计算定积分
09信息 符文飞 07
1、实验目的:
由于一个算法是否稳定,十分重要。如果算法不稳定,则数值计算的结果就会严重背离数学模型的真实结果,因此,在选择数值计算公式来进行近似计算时,我们应特别注意选用那些在数值计算过程中不会导致误差迅速增长的公式。体会稳定性在选择算法中的地位.误差扩张的算法是不稳定的,是我们所不期望的;误差衰竭的算法是稳定的.是我们努力寻求的,这是贯穿本课程的目标.通过上机计算,了解舍入误差所引起的数值不稳定性。
2、实验题目:
对n =0,1,2,…,20,计算定积分dx x x y n n ⎰+=10
5
3、实验原理
由于y(n)= = –
在计算时有两种迭代方法,如下:
方法一: y(n)= – 5*y(n-1),n=1,2,3, (20)
取y(0)= = ln6-ln5 ≈ 0.182322
方法二:
利用递推公式:y(n-1)=-*y(n),n=20,19, (1)
而且,由 = * ≤≤* =
可取:y(20)≈*()≈0.008730.
4、实验内容:
算法1的程序:
y0=log(6.0)-log(5.0);
y1=0;
n=1;
while n<=30
y1=1/n-5*y0;
fprintf('y[%d]=%-20f',n,y1);
y0=y1;
n=n+1;
if mod(n,1)==0;
fprintf('\n')
end
end
算法2的程序:
y0=(1/105+1/126)/2;
y1=0;
n=1;
while n<=30
y1=1/(5*n)-y0/5;
fprintf('y[%d]=%-20f',n,y1)
y0=y1;
n=n+1;
if mod(n,1)==0
fprintf('\n')
end
end
5、实验结果
对于算法1:
y[1]=0.088392
y[2]=0.058039
y[3]=0.043139
y[4]=0.034306
y[5]=0.028468
y[6]=0.024325
y[7]=0.021233
y[8]=0.018837
y[9]=0.016926