《数值分析》实验书

发布 2023-09-12 16:36:00 阅读 9442

2014-12-01

目录。实验目的 1

实验基本要求 2

实验。一、误差分析 3

一、实验目的 3

二、算法实例 3

三、实验任务 10

实验。二、插值法 12

一、实验目的 12

二、算法实例 12

三、实验任务 19

四、思考题 20

实验。三、解线性方程组的直接法 22

一、实验目的 22

二、算法实例 22

三、实验任务 25

四、思考题 25

实验。四、解线性方程组的迭代法 26

一、实验目的 26

二、算法实例 26

三、实验任务 30

四、思考题 30

实验。五、常微分方程初值问题的数值解法 32

一、实验目的 32

二、算法实例 32

三、实验任务 42

四、思考题 42

作为实践性非常强的课程,安排上机实验的目的,不仅是为了验证教材和授课内容,更重要的是,要通过实验深入理解方法的设计原理与处理问题的技巧,培养自行处理常规数值计算问题的能力和综合运用知识分析、解决问题的能力。

1、通过上机实验加深课堂内容的理解。

数值分析的主要任务就是研究适合于在计算机上使用的数值计算方法及与此相关的理论。通过编程上机,就可以加深对方法运行过程的理解,同时在编程中领会和理解数值计算方法的计算要领和步骤,体会问题的条件和限制范围,理解一般问题和特殊问题的区别。

2、学会对数值计算结果的分析和处理。

数值分析实验不只是编写程序得到一个数值结果,我们应在掌握数值计算计算方法的基本原理和思想的同时,注意方法处理的技巧及其与计算机的密切结合,重视误差分析、收敛性及稳定性的讨论。此外,还要注意算法能否在计算机上实现,应避免因数值方法选用不当、程序设计不合理而导致超过计算机的存储能力,或导致计算结果精度不高等。

3、要能灵活掌握各种数值计算方法。

由于针对同一个问题可以选用不同的数值计算方法,我们要注意各种方法的使用条件。通过上机,比较各种方法间的异同及优缺点,以便更好的使用不同的方法来解决实际问题,使计算机成为我们最好的工具。

一、上机前的准备工作。

1、复习和掌握与本次实验有关的教学内容。

2、根据本次实验要求,在纸上编写算法及上机的程序,并经过人工模拟运行检验,减少不必要的错误,提高上机效率。切忌不编程序、不作人工检查就进行程序输入,这只能使上机调试的难度增加,甚至可能带来学习自信心的下降,影响后续课程的学习。

二、上机实验步骤。

1、启动开发环境;

2、建立源程序文件,输入源程序;

3、编译产生目标程序,连接生成可执行程序,运行程序,输出结果;

4、对数值计算结果进行误差分析,讨论数值算法的收敛性与稳定性;

5、整理实验报告。

三、实验报告。

实验报告是记录实验工作全过程的技术文档,实验报告的撰写是科学技术工作的一个组成部分。《数值分析》实验报告包括下列要求:

1、 实验原理;

2、 实验内容和要求;

3、 数值算法描述,包括数据输入、数据处理和数据输出;

4、算法的实现。

1) 给出具体的计算实例,2) 经调试正确的源程序清单,3) 对具体的数值例子给出数值结果;

5、计算结果的误差分析,算法的收敛性与稳定性的讨论;

6、实验心得。

实验项目。误差问题是数值分析的基础,又是数值分析中一个困难的课题。在实际计算中,如果选用了不同的算法,由于舍入误差的影响,将会得到截然不同的结果。

因此,选取算法时注重分析舍入误差的影响,在实际计算中是十分重要的。同时,由于在数值求解过程中用有限的过程代替无限的过程会产生截断误差,因此算法的好坏会影响到数值结果的精度。

1、 通过上机编程,复习巩固以前所学程序设计语言及上机操作指令;

2、 通过上机计算,了解误差、绝对误差、误差界、相对误差界的有关概念;

3、 通过上机计算,了解舍入误差所引起的数值不稳定性。

例1.1 用差商求在处导数的近似值。取,, 0.

000 000 000 000 001和=0.000 000 000 000 000 1分别用matlab软件计算,取十五位数字计算。

解: 在matlab工作窗口输入下面程序。

>a=3;h=0.1;y=log(a+h)-log(a);yx=y/h

运行后得。yx = 0.32789822822991.

将此程序中改为0.000 1,运行后得。

yx = 0.33332777790385.

后者比前者好。再取h = 0.000 000 000 000 001,运行后得。

