数值计算方法实验指导(Matlab版)资料(共42页).doc
《数值计算方法实验指导(Matlab版)资料(共42页).doc》由会员分享,可在线阅读,更多相关《数值计算方法实验指导(Matlab版)资料(共42页).doc(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上数值计算方法实验指导(Matlab版)肇庆学院 数学与统计学学院计算方法课程组数值计算方法实验1报告班级:20xx级XXXXx班学号:20xx2409xxxx姓名:XXX成绩:1. 实验名称 实验1 算法设计原则验证(之相近数相减、大数吃小数和简化计算步骤)2. 实验题目 (1) 取,计算和,验证两个相近的数相减会造成有效数字的损失 (2) 按不同顺序求一个较大的数(123)与1000个较小的数()的和,验证大数吃小数的现象 (3) 分别用直接法和秦九韶算法计算多项式在x=1.00037处的值验证简化计算步骤能减少运算时间对于第(3)题中的多项式P(x),直接逐项计算
2、需要次乘法和n次加法,使用秦九韶算法则只需要n次乘法和n次加法3. 实验目的 验证数值算法需遵循的若干规则4. 基础理论 设计数值算法时,应避免两个相近的数相减、防止大数吃小数、简化计算步骤减少运算次数以减少运算时间并降低舍入误差的积累两相近的数相减会损失有效数字的个数,用一个大数依次加小数,小数会被大数吃掉,乘法运算次数太多会增加运算时间5. 实验环境 操作系统:Windows xp; 程序设计语言:Matlab 6. 实验过程 (1) 直接计算并比较; (2) 法1:大数逐个加1000个小数,法2:先把1000个小数相加再与大数加;(3) 将由高次项到低次项的系数保存到数组An中,其中n为
3、多项式次数7. 结果与分析 (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; % 释放所
4、有内存变量format long; % 按双精度显示浮点数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,3
5、5,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次幂 % 累加多项式的i次项endtime=clock; % 结束执行的时间time1=etime(endtime,begintime); % 运行时间disp(直接计算);disp(p(,num2str(x),)=,num2str(p);disp( 运行时间: ,num2str(
6、time1),秒);% 秦九韶算法计算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. 实验题目 计算定积分,分别
7、用教材例1-7推导出的算法A和B,其中: 算法A: 算法B:验证算法不稳定时误差会扩大3. 实验目的 验证数值算法需遵循的若干规则4. 基础理论 设计数值算法时,应采用数值稳定性好的算法数值稳定的算法,误差不会放大,甚至会缩小;而数值不稳定的算法会放大误差5. 实验环境 操作系统:Windows xp; 程序设计语言:Matlab 6. 实验过程分别用数组IA 和IB 保存两种算法计算的结果7. 结果与分析 运行结果:(或拷屏)n算法A算法B精确值012345678910分析:8. 附录:程序清单%*%* 程 序 名:ex1_4.m *%* 程序功能:验证数值稳定性算法可控制误差. *%*cl
8、c; % 清屏clear all; % 释放所有内存变量format long; % 按双精度显示浮点数I=0.856, 0.144, 0.712, 0.865, .0.538, 0.308, 0.154, 0.938, .0.492, 0.662, 0.843; % 保留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
9、(n),I(n);end % n显示为2位整数, 其它显示为14位其中小数点后显示6位的小数数值计算方法实验1报告班级:20xx级XXXXx班学号:20xx2409xxxx姓名:XXX成绩:1. 实验名称 实验1 算法设计原则(除数绝对值不能太小)2. 实验题目将线性方程组增广矩阵利用初等行变换可化为由此可解得分别解增广矩阵为和的方程组,验证除数绝对值远小于被除数绝对值的除法会导致结果失真3. 实验目的 验证数值算法需遵循的若干规则4. 基础理论 设计数值算法时,应避免除数绝对值远小于被除数绝对值的除法,否则绝对误差会被放大,使结果失真5. 实验环境 操作系统:Windows xp; 程序设计
10、语言:Matlab 6. 实验过程用二维数组A和B存放方程组的增广矩阵,利用题目所给初等行变换求解方程组7. 结果与分析 第1种顺序的方程组的解为x= ,y= ;第2种顺序的方程组的解为x= ,y= 分析:8. 附录:程序清单%*%* 程 序 名:ex1_5.m *%* 程序功能:验证除数的绝对值太小可能会放大误差. *%*clc;A=1e-16, 1, 1; 2, 1, 2;B=2, 1, 2; 1e-16, 1, 1; % 增广矩阵% 方程组A % m = - a_21/a_11 是第2行加第1行的倍数 % 消去a_21 % m = - a_12/a_22 是第1行加第2行的倍数 % 消去
11、a_12, 系数矩阵成对角线 % 未知数x1的值 % 未知数x2的值disp(方程组A的解: x1=,num2str(A(1,3), x2=,num2str(A(2,3);disp( );% 方程组B % m = - b_21/b_11 是第2行加第1行的倍数 % 消去b_21 % m = - b_12/b_22 是第1行加第2行的倍数 % 消去b_12, 系数矩阵成对角线 % 未知数x1的值 % 未知数x2的值disp(方程组B的解: x1=,num2str(B(1,3), x2=,num2str(B(2,3);数值计算方法实验2报告班级:20xx级XXXXx班学号:20xx2409xxxx
12、姓名:XXX成绩:1. 实验名称 实验2 非线性方程的迭代解法(之简单迭代法)2. 实验题目 用简单迭代法求方程在区间1,2内的一个实根,取绝对误差限为3. 实验目的 掌握非线性方程的简单迭代法4. 基础理论 简单迭代法:将方程改写成等价形式,从初值开始,使用迭代公式可以得到一个数列,若该数列收敛,则其极限即为原方程的解取数列中适当的项可作为近似解5. 实验环境 操作系统:Windows xp; 程序设计语言:Matlab6. 实验过程 7. 结果与分析 8. 附录:程序清单数值计算方法实验2报告班级:20xx级XXXXx班学号:20xx2409xxxx姓名:XXX成绩:1. 实验名称 实验2
13、 非线性方程的迭代解法(之Newton迭代法)2. 实验题目 用Newton迭代法求方程在区间1,2内的一个实根,取绝对误差限为3. 实验目的 掌握求解非线性方程的Newton迭代法4. 基础理论Newton迭代法:解方程的Newton迭代公式为5. 实验环境 操作系统:Windows xp; 程序设计语言:Matlab6. 实验过程 7. 结果与分析 8. 附录:程序清单数值计算方法实验2报告班级:20xx级XXXXx班学号:20xx2409xxxx姓名:XXX成绩:1. 实验名称 实验2 非线性方程的迭代解法(之对分区间法)2. 实验题目 用对分区间法求方程在区间1, 1.5内的一个实根,
14、取绝对误差限为3. 实验目的 掌握求解非线性方程的对分区间法4. 基础理论对分区间法:取a,b的中点p,若f(p) 0或b a ,则p为方程的近似解;若f(a) f(p) 0,则说明根在区间取a,p中;否则,根在区间取p,b中将新的有根区间记为 a1,b1,对该区间不断重复上述步骤,即可得到方程的近似根5. 实验环境 操作系统:Windows xp; 程序设计语言:Matlab6. 实验过程用宏定义函数f(x);为了循环方便,得到的新的有根区间始终用a,b表示;由于新的有根区间可能仍以a为左端点,这样会反复使用函数值f(a),为减少运算次数,将这个函数值保存在一个变量fa中;同样在判断新的有根
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数值 计算方法 实验 指导 Matlab 资料 42
限制150内