数值计算方法实验大纲.docx

上传人:b****6 文档编号:3928566 上传时间:2022-11-26 格式:DOCX 页数:14 大小:51.60KB
下载 相关 举报
数值计算方法实验大纲.docx_第1页
第1页 / 共14页
数值计算方法实验大纲.docx_第2页
第2页 / 共14页
数值计算方法实验大纲.docx_第3页
第3页 / 共14页
数值计算方法实验大纲.docx_第4页
第4页 / 共14页
数值计算方法实验大纲.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

数值计算方法实验大纲.docx

《数值计算方法实验大纲.docx》由会员分享,可在线阅读,更多相关《数值计算方法实验大纲.docx(14页珍藏版)》请在冰豆网上搜索。

数值计算方法实验大纲.docx

数值计算方法实验大纲

《数值计算方法》实验大纲

数学与统计学学院

信息与计算科学教研室

 内容提要

本书内容包括:

一元非线性方程的解法、线性代数方程组的直接解法、线性方程组的迭代解法、插值法和曲线拟合等主要方法简介,给出了上机实验的目的、内容,并设计了一些实验习题,最后给出了几个综合型案例供有兴趣的学生进一步研究选用。

前言

随着计算机的广泛应用和迅猛发展,在各门自然科学和工程、技术科学的发展中,“数值计算”已经成为平行于理论分析和科学实验的第三种科学手段。

现在,不管是在高科技领域还是在一些传统领域,数值计算都是一个不可或缺的环节。

而《数值计算方法》介绍了一些基础性和应用较广的数值计算方法,使学生对计算数学的特点和计算机如何解题有一个初步的了解;同时,本课程又是一门实践性较强的课程,必须通过实验课使学生对于算法如何在计算机上实现有一个感性的认识,要求学生运用matlab语言结合上机实践,掌握编写数值计算程序的基本方法,通过做一些实验性练习,强化已经学到的知识,逐步完成从学到用的过程。

适用专业:

信息与计算科学专业、应用数学专业四年制本科生。

实验要求:

1.用matlab语言或你熟悉的其他算法语言遍程序,使之尽量具有通用性。

2.上机前充分准备,复习有关算法,写出并反复查对程序,列出上机步骤。

3.根据老师要求选做实验习题。

4.完成计算后写出计算实验报告,内容包括:

计算机型号和所用机时,算法步骤描述,变量说明,程序清单,输出计算结果,结果分析、小结、备注等。

实验一方程求根(4学时)

一、方程求根方法回顾

(一)二分法

(二)简单迭代法

(三)牛顿法

(四)弦截法

二、实验目的:

要求学生掌握求方程根的迭代法及牛顿法,能用matlab语言编制程序,上机调试通过,并进行数值实验。

三、实验内容与任务:

(一)编程写Newton迭代算法

(二)上机实验题:

(三)完成计算后写出计算实验报告,内容包括:

计算机型号和所用机时,算法步骤描述,变量说明,程序清单,输出计算结果,结果分析、小结、备注等。

实验二线性方程组的直接解法(4学时)

一、主要算法回顾

(一)高斯顺序消去法

(二)高斯列主元消去法

(三)三对角方程组的追赶法。

(四)系数矩阵为对称正定阵的平方根法。

二、实验目的:

要求学生掌握求线性方程组求解的高斯消去法、列主元法,能用matlab语言编制程序,上机调试通过,并进行数值实验。

三、实验内容与任务:

(一)编写列主元消去法程序,上机调试程序,并用书上的例题进行数值实验。

(二)上机习题

(三)完成计算后写出计算实验报告。

实验3线性方程组的迭代解法(3学时)

一、主要算法回顾:

(一)雅可比迭代法(简单迭代法)

(二)高斯−−赛德尔迭代法

(三)超松弛迭代法

二、实验目的:

要求学生掌握线性方程组迭代原理,及迭代求解算法,能用matlab语言编制雅可比迭代法和高斯—塞德尔法的程序,上机调试通过,分析用雅可比迭代法与高斯—塞德尔迭代法解下列方程组Ax=b的收敛性,通过上机计算,验证分析是否正确,并比较两法的收敛速度。

三、实验内容:

(一)写出并反复查对程序:

Jacobi迭代法、Gauss-Seidel迭代法。

(二)上机调试程序,并用书上的例题进行数值实验。

(三)实验习题题:

研究雅可比迭代法与高斯—塞德尔迭代法的收敛性与收敛速度

(四)根据

(一)和(三)写出实验报告

实验四插值与数据拟合(3学时)

一、主要内容回顾:

(一)函数插值

(二)拉格朗日多项式

(三)均差与牛顿插值多项式

(四)分段线性插值

(五)三次样条插值函数

(六)最小二乘法

