误差传播与算法稳定性实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数值分析》实验分析报告
姓名:
学号: S********
日期: 2016.10.15
班级: 1602
一、实验名称
误差传播与算法稳定性 二、实验目的
体会稳定性在选择算法中的地位。误差扩张的算法是不稳定的,是我们所不期望的;误差衰竭的算法是稳定的,是我们努力寻求的,这是贯穿本课程的目标。 三、实验内容
计算 1,2,n ,11
0==-⎰dx e x E x n n
四、算法描述
1,2,n ,11
0==-⎰dx e x E x n n
利用分部积分可得:
,3,2,1111111
1101
101010=-=-=⎪⎪⎭
⎫ ⎝⎛-===---⎰⎰⎰⎰n nE dx x e e n dx x e n e x e de x e dx e x e E n n x n x x n x n x n n 可得递推公式为:
1、 2,3,,1n ,)1(11=+-=+n n E n E
2、,3,22,-N 1,-N n ,1
11
=+-=
+n E E n n 下面分别以1,2递推关系求解 方案一:
2,3,,1n ,)1(11=+-=+n n E n E
当1=n 时 0.367879 1
111
001≈=-==⎰e
dx x e e E x (保留六位有效数字)
⎩⎨
⎧=-=-0.367879111
E nE E n n ,3,2=n 方案二;
,3,22,-N 1,-N n ,1
11
=+-=
+n E E n n
当)1,0(∈x 时,n x n n
x e x e
x <<1-,
1n 1
)1(1101
0101++⇒∴⎰⎰⎰-<
<<<n n x n n E n e dx x dx e x dx e x 当∞→n 时,0→n E 这里取20=n
0.0325685 421]211211[2120≈+=+≈⇒e
e e E (保留六位有效数字)
⎪⎩⎪⎨⎧
≈-=
-0.0325685
1201E n
E E n n ,3,2,19,20n = 五、程序流程图
由于实验方案明显、简单,实现步骤及流程图省略。 六、实验结果 计算结果如表1-1:
1-1 计算结果表
n
n E
*
n E
1 0.367879 0.367879
2 0.264241 0.264241
3 0.207277 0.207277
4 0.170893 0.170893
5 0.145533 0.145533
6 0.126802 0.126802
7 0.112384 0.112384
8 0.100932 0.100932
9 0.0916120 0.0916123 10 0.0838770 0.0838771 11 0.0773520 0.0773522 12
0.0717750
0.0717733
13 0.0669280 0.0669477 14 0.0630020 0.0627322 15 0.0549687 0.0590175 16 0.120500 0.0557192 17 -1.048507 0.052773 18 19.873122 0.0500857 19 -376.589316 0.0483716 20
7532.79
0.0325685
七、实验结果分析
1、通过表1-1可以看出,算法一在前15项中迭代值基本保持一致,但是从16项开始就有了较大的差别。
同时:
0)(0)(≥⇒≥⎰dx x f x f
又当)1,0(∈x 时,01
≥⎰dx e x x n 恒成立。
但是算法一中当n=17、19时明显不满足。
∴算法二相比较于算法一在目前的迭代次数下比较精确。
2、设算法一中1E 的计算误差为e 1,由1E 递推计算到n E 的误差为e n ;算法二中N E 的计算误差为N ε,由N E 向前递推计算到n E (N n <)的误差为n ε。
设算法一中的精确值为n E α,计算值为n E ;算法二中的精确值为β
*n E ,计算值为*
n E
根据题设可得: 算法一:
1112222)21(21e E E E E e -=---=-=∂
α
递推可得:
2,1≥-=-n ne e n n
()11
!1e n e n n --=∴
同理可得:n N N
N n ≥-
=,1
εε N n
N n N n εε!
!)1(--=∴ 3、根据算法一的公式可得:
当∞→n 时,∞→n e ,由此可见最后的结果误差不仅仅取决于初始值的误差,还会随着递推公式的不断运行,误差在不断的增大。
当∞→N 时,0→n ε,由此可见最后的结果误差不仅仅取决于初始值的误差,还会随着递推公式的不断运行,误差在不断的减小。
4、通过前三问,可以发现算法二比算法一更加稳定。 八、附录(程序) 算法一:
function ek= jifeng(e0,n ) e(1)=vpa(e0,6); B=zeros(n,2); B(:,1)=1:n; for i=1:n
e(i+1)=1-(i+1)*e(i) ; ek=e(i+1);
B(i,2)=vpa(ek,6); end
xlswrite('算法一',B,'sheet1') 算法二:
function [i,ek] = jifeng1( e0,n ) e(n+1)=e0; B=zeros(n,2); B(:,1)=1:n; for i=n:-1:1
e(i)=(1-e(i+1))/(i+1);