yx = 0.44408920985006,不如前者好。取h = 0.000 000 000 000 000 1,运行后得。

yx = 0,算出的结果反而毫无价值。

例1.2 分别求方程组在下列情况时的解,其中。

解: (1) 首先将方程组化为同解方程,然后在matlab工作窗口输入程序。

> b=[2,2]';a=[1,1;1,1.01]; x=a\b

运行后输出当时,的解为;

2)同理可得,当时,的解为。

例1.3 计算的近似值。

解:泰勒级数。

e,取,得。

这是一个无限过程,计算机无法求到精确值。只能在(1.1)取有限项时计算,再估计误差。如果取有限项。

作为的值必然会有误差,根据泰勒余项定理可知其截断误差为。

e.如果取(1.1)的前九项,输入程序。

> n=8;

s=1;s =1;

fork=1:n

s=s*k;

s=s+1/s,end

s, s,r=3/(s*(n+1))

或。>s1=1+1+1/2+1/(1*2*3)+1/(1*2*3*4)+1/(1*2*3*4*5)+1/(1*2*3*4*5*6)+1/(1*2*3*4*5*6*7)+1/(1*2*3*4*5*6*7*8),r1=3/(1*2*3*4*5*6*7*8*9)

运行后结果。

s =8.267195767195768e-006 r =2.71827876984127

因为截断误差为。

所以e的近似值e2.718 28.

例1.4 取作为的四舍五入近似值时,求其绝对误差和相对误差。

解:在matlab工作窗口输入程序。

>juewu=exp(1)-2.71828

运行后输出结果为。

juewu = 1.828 459 045 505 326e-006

例1.5 计算d 的近似值,并确定其绝对误差和相对误差。

解因为被积函数的原函数不是初等函数,故用泰勒级数求之。, 1.5)

这是一个无限过程,计算机无法求到精确值。可用(1.5)的前四项代替被积函数,得。

d)d==.

根据泰勒余项定理和交错级数收敛性的判别定理,得到绝对误差。

wu,在matlab命令窗口输入计算程序如下:

syms x

f=1-x^2/(1*2*3)+x^4/(1*2*3*4*5)-x^6/(1*2*3*4*5*6*7)

y=int(f,x,0,pi/2),y1=double(y)

y11=pi/2-(pi/2)^3/(3*3*2)+(pi/2)^5/(5*5*4*3*2)-(pi/2)^7/(7*7*6*5*4*3*2)

inf=int(sin(x)/x,x,0,pi/2) ,infd=double(inf)

wu =(pi/2)^9/(9*9*8*7*6*5*4*3*2), r =infd-y11

因为运行后输出结果为: 1.370 762 168 154 49, =1.

370 744 664 189 38, 1.750 396 510 491 47e-005, wu= 1.782 679 830 970 664e-005.

所以,的绝对误差为,故d。的相对误差为。

例1.6 设计三种算法求方程在的一个正根的近似值,并研究每种算法的误差传播情况。

解:为解已知方程,我们可以设计如下三种算法,然后将计算结果与此方程的精确解比较,观察误差的传播。

算法1 将已知方程化为同解方程。取初值,按迭代公式

依次计算,结果列入表1–3中。

算法2 将已知方程化为同解方程。取初值,按迭代公式

依次计算,结果列入表1–1中。

算法3 将已知方程化为同解方程。取初值,按迭代公式为。

依次计算,结果列入表1–1中。

我们为这三种算法的计算编写两套matlab程序如下:

1)matlab主程序。

《数值分析》实验书

数值分析实验指导书。目录。实验目的 1 实验基本要求 2 实验。一 误差分析 3 一 实验目的 3 二 算法实例 3 三 实验任务 10 实验。二 插值法 12 一 实验目的 12 二 算法实例 12 三 实验任务 19 四 思考题 20 实验。三 解线性方程组的直接法 22 一 实验目的 22 二...

数值分析实验

数值分析实验 2014,9,16 10,28 信计1201班,人数34人。数学系机房。数值分析。计算实习报告册。专业。学号。姓名。2014 2015年第一学期。实验一数值计算的工具 matlab 1.解释下matlab程序的输出结果。程序 t 0.1 n 1 10 e n 10 n t e的结果 0...

数值分析上机实验报告 插值

数值分析第一次上机练习实验报告。lagrange插值与三次样条插值。一 问题的描述。设,取,试求出10次lagrange插值多项式和三次样条插值函数 采用自然边界条件 并用图画出,二 方法描述 lagrange插值与三次样条插值。我们取,通过在点的函数值来对原函数进行插值,我们记插值函数为,要求它满...