用ϕ(x)拟合数据(xk,yk)(k=1,2,…,n),使得误差的平方和

为最小,求ϕ(x)的方法,称为最小二乘法。

二、实验目的:

1.观察拉格朗日插值的龙格现象。

2.观察插值的不稳定性。

3.复习matlab

三、实验内容与任务:

(一)上机前充分准备,复习matlab中有关插值和拟合的命令,复习有关算法,依据下列算法设计编制程序,上机调试拉格朗日插值程序,并用书中的例题做数值实验。

1.用分段线性Lagrange插值多项式求函数值的近似值。

2.非等距节点分段Newton插值   

(二)龙格现象的发生、防止和插值效果的比较。

(三)研究插值法的稳定性

   方案I 拉格朗日插值

   方案II 分段线性插值

   方案III I型三次样条插值

   试比较同一方案对不同的n、不同方案对相同的n的精度情况.  

选做实验一

一、实验目的:

以Hilbert矩阵为例,研究处理病态问题可能遇到的困难。

二、实验内容:

Hilbert矩阵的定义是

它是一个对称正定阵,而且cond(Hn)随着n的增加迅速增加。

1.画出

之间的曲线(可以用任何一种范数),你能猜出

之间有何种关系吗?

提出你的猜测并想法验证。

2.设D是Hn的对角线元素开方构成的矩阵。

,不难看出

依然是对称矩阵,而且对角线元素都是1,把Hn变成

的技术称为预处理。

画出

之间的曲线(可以用任何一种范数),你能对预处理得出什么印象?

3.对于

,给定不同的右端项b,分别用

以及

求解

,比较计算结果。

4.取不同的n并以Hn的第一列为右端向量b,用高斯—塞德尔迭代法求解

,观察其收敛性。

最后你对于有关Hilbert矩阵的计算得出哪些结论?

选做实验二样条插值的应用

实验目的:

会用样条插值解决实际问题

实验习题:

   1.用三次样条插值函数去逼近飞机头部的外型曲线,其型值点数据由表1给出。

   表1

x

0

70

130

210

337

578

776

1012

1142

1462

1841

y

0

57

78

103

135

182

214

244

256

272

275

设给定下述两种边界条件,试分别计算插值函数在点

的值,并绘出飞机头部外型曲线。

   

(1)自然边界条件; 

(2)

   

   2.从人口普查统计,已知某国新生儿母亲的年龄累计分布为

,其中

为母亲年龄,

为新生儿的母亲年龄低于或等于

新生儿数目。

表2给出了间距为5的数据。

表2

t

15

20

25

30

35

40

45

50

N

0

7442

26703

41635

49785

50209

50226

50230

   取边界条件为

,利用三次样条插值求出15至50岁之间,每一年龄(即

)所对应的新生儿累计数目N,并绘出插值函数的图形。

   3.表3是我国1949至1984年间每隔5年的人口数,采用自然样条插值,计算出1949至1984年间每一年的人口数,并由此预测我国1990年,1995年和2000年的人口数。

表3

xi(年份)

1949

1954

1959

1964

1969

1974

1979

1984

yi(人口数:

亿)

5.4167

6.0266

6.7209

7.0499

8.0671

9.0859

9.7542

10.3475

选做实验三

一、实验目的:

会用所学知识解决实际问题

二、实验习题:

1.湖水中氯和磷的浓度之间有一定的关系,下面是一组不同湖水中的测量值。

湖泊

磷浓度(p)mg/m3

氯浓度(c)mg/m3

1

4.5

0.8

2

8.0

2.0

3

5.5

1.2

4

39.0

11.0

5

19.5

4.4

6

17.5

3.8

7

21.0

5.5

1)试建立用磷浓度预报氯浓度的经验公式。

2)当磷的浓度为15mg/m3时,氯的浓度是多少?

2.2000年悉尼奥运会上第一次列入女子举重项目。

各级别冠军的成绩如下:

级别kg

运动员

国籍

体重

kg

抓举kg

挺举kg

总成绩kg

48

德拉诺娃

保加利亚

47.48

82.5

102.5

185

53

杨霞

中国

52.46

100

125

225

58

门丁维尔

墨西哥

56.92

95

127.5

222.5

63

陈晓敏

中国

62.82

112.5

130

242.5

69

李伟宁

中国

66.74

110

132

242

75

乌鲁蒂亚

哥伦比亚

73.28

110

135

245

>75

丁美媛

中国

103.56

135

165

300

试利用这些数据组建立模型,描述运动员举重的总成绩对运动员体重的依赖关系.根据模型分析哪些级别上运动员举重的总成绩还有较大的提高潜力.

 

实验内容和学时安排(17)

本课程开设4个实验,共计17学时。

序号

主要内容

课时分配

实验1

方程求根

4

实验2

