云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 数值计算方法实验指导(Matlab版)汇总

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

  • 62 次阅读
  • 3 次下载
  • 2025/5/29 5:43:04

《数值计算方法》

实验指导

(Matlab版)

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

计算方法课程组

1

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

班级: 20xx级XXXXx班 学号: 20xx2409xxxx 姓名: XXX 成绩:

1. 实验名称

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

(1) 取z?10,计算z?1?有效数字的损失.

(2) 按不同顺序求一个较大的数(123)与1000个较小的数(3?10数吃小数的现象.

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

?1516z和1/(z?1?z),验证两个相近的数相减会造成

)的和,验证大

P(x)?a0xn?a1xn?1???an?1x?an

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

对于第(3)题中的多项式P(x),直接逐项计算需要n?(n?1)???2?1?和n次加法,使用秦九韶算法

n?1次乘法2P(x)?(((a0x?a1)x?a2)x??an?1)x?an

则只需要n次乘法和n次加法. 3. 实验目的

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

设计数值算法时,应避免两个相近的数相减、防止大数吃小数、简化计算步骤减少运算次数以减少运算时间并降低舍入误差的积累.两相近的数相减会损失有效数字的个数,用一个大数依次加小数,小数会被大数吃掉,乘法运算次数太多会增加运算时间. 5. 实验环境

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

6. 实验过程

(1) 直接计算并比较;

(2) 法1:大数逐个加1000个小数,法2:先把1000个小数相加再与大数加; (3) 将由高次项到低次项的系数保存到数组A[n]中,其中n为多项式次数.

7. 结果与分析

(1) 计算的z?1?分析:

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

2

?6?6z= ,1/(z?1?z) .

再用这个和与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; % 大数依次加小数

3

% x = z?1?z; % y = 1/(z?1?z); % 重复1000次给x中加上t

y=0; % 先累加小数 y=z + y; % 再加到大数

x,y

======================================================================

(3) 秦九韶算法

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

clc; % 清屏

clear all; % 释放所有内存变量 format long; % 按双精度显示浮点数

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为多项式次数

% 直接计算

begintime=clock; % 开始执行的时间

% 求x的i次幂

% 重复1000次给y中加上t

endtime=clock; % 结束执行的时间 time1=etime(endtime,begintime); % 运行时间 disp('直接计算');

disp(['p(',num2str(x),')=',num2str(p)]);

disp([' 运行时间: ',num2str(time1),'秒']);

4

% 累加多项式的i次项

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

《数值计算方法》 实验指导 (Matlab版) 肇庆学院 数学与统计学学院 计算方法课程组 1 《数值计算方法》实验1报告 班级: 20xx级XXXXx班 学号: 20xx2409xxxx 姓名: XXX 成绩: 1. 实验名称 实验1 算法设计原则验证(之相近数相减、大数吃小数和简化计算步骤) 2. 实验题目 (1) 取z?10,计算z?1?有效数字的损失. (2) 按不同顺序求一个较大的数(123)与1000个较小的数(3?10数吃小数的现象. (3) 分别用直接法和秦九韶算法计算多项式 ?1516z和1/(z?1?

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com