数值计算方法试验指导Matlab版资料.docx
- 文档编号:337566
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:47
- 大小:370.45KB
数值计算方法试验指导Matlab版资料.docx
《数值计算方法试验指导Matlab版资料.docx》由会员分享,可在线阅读,更多相关《数值计算方法试验指导Matlab版资料.docx(47页珍藏版)》请在冰豆网上搜索。
数值计算方法试验指导Matlab版资料
数值计算方法》
实验指导
(Matlab版)
肇庆学院数学与统计学学院
计算方法课程组
《数值计算方法》实验1报告
班级:
20xx级XXXXx班学号:
20xx2409xxxx
姓名:
XXX成绩:
1.实验名称
实验1算法设计原则验证(之相近数相减、大数吃小数和简化计算步骤)
2.实验题目
⑴取z=1016,计算,z•1-z和1/GzV..z),验证两个相近的数相减会造成
有效数字的损失.
(2)按不同顺序求一个较大的数(123)与1000个较小的数(310‘5)的和,验证大数吃小数的现象.
(3)分别用直接法和秦九韶算法计算多项式
nn-1
P(x)二a0xax「-anjxan
在x=1.00037处的值•验证简化计算步骤能减少运算时间.
n+1
对于第(3)题中的多项式P(x),直接逐项计算需要n-(n-21次乘法
2
和n次加法,使用秦九韶算法
P(x)=(((a°xajxa2)xan」)xa.
则只需要n次乘法和n次加法.
3.实验目的
验证数值算法需遵循的若干规则.
4.基础理论
设计数值算法时,应避免两个相近的数相减、防止大数吃小数、简化计算步骤减少运算次数以减少运算时间并降低舍入误差的积累.两相近的数相减会损失有效数字的个数,用一
个大数依次加小数,小数会被大数吃掉,乘法运算次数太多会增加运算时间.
5.实验环境
操作系统:
Windowsxp;程序设计语言:
Matlab
6.实验过程
(1)直接计算并比较;
(2)法1:
大数逐个加1000个小数,法2:
先把1000个小数相加再与大数加;
(3)将由高次项到低次项的系数保存到数组A[n]中,其中n为多项式次数.
7.结果与分析
(1)计算的'z•1-z=,1/CzV、、z)
分析:
(2)123逐次加1000个310“的和是,先将1000个310-6相加,
再用这个和与123相加得
分析:
(3)计算次的多项式:
直接计算的结果是,用时;
用秦九韶算法计算的结果是,用时
分析:
8.附录:
程序清单
(1)两个相近的数相减.
Q%*************************************************************
%*程序名:
ex1_1.m
%*程序功能:
验证两个相近的数相减会损失有效数字个数
Q%*************************************************************
z=1e16;
%x=.z1_-z;
%y=1/(Jz+1+Jz);
x,y
(2)大数吃小数
Q%*************************************************************
%*程序名:
ex1_2.m
%0*程序功能:
验证大数吃小数的现象•
Q%*************************************************************
clc;
clearall;formatIong;
%清屏
%释放所有内存变量
%按双精度显示浮点数
z=123;
t=3e-15;
%大数
%小数
x=z;
%大数依次加小数
%重复1000次给x中加上t
%重复1000次给y中加上t
x,y
(3)秦九韶算法
Q%*************************************************************
%*程序名:
ex1_3.m
%*程序功能:
验证秦九韶算法可节省运行时间•
Q%*************************************************************
%秦九韶算法计算
begintime=clock;
p=0:
fori=0:
n
p-x*p+A{i+l)T
end
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“
计算定积分人二°xnedx,n=0,1,…10,分别用教材例1-7推导出的算法A和B,
其中:
r1
算法A算法b:
」心计-人)
J。
26321[打。
“
验证算法不稳定时误差会扩大.
3.实验目的
验证数值算法需遵循的若干规则.
4.基础理论
设计数值算法时,应采用数值稳定性好的算法•数值稳定的算法,误差不会放大,甚至
会缩小;而数值不稳定的算法会放大误差.
5.实验环境
操作系统:
Windowsxp;程序设计语言:
Matlab
6.实验过程
分别用数组IA[]和IB[]保存两种算法计算的结果.
7.结果与分析
运行结果:
(或拷屏)
n
算法A
算法B
精确值
0
1
2
3
4
5
6
7
8
9
10
分析:
8.附录:
程序清单
Q%*************************************************************
%*程序名:
ex1_4.m
%*程序功能:
验证数值稳定性算法可控制误差.
Q%*************************************************************
1=[0.63212055882856,0.36787944117144,0.26424111765712,0.20727664702865,
0.17089341188538,0.14553294057308,0.12680235656154,0.11238350406938,.
0.10093196744492,0.09161229300662,0.08387707010843];
%保留14位小数的精确值,•是Matlab中的续行符
%算法A
IA
(1)=0.6321;%Matlab下标从1开始,所以要用IA(n+1)表示原问题中的l(n)
forn=1:
10
IA(n+1)-1-n*lA(n);end
%算法B
IB(ll)=0;
forn=10>1:
1
=(1-IB(n-1))/n;
end
disp('n算法A算法B精确值');
forn=1:
11
fprintf('%2d%14.6f%14.6f%14.6f\n',n-1,IA(n),IB(n),l(n));
end
%n显示为2位整数,其它显示为14位其中小数点后显示6位的小数
《数值计算方法》实验1报告
1.实验名称
实验1算法设计原则(除数绝对值不能太小)
2.实验题目
将线性方程组增广矩阵利用初等行变换可化为
由此可解得x1=b]'/a11,x2=b2'/a22'.分别解增广矩阵为
6.实验过程
用二维数组A和B存放方程组的增广矩阵,利用题目所给初等行变换求解方程组.
7.结果与分析
第1种顺序的方程组的解为x=,y=
第2种顺序的方程组的解为x=,y=
分析:
8.附录:
程序清单
^%*************************************************************
%*程序名:
ex1_5.m
%*程序功能:
验证除数的绝对值太小可能会放大误差
^%*************************************************************
%方程组A
disp(['方程组A的解:
x1=',num2str(A(1,3)),',x2=',num2str(A(2,3))]);
disp('');
%方程组B
%m=-b_{12}/b_{22}是第1行加第2行的倍数
%消去b_{12},系数矩阵成对角线
1.实验名称
实验2非线性方程的迭代解法(之简单迭代法)
2.实验题目
32
用简单迭代法求方程x4x-10=0在区间[1,2]内的一个实根,取绝对误差限为10°
3.实验目的
掌握非线性方程的简单迭代法.
4.基础理论
简单迭代法:
将方程f(x)=0改写成等价形式x二「(x),从初值X。
开始,使用迭代公式xk1=(xk)可以得到一个数列,若该数列收敛,则其极限即为原方程的解.取数列中适当的项可作为近似解.
5.实验环境
操作系统:
Windowsxp;程序设计语言:
Matlab
6.实验过程
7.结果与分析
8.附录:
程序清单
《数值计算方法》实验2报告
取绝对误差限为
f(Xk)
f'(Xk)
1.实验名称
实验2非线性方程的迭代解法(之Newton迭代法)
2.实验题目
32
用Newton迭代法求方程x4x-10=0在区间[1,2]内的一个实根,
10「
3.实验目的
掌握求解非线性方程的Newton迭代法.
4.基础理论
Newton迭代法:
解方程f(x)=0的Newton迭代公式为Xk.1=Xk-
5.实验环境
操作系统:
Windowsxp;程序设计语言:
Matlab
6.实验过程
7.结果与分析
8.附录:
程序清单
《数值计算方法》实验2报告
班级:
20xx级XXXXx班学号:
20xx2409xxxx
姓名:
XXX成绩:
1.实验名称
实验2非线性方程的迭代解法(之对分区间法)
2.实验题目
用对分区间法求方程X’-X-1=0在区间[1,1.5]内的一个实根,取绝对误差限为10*•
3.实验目的
掌握求解非线性方程的对分区间法.
4.基础理论
对分区间法:
取[a,b]的中点p,若f(p)疋或b-a<§则p为方程f(x)=0的近似解;若f(a)f(p)<0,则说明根在区间取[a,p]中;否则,根在区间取[p,b]中•将新的有根区间记为[ai,bi],对该区间不断重复上述步骤,即可得到方程的近似根.
5.实验环境
操作系统:
Windowsxp;程序设计语言:
Matlab
6.实验过程
用宏定义函数f(x);
为了循环方便,得到的新的有根区间始终用[a,b]表示;
由于新的有根区间可能仍以a为左端点,这样会反复使用函数值f(a),为减少运算次数,
将这个函数值保存在一个变量fa中;
同样在判断新的有根区间时用到函数值f(p),若
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数值 计算方法 试验 指导 Matlab 资料