线性方程组的直接解法

4

实验3

线性方程组的迭代解法

3

实验4

插值与数据拟合

6

合计

17

附录一:

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

专业班级姓名学号

实验名称

实验目的

计算机型号

所用机时

算法步骤描述

 

程序清单(包含变量说明)

 

计算结果

实验习题

 

结果分析

 

小结

 

备注

附录二部分程序

一、方程求根——二分法

functiony=erfen(x0,x1,a1,a2)

f0=f(x0);

f1=f(x1);

iff0*f1>0

disp("初值错")

end

ifabs(f0)>a2&abs(f1)>a1

ifabs(x0-x1)<=a1*abs(x1)

x0

x1

disp("|x0-x1|是小的")

end

x2=0.5*(x0+x1);

f2=f(x2);

iff2*f1<0

x1=x2

f1=f2

else

x0=x2

f0=f2

end

ifabs(f0)<=a2

x0

disp("f(x)是小的")

else

x1

disp("f(x)是小的")

end

方程求根——牛顿法

functiony=niudun(x0,a1,a2,n)

f0=f(x0);

ff0=ff(x0);

fori=0:

n

if(ff0==0)|(i>n)

disp('wrong')

break

end

x1=x0-f0/ff0

f1=f(x1);

ff1=ff(x1);

if(abs(x1-x0)>a1*abs(x1))&(abs(f1)>a2)

x0=x1;

f0=f1;

ff0=ff1;

else

break

end

end

x1

i

二、求解线性方程组的列主元消去法

functionf=liezhy(n,a,b)

fori=1:

n

sub(i)=i;

end

indx=1;

fork=1:

n-1

max=0;%找出约化主元所在行

fori=k:

n

abs=abs(a(sub(i),k));

ifmax

indx=i;

max=abs;

end

ifmax==0;

disp('A奇异');

end

end

s=sub(k);%交换方程序号

sub(k)=sub(indx);

sub(indx)=s;

pivot=a(sub(k),k);%新约化主元

fori=k+1:

n%消元过程

a(sub(i),k)=-a(sub(i),k)/pivot;

forj=k+1:

n

a(sub(i),j)=a(sub(i),j)+a(sub(i),k)*a(sub(k),j);

end

b(sub(i))=b(sub(i))+a(sub(i),k)*b(sub(k));

end

end

a,b,sub

x(n)=b(sub(n))/a(sub(n),n);%回代过程

fork=n-1:

-1:

1

x(k)=b(sub(k));

fori=k+1:

n

x(k)=x(k)-a(sub(k),i)*x(i);

end

x(k)=x(k)/a(sub(k),k);

end

x

解线性方程组的平方根法

functiony=pingfg(a,b,n)

fori=1:

n

l(1,1)=sqrt(a(1,1));

forj=1:

i-1

l(i,j)=a(i,j);

fork=1:

j-1

l(i,j)=l(i,j)-l(i,k)*l(j,k);

end

l(i,j)=-l(i,j)/l(j,j);

end

l(i,i)=a(i,i);

fork=1:

i-1

l(i,i)=l(i,i)-l(i,k)*l(i,k);

end

l(i,i)=sqrt(l(i,i));

end

l

u=l'

ly=b;

y=l\b;

ux=y;

x=u\y;

x

雅可比迭代法

functiony=jacobiju(a,b,n,x0,s);

d=diag(diag(a));

l=-tril(a,-1);

u=-triu(a,1);

p=d\(l+u);

f=d\b;

ifdet(d)==0

disp('不符合要求')

else

fori=1:

n

x1=p*x0+f;

ifnorm(x1-x0)

break

end

x0=x1;

end

ifi>n

disp('迭代n次后不收敛')

else

x1

i

end

end

functiony=jacobi(a,b,n,x0,s)

ifdet(a)==0

disp('不符合要求')

else

m=max(size(x0));

k=0;

whilek

fori=1:

m

x1(i)=b(i);

forj=1:

m

ifj~=i

x1(i)=x1(i)-a(i,j)*x0(j);

end

end

x1(i)=x1(i)/a(i,i);

end

max=0;

forr=1:

m

p(r)=abs((x1(r)-x0(r))/(x0(r)+1));

ifp(r)>max

max=p(r);

end

end

ifmax

break

end

x0=x1;

k=k+1;

end

end

ifk>=n

disp('迭代n次后不收敛')

else

x1

k

end

参考文献

[1]陈公宁等,计算方法导引,北京师范大学出版社,2000

[2]蔡大用,数值分析与实验学习指导,清华大学出版社,施普林格出版社,2001

[3]李庆扬,数值分析基础教程,高等教育出版社,2001

[4]王沫然,MATLAB6.0与科学计算,2001

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

当前位置:首页 > 小学教育 > 小升初

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

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