谷根代数值分析--上机实习报告.doc

上传人:聆听****声音 文档编号:128561 上传时间:2023-04-28 格式:DOC 页数:28 大小:977KB
下载 相关 举报
谷根代数值分析--上机实习报告.doc_第1页
第1页 / 共28页
谷根代数值分析--上机实习报告.doc_第2页
第2页 / 共28页
谷根代数值分析--上机实习报告.doc_第3页
第3页 / 共28页
谷根代数值分析--上机实习报告.doc_第4页
第4页 / 共28页
谷根代数值分析--上机实习报告.doc_第5页
第5页 / 共28页
谷根代数值分析--上机实习报告.doc_第6页
第6页 / 共28页
谷根代数值分析--上机实习报告.doc_第7页
第7页 / 共28页
谷根代数值分析--上机实习报告.doc_第8页
第8页 / 共28页
谷根代数值分析--上机实习报告.doc_第9页
第9页 / 共28页
谷根代数值分析--上机实习报告.doc_第10页
第10页 / 共28页
谷根代数值分析--上机实习报告.doc_第11页
第11页 / 共28页
谷根代数值分析--上机实习报告.doc_第12页
第12页 / 共28页
谷根代数值分析--上机实习报告.doc_第13页
第13页 / 共28页
谷根代数值分析--上机实习报告.doc_第14页
第14页 / 共28页
谷根代数值分析--上机实习报告.doc_第15页
第15页 / 共28页
谷根代数值分析--上机实习报告.doc_第16页
第16页 / 共28页
谷根代数值分析--上机实习报告.doc_第17页
第17页 / 共28页
谷根代数值分析--上机实习报告.doc_第18页
第18页 / 共28页
谷根代数值分析--上机实习报告.doc_第19页
第19页 / 共28页
谷根代数值分析--上机实习报告.doc_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

谷根代数值分析--上机实习报告.doc

《谷根代数值分析--上机实习报告.doc》由会员分享,可在线阅读,更多相关《谷根代数值分析--上机实习报告.doc(28页珍藏版)》请在冰点文库上搜索。

谷根代数值分析--上机实习报告.doc

华北电力大学

《数值分析》实验报告

实验题目非线性方程求解

专业、班级

硕电力

学号

姓名

课程编号

实验类型

验证性

学时

实验(上机)地点

完成时间

任课教师

谷根代

评分

一、实验目的及要求

1掌握非线性方程数值解法的基本概念、方法;

2理解二分法、牛顿法、割线法、斯蒂芬森法求解非线性方程的原理、方法、步骤,会用计算机进行编程求解;

3掌握运用Matlab进行数值计算的能力。

二、研究、解答以下问题

问题:

分别用二分法、牛顿迭代法、割线法、斯蒂芬森迭代法求方程

的根,观察不同初试值条件下的收敛性,并给出你的结论

【解】:

2.1算法分析

(1)二分法

二分法伪代码如下所示;

输入:

,定义函数,给定精度

输出:

待解方程的根。

while

if

由于本题中恒大于0,不满足二分法的条件,故本例无法通过二分法求出方程的根。

(2)牛顿迭代法

牛顿迭代法迭代法迭代公式为:

a).对单根条件下,牛顿迭代法平方收敛,牛顿迭代法程序框图如下所示:

b).对重根条件下,此时迭代公式修改为

此时,牛顿迭代法至少平方收敛。

(3)割线法

割线法的迭代公式为:

]

割线法是超线性收敛,其程序流程图为

(4)斯蒂芬森迭代法

斯蒂芬森迭代法的计算格式为

斯蒂芬森迭代法程序流程图与牛顿迭代法类似。

2.2迭代结果

分别取初试值为,运用牛顿迭代法、割线法()、,斯蒂芬森法求得根如下(误差精度,数据结够为(formatlong))

牛顿迭代法

割线法

斯蒂芬森法

未考虑重根

考虑重根

1

0.7524647887323

1.0147887323943

0.6999763241023

0.9895610856203

2

0.7954236245124

1.0000363575693

0.6999526372068

0.9999848725311

3

0.8306913539722

1.0000000002203

0.7524357432815

0.9999999999682

4

0.8597145503620

1.0000000000000

0.7784770276292

1.0000000000000

5

0.8836487289229

0.8074195637804

6

