数值分析实验3
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
贵州师范大学数学与计算机科学学院学生实验报告
课程名称: 数值分析 班级: 信本班 实验日期: 2013 年 9 月 3日
学 号: 110703010038 姓名: 孙泽香 指导教师: 实验成绩:
一、实验名称
实验一:递推法的稳定性,秦九韶算法
二、实验目的及要求
1. 熟悉数值稳定的概念, 通过上机计算,了解舍入误差所引起的数值不稳定性.
2. 培养Matlab 编程与上机调试能力.
三、实验环境
每人一台计算机,要求安装Windows XP 操作系统,Microsoft office2003、MATLAB6.5(或7.0)。
四、实验内容
1.教材例1.13中,取16位数字计算,并分析、比较计算结果.
2.设100999832()101100994321f x x x x x x x =+++
++++,用秦九韶算法编程计
算()f x 在1,2,3,4x =上的值.
五、算法描述及实验步骤
1. 设
(1)从0I 尽可能精确的近似值出发,利用递推公式:
115(1,2,,14)n n I I n n -=-+=, 计算从1I 到14I 的近似值;
(2)从15I 较粗糙的估计值出发,用递推公式:
111(15,14,,3,2)55n n I I n n -=-+=
计算从1I 到14I 的近似 .
2. 秦九韶算法
给定n次多项式
Pn(x)=a(n)x^n+a(n-1)x^(n-1)+…+a(1)x+a(0).
要计算Pn(x)在x处的值。
今考虑n次多项式Pn(x),用V(k)表示第k层的值(从里面数起),依次计算 V(1)=a(n)x+a(n-1) V(2)=V(1)x+a(n-2) … V(n)=V(n-1)x+a(0).
显然V(n)=Pn(x).记a(n)=V(0),上述计算过程可写成:
V(0)=a(n)
V(k)=V(k-1)*x+a(n-k),(k=1,2,…,n).
六、调试过程及实验结果
1.12 算法一:
>> format long e
>> syms x;
>> fun=inline('1./(x+5)');
>> I(1)=quad(fun,0,1);
>> for n=1:14
I(n+1)=1/n-5*I(n);
end
>> I
I =
Columns 1 through 3
1.823215568047383e-001 8.839221597630853e-002
5.803892011845735e-002
Columns 4 through 6
4.313873274104657e-002 3.430633629476715e-002
2.846831852616427e-002
Columns 7 through 9
2.432507403584530e-002 2.123177267791634e-002
1.884113661041828e-002
Columns 10 through 12
1.690542805901971e-002 1.547285970490148e-002
1.354479238458353e-002
Columns 13 through 15
1.560937141041567e-002 -1.123780129001425e-003
7.704747207357855e-002
算法二:
>> format long e
>> syms x;
>> fun=inline('x.^14./(x+5)');
>> I(15)=quad(fun,0,1);
>> for n=14:-1:1
I(n)=1/(5*n)-I(n+1)/5;
end
>> I
I =
Columns 1 through 3
1.823215567939547e-001 8.839221603022675e-002
5.803891984886631e-002
Columns 4 through 6
4.313873408900180e-002 3.430632955499104e-002
2.846835222504479e-002
Columns 7 through 9
2.432490554144271e-002 2.123261514992931e-002
1.883692425035346e-002
Columns 10 through 12
1.692648985934385e-002 1.536755*********e-002
1.407133739268709e-002
Columns 13 through 15
1.297664636989789e-002 1.203984507358747e-002
1.122934606063409e-002
1.13 设f(x)=101x^100+100x^99+…+3x^2+2x+1,用秦九韶算法编程计算f(x)在x=1,2,3,4上的值。
>> syms x;
>> a=101:-1:1;
>> x=[1,2,3,4];
>> V=a(1);
>> for k=1:100
V=V.*x+a(k+1);
end
>> V
V =
Columns 1 through 3