- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《数值计算方法》
实验指导
(Matlab版)
肇庆学院 数学与统计学学院
计算方法课程组
《数值计算方法》实验1报告
班级: 20xx级XXXXx班 学号: 20xx2409xxxx 姓名: XXX 成绩:
1. 实验名称
实验1 算法设计原则验证(之相近数相减、大数吃小数和简化计算步骤)
2. 实验题目
(1) 取,计算和,验证两个相近的数相减会造成有效数字的损失.
(2) 按不同顺序求一个较大的数(123)与1000个较小的数()的和,验证大数吃小数的现象.
(3) 分别用直接法和秦九韶算法计算多项式
在x=1.00037处的值.验证简化计算步骤能减少运算时间.次乘法和n次加法,使用秦九韶算法
则只需要n次乘法和n次加法.3. 实验目的
验证数值算法需遵循的若干规则.
4. 基础理论
设计数值算法时,应避免两个相近的数相减、防止大数吃小数、简化计算步骤减少运算次数以减少运算时间并降低舍入误差的积累.两相近的数相减会损失有效数字的个数,用一个大数依次加小数,小数会被大数吃掉,乘法运算次数太多会增加运算时间.
5. 实验环境
操作系统:Windows xp; 程序设计语言:Matlab
6. 实验过程
(1) 直接计算并比较;
(2) 法1:大数逐个加1000个小数,法2:先把1000个小数相加再与大数加;
(3) 将由高次项到低次项的系数保存到数组A[n]中,其中n为多项式次数.
7. 结果与分析
(1) 计算的= , .
分析:
(2) 123逐次加1000个的和是 ,先将1000个相加,再用这个和与123相加得 .
分析:
(3) 计算 次的多项式:
直接计算的结果是 ,用时 ;
用秦九韶算法计算的结果是 ,用时 .
分析:
8. 附录:程序清单
(1) 两个相近的数相减.
%*************************************************************
%* 程 序 名:ex1_1.m *
%* 程序功能:验证两个相近的数相减会损失有效数字个数 *
%*************************************************************
z=1e16;
x,y
======================================================================
(2) 大数吃小数
%*************************************************************
%* 程 序 名:ex1_2.m *
%* 程序功能:验证大数吃小数的现象. *
%*************************************************************
clc; % 清屏
clear all; % 释放所有内存变量
format long; % 按双精度显示浮点数
z=123; % 大数
t=3e-15; % 小数
x=z; % 大数依次加小数
y=0; % 先累加小数
y=z + y; % 再加到大数
x,y
======================================================================
(3) 秦九韶算法
%*************************************************************
%* 程 序 名:ex1_3.m *
%* 程序功能:验证秦九韶算法可节省运行时间. *
%*****************************************
文档评论(0)