0.9034211164477

0.8305334214151

7

0.9197795580534

0.8514440083581

……

……

……

64

0.9999958165495

0.9998927397768

……

85

0.9999924537033

表1时,不同迭代方法迭代结果

牛顿迭代法

割线法

斯蒂芬森法

未考虑重根

考虑重根

1

1.8529411764705

1.1176470588235

1.9677760435023

0.9186980626830

2

1.7258825923114

1.0022487868386

1.9406643838244

0.9186980626830

3

1.6163939446397

1.0000008425224

1.9406643838244

0.9186980626830

4

1.5223105411680

1.0000000000001

1.9406643838244

0.9186980626830

5

1.4416990812267

1.9406643838244

6

1.3728310917166

1.5849504641737

7

1.3141624872713

1.5849504641737

……

……

……

65

1.0000085397619

1.0003773276313

……

68

1.0000049419954

0.9999924537033

……

95

1.0000075015608

表2时,不同迭代方法迭代结果

2.3分析

通过表1、表2不难分析出如下结论:

(1)牛顿法、割线法、斯蒂芬森法本题下均收敛,可以求出误差范围内的根。

(2)对于重根情况下,牛顿法的收敛速度会变慢变为线性收敛。

为解决这一问题,可以对牛顿迭代公式进行修正,此时至少能够保证迭代是平方收敛,使得求解速度大大加快。

(3)割线法的收敛速度小于牛顿法。

(4)运用斯蒂芬森法可以对牛顿迭代法进行加速。

三、本次实验的难点分析

1、本次试验是数值分析课程的第一次试验,重温了matlab的基本语法与操作。

由于本科时使用matlab主要是电力系统仿真即主要运用simlinuk模块,对于matlab中自定义函数的建立与运用还有欠缺。

这是本次试验中耗时较多的部分。

2、本次试验,原设计在牛顿迭代法程序中加入判断导数值是否是个小值(导数值为零)的过程,以防止分母出现较小的值。

但是程序运行过程中导数值始终会接近于零而跳出,得不出解。

为此不得不放弃这一思路。

四、参考文献

[1]谷根代,杨晓忠等.数值分析[M].北京:

科学出版社,2011

[2]马东升,雷永军.数值计算方法[M].北京:

机械工业出版社,2008

[3]周路,陈渝等译.数值方法(Matlab版)[M].北京:

电子工业出版社,2010

《数值分析》实验报告

实验题目插值与拟合

专业、班级

学号

姓名

课程编号

实验类型

验证性

学时

实验(上机)地点

完成时间

任课教师

谷根代

评分

一、实验目的及要求

1掌握插值、拟合的基本概念、方法;

2理解牛顿插值法、三次样条插值原理、方法、步骤,理解最小二乘法的原理方法,会用计算机进行编程求解,懂得Runge现象及预防措施;

3掌握运用Matlab进行数值计算的能力。

二、研究、解答以下问题

问题:

1区间作等距划分:

以为节点对函数进行插值逼近。

(1)分别取,用牛顿插值对进行逼近,并在同一坐标系下作出函数的图形,进行比较,写出插值函数对的逼近程度与节点个数之间的关系,并分析原因;

(2)使用三次样条插值对进行逼近,在同一坐标系下画出图形,观察样条插值函数对的逼近程度与节点个数的关系;

(3)整体插值有和局限性?

如何避免?

2已知一组数据如下,求其拟合曲线。

0

1

2

3

4

5

6

7

8

9

10

2

3

4

7

8

10

11

14

16

18

19

106.42

108.2

109.5

110

109.93

110.49

110.59

110.6

110.76

111

111.2

(1)求以上数据形如的拟合曲线及其平方误差;

(2)求以上数据形如的拟合曲线及其平方误差;

(3)通过观察

(1)、

(2)的结果,写出你对数据拟合的认识。

2.1算法分析

2.1.1插值

(1)牛顿插值法

Lagrange插值公式结构紧凑,便于理论分析。

利用插值基函数也容易到插值多项式的,Lagrange插值公式的缺点是,当插值节点增加,或其位置变化时,全部插值基函数均要随之变化,从而整个插值公式的结构也发生变化,这在实际计算中是非常不利的。

下面引入的Newton插值公式可以克服这个缺点。

Newton插值多项式可以灵活地增加插值节点进行递推计算。

