- 1、本文档共43页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《数值分析》实验书.doc
数值分析实验指导书目 录
实验目的 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、整理实验报告。
三、实验报告
实验报告是记录实验工作全过程的技术文档,实验报告的撰写是科学技术工作的一个组成部分。《数值分析》实验报告包括下列要求:
实验原理;
实验内容和要求;
数值算法描述,包括数据输入、数据处理和数据输出;
4、算法的实现
给出具体的计算实例,
经调试正确的源程序清单,
对具体的数值例子给出数值结果;
5、计算结果的误差分析,算法的收敛性与稳定性的讨论;
6、实验心得。
实验一、误差分析
误差问题是数值分析的基础,又是数值分析中一个困难的课题。在实际计算中,如果选用了不同的算法,由于舍入误差的影响,将会得到截然不同的结果。因此,选取算法时注重分析舍入误差的影响,在实际计算中是十分重要的。同时,由于在数值求解过程中用有限的过程代替无限的过程会产生截断误差,因此算法的好坏会影响到数值结果的精度。
一、实验目的
通过上机编程,复习巩固以前所学程序设计语言及上机操作指令;
通过上机计算,了解误差、绝对误差、误差界、相对误差界的有关概念;
通过上机计算,了解舍入误差所引起的数值不稳定性。
二、算法实例
例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); (2).
解: (1) 首先将方程组化为同解方程,然后在MATLAB工作窗口输入程序
b=[2,2];A=[1,1;1,1.01]; X=A\b
运行
文档评论(0)