数值计算方法试验指导Matlab版资料.docx

上传人:b****0 文档编号:337566 上传时间:2022-10-09 格式:DOCX 页数:47 大小:370.45KB
下载 相关 举报
数值计算方法试验指导Matlab版资料.docx_第1页
第1页 / 共47页
数值计算方法试验指导Matlab版资料.docx_第2页
第2页 / 共47页
数值计算方法试验指导Matlab版资料.docx_第3页
第3页 / 共47页
数值计算方法试验指导Matlab版资料.docx_第4页
第4页 / 共47页
数值计算方法试验指导Matlab版资料.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

数值计算方法试验指导Matlab版资料.docx

《数值计算方法试验指导Matlab版资料.docx》由会员分享,可在线阅读,更多相关《数值计算方法试验指导Matlab版资料.docx(47页珍藏版)》请在冰豆网上搜索。

数值计算方法试验指导Matlab版资料.docx

数值计算方法试验指导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),若

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1