该公式形式对称,结构紧凑,因而容易编写计算程序。

Newton插值多项式为:

其中:

称之为f(x)在上的k阶均差(或差商)。

实际计算中,可以由差商表计算。

,如下所示:

表1差商表

牛顿迭代法程序流程图如下所示:

(2)三次样条插值

分段低次插值光滑性较差,对于像高速飞机的机翼形线,船体放样等型值线往往要求有二阶光滑度,即有二阶连续导数。

三次样条函数 记为它是定义在区间[a,b]上的函数,满足以下两个条件:

1).S(x)在每一个小区间上是一个三次多项式函数;

2).在整个区间[a,b]上,其二阶导数存在且连续。

即在每个节点处的二阶导数连续。

问题:

给定函数在n+1个节点处的函数值为。

要求:

求一个三次样条函数,使其满足:

如何确定三次样条函数在每一个小区间上的三次多项式函数的系数呢?

这里只简介确定系数的思想。

对于三次样条插值呢,每一个区间上的三次函数的四个参数,在该区间上由两个端点的函数值只能够产生两个方程,仅此不足以唯一确定四个参数。

注意到三次样条函数对整体光滑性要求,其二阶导数存在且连续,从全局的角度上考虑参数个数与方程个数的关系如下:

参数:

每个小段上4个,n个小段共计4n个。

方程:

1)每个小段上由给定函数值得到2个,n个小段共计2n个;

2)光滑性要求每一个内部节点的一阶二阶导数连续,得出其左右导数相等,因此,每个节点产生2个方程,共计2(n-1)个。

现在得到了4n-2个方程,还差两个。

为此,常用的方法是对边界节点除函数值外附加要求,这就是所谓的边界条件。

需要两个,正好左右两个端点各一个。

常用如下三类边界条件:

第一边界条件 给定两个边界节点的一阶导数值:

m0,mn,即:

(x0)=m0,(xn)=mn。

第二边界条件 给定两个边界节点的二阶导数值:

M0,Mn,即:

(x0)=M0, (xn)=Mn。

特别地,当M0和Mn都为零时,称为自然边界条件。

周期性边界条件 在两个边界的函数值,一阶导数值以及二阶导数值均相等:

·(x0)=(xn);(x0)=(xn)。

2.1.2拟合

在科学实验或者统计研究中常常需要从一组测得的数据中去求得自变量和因变量之间的一个近似解析表达式使得误差最小,这就是给定个点进行曲线拟合的问题。

曲线拟合常用次多项式来进行拟合,即

求解下面方程就可进行曲线拟合:

对于指数形式的拟合曲线,可以令,,则有,用上式依然可以解除

2.2数据处理与问题分析

2.2.1插值

(1)运用所编程序,分别求出时,得出插值函数,并在同一坐标系下画出原函数与插值函数图像,分别如下所示:

图1n=1时原函数与插值函数图象

图2n=5时原函数与插值函数图象

图3n=10时原函数与插值函数图象

图4n=20时原函数与插值函数图象

图5n=25时原函数与插值函数图象

(2)运用所编程序,求出下三次样条插值函数,并在同一坐标系下作出原函数图象与插值函数图象。

如下图所示:

图6n=1时原函数与插值函数图象

图7n=5时原函数与插值函数图象

图8n=10时原函数与插值函数图象

2.2.2拟合

(1)形如的拟合,根据所编matlab程序,得到拟合方程为

(2)形如的拟合,根据所编matlab程序,得到拟合方程为

(3)将

(1)、

(2)与原数据散点图图象做在同一坐标系中,如下如所示:

通过此图,可以发现,指数形式的拟合函数更加和原数据走势拟合,然而不管哪一种拟合形式,都不能保证所有的数据点都在拟合曲线上。

所以,拟合可以表现出数据的真题趋势,而且,通过拟合可以合理的排除一些误差点。

2.3问题分析

2.3.1插值

(1)由2.2.1中时插值函数与原函数的图象分析可知,插值点越多,插值函数越逼近与原函数。

然而,当把此题的区间扩大,改为时,情况却发生变化,时插值函数与原函数的图象如下所示:

图9n=3时原函数与插值函数图象

图10n=5时原函数与插值函数图象

图11n=10时原函数与插值函数图象

图12n=25时原函数与插值函数图象

