数值计算方法实验指导(Matlab版)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数值计算方法》实验指导

(Matlab 版)

肇庆学院数学与统计学学院

计算方法课程组

1. 实验名称

实验1 算法设计原则验证(之相近数相减、大数吃小数和简化计算步骤) 2.

实验题目

有效数字的损失.

123 )与1000个较小的数(3 10

15

)的和,验证

大数吃小数的现象.

(3)分别用直接法和秦九韶算法计算多项式

P(x) a 0x n a 1x n 1

在x =1.00037 处的值•验证简化计算步骤能减少运算时间.

n 1 对于第(3)题中的多项式P (x ),直接逐项计算需要n (n 1) 2 1

次乘法

和n 次加法,使用秦九韶算法

P(x) (((a °x ajx a 2)x

a .

则只需要n 次乘法和n 次加法.

3.

实验目的

验证数值算法需遵循的若干规则. 4.

基础理论

设计数值算法时,应避免两个相近的数相减、防止大数吃小数、简化计算步骤减少运算 次数以减少运算时间并降低舍入误差的积累.

两相近的数相减会损失有效数字的个数,

用一

《数值计算方法》实验 1报告

班级: 20xx 级 XXXXx 班

学号: 20xx2409xxxx

姓名: XXX 成绩:

⑴取 z 1016

,计算z 1 Z 和 1/(、z 1

Z),验证两个相近的数相减会造成

(2)按不同顺序求一个较大的数(

a

n 1

X a n

个大数依次加小数,小数会被大数吃掉,乘法运算次数太多会增加运算时间.

5.实验环境

操作系统:Win dows xp ;程序设计语言:Matlab

6.实验过程

(1)直接计算并比较;

(2)法1 :大数逐个加1000个小数,法2 :先把1000个小数相加再与大数加;

(3)将由高次项到低次项的系数保存到数组A[n]中,其中n为多项式次数.

7.结果与分析

(1)计算的~1V Z = _______________________________ ,1/( ~1 < z) ____________________ . 分析:

(2)123逐次加1000个3 10 6的和是_________________________ ,先将1000个3 10 6相

加,再用这个和与123相加得_______________________ .

分析:

(3)计算__________ 次的多项式:

直接计算的结果是___________________ ,用时___________________ ;

用秦九韶算法计算的结果是____________________ ,用时 ___________________

分析:

8.附录:程序清单

(1)两个相近的数相减.

°%*************************************************************

%* 程序名:ex1_1.m

°%*程序功能:验证两个相近的数相减会损失有效数字个数

Q%************************************************************* z=1e16;

x,y

(2)大数吃小数

Q%*************************************************************

%程序名:ex1_2.m

%

*程序功能:验证大数吃小数的现象• °%************************************************************* 0

clc; %清屏

clear all; %释放所有内存变量

format Io ng; %按双精度显示浮点数

z=123; %大数

t=3e-15; %小数

大数依次加小数

x=z; %

% 重复1000次给x中加上t

y=0; %先累加小数

% 重复1000次给y中加上t y=z + y; %再加到大数

x,y

(3)秦九韶算法 °%*************************************************************

%* 程序名:ex1_3.m

°%* 程序功能:验证秦九韶算法可节省运行时间

Q%*************************************************************

clc;

%清屏

clear all;

%释放所有内存变量

A=[8,4,-1,-3,6,5,3,2,1,3,2,-1,4,3,1,-2,4,6,8,9,50,-80,12,35,7,-6,42,5,6,23,74,65,55,80,78 ,77,98,56];

A(10001)=0;

%扩展到10001项,后面的都是分量 0

% A 为多项式系数,从高次项到低次项

x=1.00037;

n=9000;

% n 为多项式次数

%直接计算

begi ntime=clock;

format Io ng;

%按双精度显示浮点数

%开始执行的时间

相关文档
最新文档