《数值计算方法实验指导Matlab版》由会员分享,可在线阅读,更多相关《数值计算方法实验指导Matlab版(57页珍藏版)》请在金锄头文库上搜索。
1、数值计算措施实验指引(Matlab版)肇庆学院 数学与记录学学院计算措施课程组数值计算措施实验1报告班级:20xx级XXXXx班学号:20xx2409xxxx姓名:XXX成绩:1. 实验名称 实验1 算法设计原则验证(之相近数相减、大数吃小数和简化计算环节)2. 实验题目 (1) 取,计算和,验证两个相近的数相减会导致有效数字的损失 (2) 按不同顺序求一种较大的数(123)与1000个较小的数()的和,验证大数吃小数的现象 (3) 分别用直接法和秦九韶算法计算多项式在x=1.00037处的值验证简化计算环节能减少运算时间对于第(3)题中的多项式P(x),直接逐项计算需要次乘法和n次加法,使用
2、秦九韶算法则只需要n次乘法和n次加法3. 实验目的 验证数值算法需遵循的若干规则4. 基本理论 设计数值算法时,应避免两个相近的数相减、避免大数吃小数、简化计算环节减少运算次数以减少运算时间并减少舍入误差的积累两相近的数相减会损失有效数字的个数,用一种大数依次加小数,小数会被大数吃掉,乘法运算次数太多会增长运算时间5. 实验环境 操作系统:Windows xp; 程序设计语言:Matlab 6. 实验过程 (1) 直接计算并比较; (2) 法1:大数逐个加1000个小数,法2:先把1000个小数相加再与大数加;(3) 将由高次项到低次项的系数保存到数组An中,其中n为多项式次数7. 成果与分析
3、 (1) 计算的= , 分析: (2) 123逐次加1000个的和是 ,先将1000个相加,再用这个和与123相加得 分析: (3) 计算 次的多项式:直接计算的成果是 ,用时 ;用秦九韶算法计算的成果是 ,用时 分析:8. 附录:程序清单 (1) 两个相近的数相减%*%* 程 序 名:ex1_1.m *%* 程序功能:验证两个相近的数相减会损失有效数字个数 *%*% x = ;% y = ;z=1e16; x,y=(2) 大数吃小数%*%* 程 序 名:ex1_2.m *%* 程序功能:验证大数吃小数的现象. *%*clc; % 清屏clear all; % 释放所有内存变量format l
4、ong; % 按双精度显示浮点数z=123; % 大数t=3e-15; % 小数x=z; % 大数依次加小数 % 反复1000次给x中加上t y=0; % 先累加小数 % 反复1000次给y中加上t 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
5、,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次幂 % 累加多项式的i次项endtime=clock; % 结束执行的时间time1=etime(endtime,begintime); % 运营时间disp(直接计算);disp(p(,num2str(x),)=,num2str(p);disp( 运营时间: ,num2str(time1),秒);% 秦
6、九韶算法计算begintime=clock; % 开始执行的时间 % 累加秦九韶算法中的一项endtime=clock; % 结束执行的时间time2=etime(endtime,begintime); % 运营时间disp( );disp(秦九韶算法计算);disp(p(,num2str(x),)=,num2str(p);disp( 运营时间: ,num2str(time2),秒);数值计算措施实验1报告班级:20xx级XXXXx班学号:20xx2409xxxx姓名:XXX成绩:1. 实验名称 实验1 算法设计原则验证(之数值稳定性)2. 实验题目 计算定积分,分别用教材例1-7推导出的算法
7、A和B,其中: 算法A: 算法B:验证算法不稳定期误差会扩大3. 实验目的 验证数值算法需遵循的若干规则4. 基本理论 设计数值算法时,应采用数值稳定性好的算法数值稳定的算法,误差不会放大,甚至会缩小;而数值不稳定的算法会放大误差5. 实验环境 操作系统:Windows xp; 程序设计语言:Matlab 6. 实验过程分别用数组IA 和IB 保存两种算法计算的成果7. 成果与分析 运营成果:(或拷屏)n算法A算法B精确值012345678910分析:8. 附录:程序清单%*%* 程 序 名:ex1_4.m *%* 程序功能:验证数值稳定性算法可控制误差. *%*clc; % 清屏clear
8、all; % 释放所有内存变量format long; % 按双精度显示浮点数I=0.56, 0.44, 0.12, 0.65, .0.538, 0.308, 0.54, 0.38, .0.92, 0.092, 0.43; % 保存14位小数的精确值, 是Matlab中的续行符% 算法AIA(1) = 0.6321; % Matlab下标从1开始,因此要用IA(n+1)表达原问题中的I(n)% 算法Bdisp(n 算法A 算法B 精确值);for n=1:11 fprintf(%2d %14.6f %14.6f %14.6fn,n-1,IA(n),IB(n),I(n);end % n显示为2位整数, 其他显示为14位其中小数点后显示6位的小数数值计算措施实验1报告班级:20xx级XXXXx班学号:20xx2409xxxx姓名:XXX成绩:1. 实验名称 实验1 算法设计原则(除数绝对值不能太小)2. 实验题目将线性方程组增广矩阵运用初等行变换可化为由此可解得分别解增广矩阵为和的方程组,验证除数绝对值远不不小于被除数绝对值的除法会导致成果失真3. 实验目的 验证数值算法需遵循的若干规则4. 基本理论 设计数值算法时,应避免除数绝对值远不不小于被除数绝对值的除法