通过上述四图发现,随着插值节点数目的增多,区间中间的确越来越逼近原函数,然而区间两端发生了较大震荡,即发生了Runge现象。

这是由插值余项的表达式所决定的。

(2)为进一步说明三次样条插值下插值节点数目与插值函数的关系,同上,将区间扩大至,别求出时,得出插值函数,并在同一坐标系下画出原函数与插值函数图像,分别如下所示:

图13n=1时原函数与插值函数图象

图14n=5时原函数与插值函数图象

图15n=10时原函数与插值函数图象

通过图6~8,图13~15,可以发现:

插值节点数目越多,三次样条插值函数越逼近与原函数。

三次样条函数没有Runge现象,这是三次样条插值将区间分成了n份。

(3)对于整体插值,如果节点数目较少,插值函数有不怎么精确,如图9,图10所示;如果节点数目增多,就有可能会发生Runge现象,如图11、12所示。

解决方法是分段低次插值。

2拟合

拟合部分问题分析见2.2.2

三、本次实验的难点分析

(1)由于自学,本次试验对牛顿插值法的差商公式理解有一点偏差。

(3)本次试验中插值部分,对于牛顿插值,随着插值节点的增大,在区间内却不出现Runge现象,对于这点感到迷惑。

为了说明问题,只能将插值区间选为。

此时,随着插值节点数目的增多,出现了明显的Runge现象。

四、参考文献

[1]谷根代,杨晓忠等.数值分析[M].北京:

科学出版社,2011

[2]马东升,雷永军.数值计算方法[M].北京:

机械工业出版社,2008

[3]周路,陈渝等译.数值方法(Matlab版)[M].北京:

电子工业出版社,2010

《数值分析》实验报告

实验题目数值微分和数值积分

专业、班级

学号

姓名

课程编号

实验类型

验证性

学时

实验(上机)地点

完成时间

任课教师

谷根代

评分

一、实验目的及要求

1掌握数值积分与数值微分的基本概念、方法;

2理解Newton-Cotes公式、复合求积公式、龙贝格积分公式、Gauss型积分公式等求解数值积分与数值微分的原理、方法、步骤,会用计算机进行编程求解;

3掌握运用Matlab进行数值计算的能力。

二、研究、解答以下问题

问题:

设计区间分半求积算法、龙贝杰求积算法和自适应辛普森算法的程序,观察时,积分的结果,并给出相应评价。

【解】:

1区间半分积分法

设将区间分成等分,既有个子区间,分点为,其中步长。

对于子区间,再取其中点作新节点,求积分值

若有,则取为积分值。

流程图如下:

输入命令格式如下:

[T2,T1,nn]=Variable_step(-1,1,1e-5,n),其中n为题中函数参数。

迭代次数

1

10

100

500

1

0.540302

-0.839071

0.862319

-0.883849

2

0.489547

-0.348621

0.672401

-0.381678

3

0.480839

-0.101854

0.626418

-0.280988

4

0.478895

-0.130400

0.615014

-0.257077

5

0.478423

-0.137742

0.612169

-0.251175

6

0.478306

-0.139589

0.000711

-0.001471

7

0.478277

-0.140038

-0.007551

-0.008067

8

-0.140152

-0.009242

0.001407

9

-0.140181

-0.009656

-0.001254

10

-0.009757

-0.001735

11

-0.009772

-0.001848

12

-0.001876

2龙贝格求积算法

用复化梯形公式,取区间长度为,复化梯形公式的值与原积分值之间存在关系:

该式称为欧拉-麦克劳林求和公式。

上式还表明,用近似的截断误差为:

龙贝格求积算法计算步骤如下:

(1)计算:

(2)对分区间并计算和:

其中为新分点的函数值之和。

(3)计算与:

(4)利用外推公式:

,(),(),直至求出。

(5)判断是否真,其中为给定的精度。

若真,则,否则重复

(2)、(3)、(4)的计算。

对于的龙贝格积分结果,分别如下表所示:

1

1.080605

0

0

0

0

2

0.540302

0.360202

0

0

0

3

0.489547

0.472628

0.480123

0

0

4

0.480839

0.477937

0.478291

0.478262

0

5

0.478895

0.478247

0.478268

0.478267

0.478267

=1

1

-1.678143

0

0

0

0

0

2

-0.839072

-0.559381

0

0

0

0

3

-0.348620

-0.185136

-0.160187

0

0

0

4

-0.101855

-0.019599

-0.008564

-0.006157

0

0

5

-0.130400

-0.139915

-0.147936

-0.150148

-0.150713

0

6

-0.137742

-0.140189

-0.140207

-0.140084

-0.140045

-0.140035

=10

1

1.724638

0.000000

0.000000

0.000000

0.000000

0.000000

2

0.862319

0.574879

0.000000

0.000000

0.000000

0.000000

3

0.672401

0.609095

0.611376

0.000000

0.000000

0.000000

4

0.626418

0.611090

0.611224

0.611221

0.000000

0.000000

5

0.615014

0.611213

0.611221

0.611221

0.611221

0.000000

6

0.612169

0.611221

0.611221

0.611221

0.611221

0.611221

=100

1

-1.767699

0.000000

0.000000

0.000000

0.000000

0.000000

2

-0.883849

-0.589233

0.000000

0.000000

0.000000

0.000000

3

-0.381678

-0.214287

-0.189291

0.000000

0.000000

0.000000

4

-0.280988

-0.247425

-0.249634

-0.250592

0.000000

0.000000

5

-0.257077

-0.249107

-0.249219

-0.249213

-0.249207

0.000000

6

-0.251175

-0.249207

-0.249214

-0.249214

-0.249214

-0.249214

=500

3自适应求积方法

自适应求积算法是按照被积函数在区间的变化形态来安排求积节点的。

自适应Simpson积分法方法如下:

输入:

端点精度要求;

输出:

近似值,分层数,分点;

置;

while1

n1=length(ep);

n=length(p0);

ifn==1break,end

h=p0

(2)-p0

(1);

s0=h/6*(f(p0

(1),nn)+4*f((p0

(1)+h/2),nn)+f(p0

(1)+h,nn));

s1=h/12*(f(p0

(1),nn)+4*f((p0

(1)+h/4),nn)+f((p0

(1)+h/2),nn));

s2=h/12*(f(p0

(1)+h/2,nn)+4*f((p0

(1)+3*h/4),nn)+f(p0

(1)+h,nn));

ifabs(s0-s1-s2)<=15*ep

(1)

I=I+s1+s2;

p0=p0(2:

n);

ifn1>=2ep=ep(2:

n1);end

q=q+1;

else

m=m+1;

p0=[p0

(1),p0

(1)+h/2,p0(2:

n)];

ifn1==1

ep=[ep

(1)/2,ep

(1)/2,ep(2:

n1)];

end

ifq==0

p=p0;

else

p=[p(1:

q),p0];

endendend

当时,积分结果,产生的积分节点为

1

2

3

4

5

6

7

8

-1

-0.5

-0.25

0

0.25

0.5

0.75

1

下图表现了被积函数的曲线和自适应法产生的求积节点的关系

当时,积分结果,产生的积分节点为

1

-1

16

0.125

2

-0.9375

17

0.1875

3

-0.875

18

0.25

4

-0.8125

19

0.375

5

-0.75

20

0.4375

6

-0.6875

21

0.5

7

-0.625

22

0.125

8

-0.5625

23

0.1875

9

-0.5

24

0.25

10

-0.4375

25

0.375

11

-0.375

26

0.4375

12

-0.25

27

0.5

13

-0.1875

28

0.5625

14

-0.125

29

0.625

15

0

30

下图表现了被积函数的曲线和自适应法产生的求积节点的关系

当时,积分结果,产生的积分节点为

1

2

3

4

5

-1

-0.5

0

0.5

1

下图表现了被积函数的曲线和自适应法产生的求积节点的关系

时,积分结果,产生的积分节点数目为985个,不在赘述。

分析

(1)综合

(1)、

(2)、(3)的结果发现在时三种积分方法基本相等,这表明在震荡较为平缓的情况下区间分半求积算法、龙贝杰求积算法和自适应辛普森算法均是适用的;

(2)通过对龙贝杰求积算法与区间分半求积算法的迭代次数的比较,使用龙贝杰求积算法确实能够提高运算速度。

(3)当逐渐增大,此时区间分半求积算法的求值结果最先出现偏差,故对震荡剧烈的被积函数区间分半求积算法适用性不强。

(4)自适

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2