文档库 最新最全的文档下载
当前位置:文档库 › 数值计算方法学习报告

数值计算方法学习报告

数值计算方法学习报告
数值计算方法学习报告

学院:研究生学院 专业:建筑与土木工程 学号:2012205103 2012205104 2012205114 姓名:胡晔 李学莲 周向楠 成绩:

《数值微分及应用》研究 第一章 数值微分的描述

一、《数值微分》描述

数值微分(numerical differentiation)是根据函数在一些离散点的函数值,推算它在某点的导数或高阶导数的近似值的方法。通常用差商代替微商,或者用一个能够近似代替该函数的较简单的可微函数(如多项式或样条函数等)的相应导数作为能求导数的近似值。例如一些常用的数值微分公式(如两点公式、三点公式等)就是在等距步长情形下用插值多项式的导数作为近似值的。此外,还可以采用待定系数法建立各阶导数的数值微分公式,并且用外推技术来提高所求近似值的精确度。当函数可微性不太好时,利用样条插值进行数值微分要比多项式插值更适宜。如果离散点上的数据有不容忽视的随机误差,应该用曲线拟合代替函数插值,然后用拟合曲线的导数作为所求导数的近似值,这种做法可以起到减少随机误差的作用。数值微分公式还是微分方程数值解法的重要依据。

二、《数值微分》的相关概念

根据函数在一些离散点上的函数值来估计函数在某点导数或高阶导数的近似值的方法,称为数值微分。

多项式插值是最常见的一种函数插值。在一般插值问题中,若选取φ为n 次多项式类,由插值条件可以唯一确定一个n 次插值多项式满足上述条件。从几何上看可以理解为:已知平面上n+1个不同点,要寻找一条n 次多项式曲线通过这些点。插值多项式一般有两种常见的表达形式,一个是拉格朗日插值多项式,另一个是牛顿插值多项式。

三次样条函数定义:函数],,[)(2b a C x S ∈且在每个小区间[]

1,+j j x x 上是三次多项式,其中

b x x x a n =<<<= 10是给定节点,则称)(x S 是节点n x x x ,,,10 上的三次样条函数。

若在节点j x 上给定函数值(),,,1,0)(n j x f y j j ==并成立

学院:研究生学院 专业:建筑与土木工程 学号:2012205103 2012205104 2012205114 姓名:胡晔 李学莲 周向楠 成绩:

),,,1,0()(n j y x S j j ==

则称)(x S 为三次样条插值函数。

三、《数值微分》的相关理论

主要有微分中值定理,下面介绍以下几种微分中值定理。 3.1罗尔定理

我们先讲罗尔定理,然后根据它推出拉格朗日中值定理和柯西中值定理。

先将介绍费马引理 设函数)(x f 在点0x 的某邻域()0x U 内有定义,并且在0x 处可导,如

果对任意的)(0x U x ∈,有)),(x f )(()(00x f x f x f ≥≤)

(或那么00=')(x f 。 罗尔定理 如果函数)(x f 满足 (1)在闭区间[]b a ,上连续; (2)在开区间[]b a ,内可导;

(3)在区间端点处的函数值相等,即)()(b f a f =,那么在),(b a 内至少有一点

)(b a <ξ<ξ,使得0f =ξ')(。

3.2拉格朗日中值定理 (1)在闭区间[]b a ,上连续; (2)在开区间[]b a ,内可导;

学院:研究生学院 专业:建筑与土木工程 学号:2012205103 2012205104 2012205114 姓名:胡晔 李学莲 周向楠 成绩:

那么在),(b a 内至少有一点)(b a <ξ<ξ,使等式))(()()(a b f a f b f -ξ'=-。 3.3柯西中值定理 如果函数)(x f 及)(x F 满足 (1)在闭区间],[b a 上连续; (2)在开区间()b a ,内可导; (3)对任一0≠'∈)(),,(x F b a x 。 那么在),(b a 内至少有一点ξ,使等式

)

()

()()()()(ξ'ξ'=--F f a F b F a f b f 成立。

四、《数值微分及应用研究》国内外研究进展

数值微分问题相对其他问题而言是一个古老的问题,从上个世纪中期至今国内外有众多的学者进行这一课题的研究,得到的科研结果也很丰富。如果理论研究中不考虑数据的误差,用一般的有限差分法就能求得近似的导数,并且已经有很多人对有限差分法的收敛性进行了研究。但如果数据带有误差,用有限差分法就有可能造成数值解的误差很大。通常都用划分的间距不能太小的办法来解决,及测量点不能太多,在此条件下计算结果还可以接受,否则有可能测量点去的越多结果越差。然而这一要求不符合人们的思维习惯,人们习惯性地认为,数据越多越能帮助得到更精确的结果。

五、《数值微分及应用研究》国内外研究现状

针对上面谈到的问题,使许多学者开始从其他角度来考虑数值微分问题,这种方法就是用Tikhonov 正则化方法,此法对求解不适定问题以及反问题是理论上最完备而实践上行之有效的。求解数值微分的问题本质上是不适定的,因此必须用正则化法,其中正则化参数的选取是该方法的一个核心问题。严格来讲稳定的近似求导方法都是基于正则化思想,所不同的是正则化解算子的构造和正则化参数的选取。 六、《数值微分》方法有多少?

学院:研究生学院 专业:建筑与土木工程 学号:2012205103 2012205104 2012205114 姓名:胡晔 李学莲 周向楠 成绩:

比较常用的数值微分方法有四种:差商型数值微分、插值型数值微分、三样条型数值微分、数值微分的外推算法。

第二章 算法的研究

一、《数值微分》方法有多少(方法种类)?

1. 《数值微分》方法有多少?

比较常用的数值微分方法有四种:差商型数值微分、插值型数值微分、三样条型数值微分、数值微分的外推算法。下面我们一一介绍各种方法。

1.1差商型数值微分公式

当函数(x)f 是以离散点列给出时,当函数的表达式过于复杂时,常用数值微分近似计算

(x)f 的导数(x)'f 。在微积分中,导数表示函数在某点上的瞬时变化率,它是平均变化率的极限;在几何上可解释为曲线的斜率;在物理上可解释为物体变化的速率。

(1)向前差商公式

h x f h x f x f )

()()('-+≈

(2)向后差商公式

h h x f x f x f )()()('--≈

(3)中心差商公式

h h x f h x f x f 2)()()('--+≈

1.2插值型数值微分

(1)两点数值微分公式(1=n )

过节点h x x x +=010,的插值型数值微分两点公式为

h x f x f x L x f )

()()(')('01010-=

h x f x f x L x f )()()(')('01111-=

学院:研究生学院 专业:建筑与土木工程 学号:2012205103 2012205104 2012205114 姓名:胡晔 李学莲 周向楠 成绩:

其截断误差为

)(''2)('001ξf h x R -

=,)(''2)('111ξf h

x R -=

其中

())1,0(,=∈i b a i ξ。

(2)三点数值微分公式

过节点)2,1,0(0=+=i ih x x i 的插值型计算导数的三点公式为

)]()(4)(3[21

)('2100x f x f x f h x f -+-≈

)]

()([21

)('201x f x f h x f +-≈ )]

(3)(4)([21

)('2102x f x f x f h x f +-≈

其截断误差为

)

('''3)('0202ξf h x R -=

)

('''6)('12

12ξf h x R -=

)

('''3)('22

22ξf h x R =

),(b a i ∈ξ)

2,1,0(=i

二阶数值微分公式

)2,1,0()],()(2)([1

)('')(''21022=+-=

≈i x f x f x f h

x L x f i i 注:此公式是三点公式。 (3)三样条型数值微分

三次样条函数)(x S 作为)(x f 的近似,不但函数值很接近,导数值也很接近,并有

2,1,0,)

()(4)

()()

(=≤--∞

k h f

C x S x f

k k k k k

因此利用三次样条函数)(x S 直接得到

学院:研究生学院 专业:建筑与土木工程 学号:2012205103 2012205104 2012205114 姓名:胡晔 李学莲 周向楠 成绩:

.

11)()()(],,[6

3)()(,2,1,0),()(k k k k k k k k k k k k M x f x x f M h

M h x S x f k x S x f =''+--='≈'=≈++ 这里],[1+k k x x f 为一阶均差,其误差为

,

8

3,

24

12)4(3)

4(h f S f h f S f ∞∞

∞∞≤''-''≤'-'

(4)数值微分的外推算法

利用中点公式计算导数值时)].()([21

)()(h x f h x f h

h G x f --+=≈' 对)(x f 在点x 做泰勒级数展开

,)()(4221 +++='h h h G x f αα

其中),2,1( =i i α与h 无关,利用理查森外推对h 逐次分半,若记)()(0h G h G =,则有

,2,1,1

4)

()2(4)(1=---=-m h G h

G h G m

m m m m 根据理查森外推方法,误差为

).()()()1(2'+=-m m h O h G x f

由此看出当m 较大时,计算是很精确的。考虑到舍入误差,一般m 不能取太大。

2. 经典的《数值微分》方法中点方法。

二、《数值微分》方法哪个好?(方法比较)?

1. 《数值微分》方法的优缺点分析

1):中点方法的优点是公式的精度较高,而缺点是从舍入误差的角度来看h 很小时,

)()(h a f h a f -+与接近,直接相减会造成有效数字的严重损失。

学院:研究生学院 专业:建筑与土木工程 学号:2012205103 2012205104 2012205114 姓名:胡晔 李学莲 周向楠 成绩:

2):插值型数值微分法的优点是可以建立高阶的数值微分公式,缺点是即使

)

(x P n 与)

(x f 的近似度非常好,导数)(x f '与)

(x P n '在某些点上的差别仍旧可能很大,因而,在应用数值微

分公式时,要重视对误差的分析。

3):三样条型数值微分法的优点是可以求非节点处的1—2阶导数,精度高,缺点是要求预知边界条件,要解三对角方程组,比较复杂。

4)数值微分的外推算法的优点是加速的效果很明显,缺点是倘若在外推的过程中的某一步出现截断误差的首项系数为零,则继续使用上述办法进行外推会得到出错误的结果,而且由于0>q ,故而外推次数不宜过多,否则会引起计算的不稳定性。 2. 最好的方法是还是中点方法。

第三章 算法的应用

一、 《数值微分》方法怎么用?(程序设计)? 1. 一般程序设计

mathematic

2. 举例验证

计算3

()x f x e =在5.0=x 点的前10阶导数的值,把结果以表格的形式列出。 f[x_] := Exp[x^3];

dtable = Table[{n, D[f[x], {x, n}] /. x -> 0.5}, {n, 1, 10}]; TableForm[dtable, TableAlignments -> Center, TableDirections -> Row]

运行结果:

二、《数值微分》方法用哪好?

学院:研究生学院专业:建筑与土木工程学号:2012205103 2012205104 2012205114 姓名:胡晔李学莲周向楠成绩:

1. 《数值微分三点公式》方法在给排水专业的应用

拉格朗日法研究流体的运动中,通过照相机拍摄同一标记物在不同时刻的位置,由不同时刻的位置研究质点速度的问题。

2. 《数值微分》方法在你了解的其他领域的应用

电路震荡、化学反应及生物群体的变化等。

第四章算法展望

数值微分就是用离散的方法近似地求出函数在某点的导数值,关于数值微分已经有许多求解方法,但这些方法都有各自的局限性,并且关于高阶导数的近似逼近的方法的研究相对较少。近几年数学家有提出了两种求解高阶数值微分的新方法,并给出了高阶导数近似逼近的误差估计。方法一是利用Tikhonov正则化方法,通过构造一个五次样条函数研究了不等距分布下的高阶数值微分问题。由于在讨论中的采样取值是随机的,使得该方法具有较大的实用性。方法二是在等距分布的条件下,基于三次样条差值函数的三弯矩算法,通过利用节点处弯矩的加权和近似计算区间中点处的二阶导数。该方法简单易懂,并且具有比用三次样条差值函数求二阶数值微分更高阶的计算精度。基于数值微分计算方法在各个领域的重要作用,在众多学者的努力下,更为完善的方法必将继续出现,更为简单精确的解决数值微分的方法的出现及应用必将指日可待。

第五章学习思考

一、《数值微分》相关的问题(我的思考)

通过对本节的学习,可否自己出题,并用多种方法求解?

二、我的课题作业

1、地球卫星轨道是一个椭圆,椭圆周长的计算公式是

=

,

S aθ

这是a是椭圆的半径轴,c是地球中心与轨道中心(椭圆中心)的距离,记h为近地点距离,H为远地点距离,R=6371(km)为地球半径,则

=++=-

(2)/2,()/2.

a R H h c H h

我国第一颗地球卫星近地点距离h=439(km),远地点距离H=2384(km)。试求卫星轨道的周长。解:

===

6371,439,2384

R h H

学院:研究生学院 专业:建筑与土木工程 学号:2012205103 2012205104 2012205114 姓名:胡晔 李学莲 周向楠 成绩:

从而有

(2)/27782.5()/2972.54a R H h c H h S a θ

=++==-==

1.564646

48708()

I S km ≈≈

即人造卫星轨道的周长为48708km 2、证明等式 3

5

2

4

sin

3!5!n n

n n π

πππ=-

+

-

试依据sin()(3,6,12)n n n π

=的值,用外推算法求π的近似值。

解: 若()sin

,f n n n π

= 又3511

sin 3!5!x x x x =-+-

∴此函数的泰勒展式为

353

5

2

4

()sin

11[()()]3!5!3!5!f n n n

n n n n

n

n

π

πππ

πππ==-+-

=-

+

-

()k n T π≈

当3n =时, sin

2.598076n n

π

=

学院:研究生学院 专业:建筑与土木工程 学号:2012205103 2012205104 2012205114 姓名:胡晔 李学莲 周向楠 成绩:

当6n =时, sin

3n n

π

= 当12n =时, sin 3.105829n n

π

=

由外推法可得

故 3.14158π≈

3、求如下数值微分公式的系数,使其对次数尽可能高度的多项式精确成立。

0102030''()()()'()f x a f x h a f x a f x ≈+++,导出该数值微分公式的余项表达式。

解:

令2()1,,,f x x x =分别代入(1)中,使数值微分公式精确成立,得

1210203210203020()0

()2a a a x h a x a a x h a x a x ?+=?

+++=??+++=?

解上述关于123,,a a a 的方程组,得123

22222

,,a a a h h h

==-=- 故[]0000222

''()()()'()f x f x h f x f x h h

+-- 设余项[]30000222

''()()()'()''(),()R f x f x h f x f x kf f x x h h ξ=-+-+==令,代入上式,得

3320000222

6()33!x x h x x k h h ??-+-+?=?

?

从而,导出该数值微分公式的余项表达式为''()3h

R f ξ=-。

4、设244

2101022

()2()''()(),(,),()12f x f x f x h f x f x x f M h εεε-+=-∈≤(),计算的误差不超过1102

k

-?,试证明:当142410(

)k opt h h M -?=取时,可使计算二阶倒数的中心差商公式的截断误差

学院:研究生学院 专业:建筑与土木工程 学号:2012205103 2012205104 2012205114 姓名:胡晔 李学莲 周向楠 成绩:

和舍入误差的总和达到最小。

证明:因二阶导数的中心差商公式的截断误差估计为

2

21012()2()()''()12

f x f x f x h R f x M h -+=-≤

又设012(),(),()f x f x f x 的舍入误差分别为012,,εεε,令{}012max ,,εεεε=,则二阶导数的中心差商公式

21012

)2()()

''()f x f x f x f x h

-+=( 的舍入误差可估计为 210

12

2

24(''()f x h h εεεεδ++=

故截断误差和舍入误差界的总和为

224()12h E h M h

ε

=+

使()E h 达到最小的步长h 应满足 38()06h E h M h

ε

=-= 从而得最佳步长为

opt

h == 5、用变步长的中点方法求x e 在1x =处的导数值,设取0.8h =起算。 解:

这里采用的计算公式是11()2h h

e e G h h

+--=,计算结果见表:

表中k 代表二分的次数,步长2

k h =

。二分9次得结果 2.71828G =,它的每一数字都是有效

学院:研究生学院 专业:建筑与土木工程 学号:2012205103 2012205104 2012205114 姓名:胡晔 李学莲 周向楠 成绩:

数字(所求导数的准确值为 2.7182818e =)。 6、 已知函数x y e =的下列数值:

本题没有明确指出用哪些点处的函数值来求'(2.7)''(2.7)f f 和。因此,随着步长h 不同,导数值有可能不同。另外, 用两点函数值时,只能求一阶导数值. 解

取0.1h =时,两点公式有两种取法当 2.6, 2.7x x ==时,

[][]11

'(2.7)(2.7)(2.6)14.879713.463714.16000.10.6

f f f ≈

-=-= 当012.7, 2.8x x ==时, 1

'(2.7)[(2.8)(2.7)]15.64900.1

f f f ≈

-= 三点公式取0122.6, 2.7, 2.8,x x x ===得

21

'(2.7)[(2.8)(2.6)]14.904520.1

1

''(2.7)[(2.8)2(2.7)(2.6)]14.8900

0.1f f f f f f f ≈

-=?≈-+=

7 用外推算法计算x e x x f -=2)(在5.0=x 的导数。

解:令???

????????

??--??? ??+=???

??--??? ??+-h h e h e h h h G 212212212121)(,当h=0.1,0.05,0.025时,由外推

算法表可算得

4516049081.0)1.0(=G ,

()4548999231.0454*******.0)05.0(1=↓→=h G G ,

4548981152.024*********.0)025.0(1=???

??↓→=h G G ,

454897994.02=↓→G

学院:研究生学院专业:建筑与土木工程学号:2012205103 2012205104 2012205114 姓名:胡晔李学莲周向楠成绩:

()5.0

f'的精确值为0.454897994,可见当h=0.025时用中点微分公式只有3位有效数字,外推一次可以达到5位有效数字,外推两次可以达到9位有效数字。

学习报告必须完成的作业

学院:研究生学院专业:建筑与土木工程学号:2012205103 2012205104 2012205114 姓名:胡晔李学莲周向楠

各组同学研究的题目请见下表

学院:研究生学院专业:建筑与土木工程学号:2012205103 2012205104 2012205114 姓名:胡晔李学莲周向楠

研究生课程报告:时间待定!!

数值计算方法课程设计

重庆邮电大学 数学与应用数学 专业 《数值计算方法》课程设计 姓名: 李金徽 王莹 刘姝楠 班级: 1131001 1131002 1131002 学号: 2010213542 2010213570 2010213571 设计时间: 2012-6-4 指导教师: 朱伟

一、课程设计目的 在科学计算与工程设计中,我们常会遇到求解线性方程组的问题,对于系数矩阵为低阶稠密矩阵的线性方程组,可以用直接法进行消元,而对于系数矩阵为大型稀疏矩阵的情况,直接法就显得比较繁琐,而迭代法比较适用。比较常用的迭代法有Jacobi 迭代与Gauss - seidel 迭代。本文基于两种方法设计算法,并比较他们的优劣。 二、课程设计内容 给出Jacobi 迭代法和Gauss-Seidel 迭代法求解线性方程组的算法思想和MATLAB 程序实现,并对比分析这两种算法的优劣。 三、问题的分析(含涉及的理论知识、算法等) Jacobi 迭代法 方程组迭代法的基本思想和求根的迭代法思想类似,即对于线性 方程组Ax = b( 其中n n n R b R R A ∈?∈,),即方程组 )1(2211222221211 1212111?? ???? ?=+?++??=+?++=+?++n n nn n n n n n n b x a x a x a b x a x a x a b x a x a x a 将系数矩阵A 写为 )2(000000 21122 12122 11U L D a a a a a a a a a A n n n n nn --≡??? ?? ? ? ??---- ??????? ??----??????? ??= 若选取D M =,则U L A M N +=-=,方程组)1(转化为等价方程组 b x U L Dx ++=)(

数值计算方法学习心得

数值计算方法学习心得 ------一个代码的方法是很重要,一个算法的思想也很重要,但 在我看来,更重要的是解决问题的方法,就像爱因斯坦说的内容比 思维本身更重要。 我上去讲的那次其实做了挺充分的准备,程序的运行,pdf文档,算法公式的推导,程序伪代码,不过有一点缺陷的地方,很多细节 没有讲的很清楚吧,下来之后也是更清楚了这个问题。 然后一学期下来,总的来说,看其他同学的分享,我也学习到 许多东西,并非只是代码的方法,更多的是章胜同学的口才,攀忠 的排版,小冯的深入挖掘…都是对我而言比算法更加值得珍惜的东西,又骄傲地回想一下,曾同为一个项目组的我们也更加感到做项 目对自己发展的巨大帮助了。 同时从这些次的实验中我发现以前学到的很多知识都非常有用。 比如说,以前做项目的时候,项目导师一直要求对于要上传的 文件尽量用pdf格式,不管是ppt还是文档,这便算是对产权的一种 保护。 再比如代码分享,最基础的要求便是——其他人拿到你的代码 也能运行出来,其次是代码分享的规范性,像我们可以用轻量级Ubuntu Pastebin,以前做过一小段时间acm,集训队里对于代码的分享都是推荐用这个,像数值计算实验我觉得用这个也差不多了,其 次项目级代码还是推荐github(被微软收购了),它的又是可能更 多在于个人代码平台的搭建,当然像readme文档及必要的一些数据 集放在上面都更方便一些。

然后在实验中,发现debug能力的重要性,对于代码错误点的 正确分析,以及一些与他人交流的“正规”途径,讨论算法可能出 错的地方以及要注意的细节等,比如acm比赛都是以三人为一小组,讨论过后,讲了一遍会发现自己对算法理解更加深刻。 然后学习算法,做项目做算法一般的正常流程是看论文,尽量 看英文文献,一般就是第一手资料,然后根据论文对算法的描述, 就是如同课上的流程一样,对算法进一步理解,然后进行复现,最 后就是尝试自己改进。比如知网查询牛顿法相关论文,会找到大量 可以参考的文献。 最后的最后,想说一下,计算机专业的同学看这个数值分析, 不一定行云流水,但肯定不至于看不懂写不出来,所以我们还是要 提高自己的核心竞争力,就是利用我们的优势,对于这种算法方面 的编程,至少比他们用的更加熟练,至少面对一个问题,我们能思 考出对应问题的最佳算法是哪一个更合适解决问题。 附记: 对课程的一些小建议: 1. debug的能力不容忽视,比如给一个关于代码实现已知错误的代码给同学们,让同学们自己思考一下,然后分享各自的debug方法,一步一步的去修改代码,最后集全班的力量完成代码的debug,这往往更能提升同学们的代码能力。 2. 课堂上的效率其实是有点低的,可能会给学生带来一些负反馈,降低学习热情。 3. 总的来说还是从这门课程中学到许多东西。 数值分析学习心得体会

数值分析大作业-三、四、五、六、七

大作业 三 1. 给定初值 0x 及容许误差 ,编制牛顿法解方程f (x )=0的通用 程序. 解:Matlab 程序如下: 函数m 文件:fu.m function Fu=fu(x) Fu=x^3/3-x; end 函数m 文件:dfu.m function Fu=dfu(x) Fu=x^2-1; end 用Newton 法求根的通用程序Newton.m clear; x0=input('请输入初值x0:'); ep=input('请输入容许误差:'); flag=1; while flag==1 x1=x0-fu(x0)/dfu(x0); if abs(x1-x0)

while flag1==1 && m<=10^3 x1=x0-fu(x0)/dfu(x0); if abs(x1-x0)=ep flag=0; end end fprintf('最大的sigma 值为:%f\n',sigma); 2.求下列方程的非零根 5130.6651()ln 05130.665114000.0918 x x f x x +??=-= ?-???解:Matlab 程序为: (1)主程序 clear clc format long x0=765; N=100; errorlim=10^(-5); x=x0-f(x0)/subs(df(),x0); n=1; while nerrorlim n=n+1; else break ; end x0=x; end disp(['迭代次数: n=',num2str(n)]) disp(['所求非零根: 正根x1=',num2str(x),' 负根x2=',num2str(-x)]) (2)子函数 非线性函数f function y=f(x) y=log((513+0.6651*x)/(513-0.6651*x))-x/(1400*0.0918); end

数值计算方法课程报告

课程报告 课程名称______《数值计算》 __ 学生学院_____机电工程学院___ 专业班级_____微电子(1)班____ 学号________ 学生姓名_______________ 指导教师_____ ________ XXXX年XX月XX日

姓 名: 线 学 号 : 订 装专 业:学院: 广东工业大学考试试卷( A ) 课程名称: 数值计算试卷满分100 分考试时间: 2015 年 12 月 26 日(第 17 周星期六) 题号一二三四五六七八九十总分 评卷得分 评卷签名 复核得分 复核签名 “数值计算”考试要求 “数值计算”考试以开卷形式进行。在“数值计算”课程考试日(2015 年12 月 19 日,第 12 周星期五)考试时间,在考试教室领取试题,在 2015 年12 月 26 日(第 17 周星期六)进行答辩。不参加答辩者将取消考试成绩。 “数值计算”考试结果要求独立在计算机上完成,可使用Matlab或 C 程序编程实现。考试结果将以报告书形式提交,内容包括对问题描述、计算程序以及算例、计算结果、分析组成。计算程序要求具有通用性,能够处理异常情况,可以输入问题、算法参数、算例及初始值,在计算过程中显示当前计算状态、计算完成后显示计算结果。上述内容将作为试卷成绩的主要评定依据。特别提醒,不得使用教师在讲课和实验时的范例作为考试结果。报告书具体格式参考毕业设计手册。 以考生学号命名的文件夹存放程序及报告书电子版,以班级为单位刻录在一张光盘中,与打印版报告书一起由班长和学习委员一起上交任课教师。 数值计算课程总成绩将由试卷成绩(70%)、平时成绩(30%)组成。

油藏数值模拟学习心得

通过了几节课的“油藏数值模拟课”的学习,我知道了“油藏数值模拟”是应用计算机研究油气藏中多相流体渗流规律的数值计算方法,它能够解决油气藏开发过程中难以解析求解的极为复杂的渗流及工程问题,是评价和优化油气藏开发方案的有力工具。它主要是让我们石油石油工程专业的学生掌握一些基本的油藏数值模拟技术和技巧,学习基本的油藏渗流数学模型及其解法、计算方法和应用方法,培养我们用计算机解决油藏开发问题的能力。 “油藏数值模拟”涉及的学科较多,利用数学知识和计算机知识较多,我认为是非常难的。虽然教师教的很认真也很耐心,我仍然不能跟着老师的节奏。因为一开始就知道这个软件很有实际应用价值,所以我也就特别的想好好的学习它。可惜现在我面临着考研这座大山,我实在是没有充分的时间课下来好好的温习与研究老师上课所讲的东西。很遗憾,后来老师讲的东西我有些就不会了。好在前三四节课讲的内容还学会了,学会了模拟三层的油层概况。也许这点知识对我以后的再次学习会有不错的基础作用吧!总之还是很感谢老师的耐心教导。 在学习的过程中,我觉得油藏原始参数,如渗透率、孔隙度等的收集,以及油藏原始数据是否齐全准确非常重要,尤其是一开始填date时的单位的选择,这些都关系到数值模拟的效果。如果原始资料很少,数值模拟的效果就不可能好。数值模拟方法越复杂,所需的原始资料也越多。收集资料时,如发现必需的资料不够或不准确,应采取补救措施。通常要求准备的参数包括:①油藏地质参数。产层构造图,油、气、水分布图,油层厚度、孔隙度、渗透率、原始含油饱和度的等值图等。②流体物理性质参数。地面性质和地层状态下的物性数据,原始压力和地层温度数据,对凝析气田还需要相图和相平衡的资料。③专项岩心分析资料。油水相渗透率曲线,油气相渗透率曲线,油层润湿性,吸入和排驱毛细管压力曲线;对碳酸盐岩孔隙裂缝双重介质储层,还需渗吸曲线。④单井和分层分区的生产数据和有关测试资料。⑤油田建设和经济分析的有关数据。 将收集的油藏地质资料进行系统整理后,要将油藏的地质特征模式化,以充分反映油藏的构造特征和沉积特征,如油层物理性质参数的分布、油气水的分布、油气水在地面和地下的性质、驱油动力、压力系统和地温梯度等。油藏地质模型是否符合实际情况,直接影响数值模拟成果的准确性。 由于人们对油田实际地质条件的认识有一定的限度,计算时所用的参数也就有一定的局限性,因此,第一次模拟计算的结果,如压力、产量、气油比、含水率等与油田实际生产状况常有较大的出入。必须进行分析,修改相关的计算参数,重新进行计算。通常,经过多次修改可使计算结果与实际生产历史基本相符,误差在允许范围以内。从工程应用的角度看,可认为此时所应用的计算参数,反映了油田地下的实际状况,使用这些参数来计算和预测油田未来的动态,能够达到较高的精度。在油田开采过程中这类历史拟合要进行多次,使油田的模型逐步更接近实际而得到更适用的结果。

数值分析大作业三 四 五 六 七

大作业 三 1. 给定初值 0x 及容许误差 ,编制牛顿法解方程f (x )=0的通用程序. 解:Matlab 程序如下: 函数m 文件:fu.m function Fu=fu(x) Fu=x^3/3-x; end 函数m 文件:dfu.m function Fu=dfu(x) Fu=x^2-1; end 用Newton 法求根的通用程序Newton.m clear; x0=input('请输入初值x0:'); ep=input('请输入容许误差:');

flag=1; while flag==1 x1=x0-fu(x0)/dfu(x0); if abs(x1-x0)

while flag==1 sigma=k*eps; x0=sigma; k=k+1; m=0; flag1=1; while flag1==1 && m<=10^3 x1=x0-fu(x0)/dfu(x0); if abs(x1-x0)=ep flag=0;

end end fprintf('最大的sigma 值为:%f\n',sigma); 2.求下列方程的非零根 5130.6651()ln 05130.665114000.0918 x x f x x +?? =-= ?-???解: Matlab 程序为: (1)主程序 clear clc format long x0=765; N=100; errorlim=10^(-5); x=x0-f(x0)/subs(df(),x0); n=1;

太原理工大学数值计算方法实验报告

本科实验报告 课程名称:计算机数值方法 实验项目:方程求根、线性方程组的直接解 法、线性方程组的迭代解法、代数插值和最 小二乘拟合多项式 实验地点:行勉楼 专业班级: ******** 学号: ********* 学生姓名: ******** 指导教师:李誌,崔冬华 2016年 4 月 8 日

y = x*x*x + 4 * x*x - 10; return y; } float Calculate(float a,float b) { c = (a + b) / 2; n++; if (GetY(c) == 0 || ((b - a) / 2) < 0.000005) { cout << c <<"为方程的解"<< endl; return 0; } if (GetY(a)*GetY(c) < 0) { return Calculate(a,c); } if (GetY(c)*GetY(b)< 0) { return Calculate(c,b); } } }; int main() { cout << "方程组为:f(x)=x^3+4x^2-10=0" << endl; float a, b; Text text; text.Getab(); a = text.a; b = text.b; text.Calculate(a, b); return 0; } 2.割线法: // 方程求根(割线法).cpp : 定义控制台应用程序的入口点。// #include "stdafx.h" #include"iostream"

心得体会 使用不同的方法,可以不同程度的求得方程的解,通过二分法计算的程序实现更加了解二分法的特点,二分法过程简单,程序容易实现,但该方法收敛比较慢一般用于求根的初始近似值,不同的方法速度不同。面对一个复杂的问题,要学会简化处理步骤,分步骤一点一点的循序处理,只有这样,才能高效的解决一个复杂问题。

数值分析心得体会

数值分析心得体会 篇一:学习数值分析的经验 数值分析实验的经验、感受、收获、建议班级:计算131 学号:XX014302 姓名:曾欢欢 数值分析实验主要就是学习MATLAB的使用以及对数值分析类容的应用,可以使学生更加理解和记忆数值分析学得类容,也巩固了MATLAB的学习,有利于以后这个软件我们的使用。在做实验中,我们需要具备较好的编程能力、明白MATLAB软件的使用以及掌握数值分析的思想,才能让我们独立自主的完成该作业,如果是上述能力有限的同学,需要借助MATLAB的书以及网络来完成实验。数值分析实验对于我来说还是有一定难度,所以我课下先复习了MATLAB的使用方法以及编写程序的基本类容,借助互联网和同学老师资源完成了数值分析得实验的内容。在实验书写中,我复习了各种知识,所以我认为这门课程是有必要且是有用处的,特别是需要处理大量实验数据的人员,很有必要深入了解学习它,这样在以后的工作学习里面就减少了很多计算问题也提高了实验结果的精确度。 学习数值分析的经验、感受、收获、建议数值分析的内容包括插值与逼近,数值微分与数值积分,非线性方程与线性方程组的数值解法,矩阵的特征值与特征向量计算,常微分方程数值解等。

首先我们必须明白数值分析的用途。通常所学的其他数学类学科都是由公式定理开始,从研究他们的定义,性质再到证明与应用。但实际上,尤其是工程,物理,化学等其它具体的学科。往往我们拿到 手的只是通过实验得到的数据。如果是验证性试验,需要代回到公式 进行分析,验证。但往往更多面对的是研究性或试探性试验,无具体 公式定理可代。那就必须通过插值,拟合等计算方法进行数据处理以得到一个相对可用的一般公式。还有许多计算公式理论上非常复杂,在工程中不实用,所以必须根据实际情况把它转化成多项式近似表 示。学习数值分析,不应盲目记公式,因为公事通常很长且很乏味。其次,应从公式所面临的问题以及用途出发。比如插值方法,就 是就是把实验所得的数据看成是公式的解,由这些解反推出一个近似公式,可以具有局部一般性。再比如说拟合,在插值的基础上考虑实 验误差,通过拟合能将误差尽可能缩小,之后目的也是得到一个具有 一定条件下的一般性的公式。。建议学习本门课程要结合知识与实际,比如在物理实验里面很多

数值计算方法大作业

目录 第一章非线性方程求根 (3) 1.1迭代法 (3) 1.2牛顿法 (4) 1.3弦截法 (5) 1.4二分法 (6) 第二章插值 (7) 2.1线性插值 (7) 2.2二次插值 (8) 2.3拉格朗日插值 (9) 2.4分段线性插值 (10) 2.5分段二次插值 (11) 第三章数值积分 (13) 3.1复化矩形积分法 (13) 3.2复化梯形积分法 (14) 3.3辛普森积分法 (15) 3.4变步长梯形积分法 (16) 第四章线性方程组数值法 (17) 4.1约当消去法 (17) 4.2高斯消去法 (18) 4.3三角分解法 (20)

4.4雅可比迭代法 (21) 4.5高斯—赛德尔迭代法 (23) 第五章常积分方程数值法 (25) 5.1显示欧拉公式法 (25) 5.2欧拉公式预测校正法 (26) 5.3改进欧拉公式法 (27) 5.4四阶龙格—库塔法 (28)

数值计算方法 第一章非线性方程求根 1.1迭代法 程序代码: Private Sub Command1_Click() x0 = Val(InputBox("请输入初始值x0")) ep = Val(InputBox(请输入误差限ep)) f = 0 While f = 0 X1 = (Exp(2 * x0) - x0) / 5 If Abs(X1 - x0) < ep Then Print X1 f = 1 Else x0 = X1 End If Wend End Sub 例:求f(x)=e2x-6x=0在x=0.5附近的根(ep=10-10)

1.2牛顿法 程序代码: Private Sub Command1_Click() b = Val(InputBox("请输入被开方数x0")) ep = Val(InputBox(请输入误差限ep)) f = 0 While f = 0 X1 = x0 - (x0 ^ 2 - b) / (2 * b) If Abs(X1 - x0) < ep Then Print X1 f = 1 Else x0 = X1 End If Wend End Sub 例:求56的值。(ep=10-10)

MATLAB与数值分析课程总结

MATLAB与数值分析课程总结 姓名:董建伟 学号:2015020904027 一:MATLAB部分 1.处理矩阵-容易 矩阵的创建 (1)直接创建注意 a中括号里可以用空格或者逗号将矩阵元素分开 b矩阵元素可以是任何MATLAB表达式,如实数复数等 c可以调用赋值过的任何变量,变量名不要重复,否则会被覆盖 (2)用MATLAB函数创建矩阵如:a空阵[] b rand/randn——随机矩阵 c eye——单位矩阵 d zeros ——0矩阵 e ones——1矩阵 f magic——产生n阶幻方矩阵等 向量的生成 (1)用冒号生成向量 (2)使用linspace和logspace分别生成线性等分向量和对 数等分向量 矩阵的标识和引用 (1)向量标识 (2)“0 1”逻辑向量或矩阵标识 (3)全下标,单下标,逻辑矩阵方式引用 字符串数组 (1)字符串按行向量进行储存 (2)所有字符串用单引号括起来 (3)直接进行创建 矩阵运算 (1)注意与数组点乘,除与直接乘除的区别,数组为乘方对应元素的幂

(2)左右除时斜杠底部靠近谁谁是分母 (3)其他运算如,inv矩阵求逆,det行列式的值, eig特征值,diag 对角矩阵 2.绘图-轻松 plot-绘制二维曲线 (1)plot(x)绘制以x为纵坐标的二维曲线 plot(x,y) 绘制以x为横坐标,y为纵坐标的二维曲线 x,y为向量或矩阵 (2)plot(x1,y1,x2,y2,。。。。。。)绘制多条曲线,不同字母代替不同颜色:b蓝色,y黄色,r红色,g绿色 (3)hold on后面的pl ot图像叠加在一起 hold off解除hold on命令,plot将先冲去窗口已有图形(4)在hold后面加上figure,可以绘制多幅图形 (5)subplot在同一窗口画多个子图 三维图形的绘制 (1)plot3(x,y,z,’s’) s是指定线型,色彩,数据点形的字 符串 (2)[X,Y]=meshgrid(x,y)生成平面网格点 (3)mesh(x,y,z,c)生成三维网格点,c为颜色矩阵 (4)三维表面处理mesh命令对网格着色,surf对网格片着色 (5)contour绘制二维等高线 (6)axis([x1,xu,y1,yu])定义x,y的显示范围 3.编程-简洁 (1)变量命名时可以由字母,数字,下划线,但是不得包含空格和标点 (2)最常用的数据类型只有双精度型和字符型,其他数据类型只在特殊条件下使用 (3)为得到高效代码,尽量提高代码的向量化程度,避免使用循环结构

数值计算(分析)实.docx

数值计算 ( 分析 ) 实验报告 2

南昌航空大学数学与信息科学学院 实验报告 课程名称:《数值计算方法》 实验名称:曲线拟合 实验类型:验证性■综合性□设计性□ 实验室名称:数学实验室 班级学号:09072113 学生姓名:邢宪平 任课教师(教师签名): 成绩:

一、实验目的 实验目的:实验目的:了解函数逼近与曲线拟合的基本原理,并且运用 MATLAB 软件进行实践操作。 二、实验原理、程序框图、程序代码等 实验题目: 题目 1:试分别用抛物线y a bx cx2和指数曲线 y ae bx拟合下列数据 x i1 1.52 2.53 3.54 4.5 y i33.479.50122.65159.05189.15214.15238.65252.50 x i5 5.56 6.577.58 y i267.55280.50296.65301.40310.40318.15325.15 并比较两个拟合函数的优劣。 题目 2:已知实验数据如下: x i 1.02.5 3.5 4.0 y i 3.81.5026.0 33.0 试用形如 y a bx 2的抛物线进行最小二乘拟合。 实验原理: 1、逼近方式 2n,

V( f , P n ) || F P n || max | f ( x) P n ( x) | 为 f (x) 与 P n ( x) | 在 [a, b] 上的偏差。 a x b 若存在 P n * (x) H n ,使得 V( f , P n * ) || f P n * || inf max | f ( x) P n ( x) | 则称 P n * ( x) P n H n a x b 是 f (x) 在 [ a, b] 上的最佳一致逼近多项式。 假设 f (x) C[ a, b] 及 C[ a, b] 的一个子集 span{ 0 (x), 存在 S * (x) ,使 || f (x) S * (x) ||2 2 S( x) ||22 b min || f (x) min S( x ) S (x ) a 1( x),,... n (x)} ,若 ( x)[ f (x) S( x)] 2 dx 则称 S * (x) 是 f (x) 在子集 C[ a, b] 中的最佳平方逼近数。 2、曲线拟合 上述函数的最佳平方逼近法中, 若 f (x) 是以一组离散点集的形式给出的, 即给出了函数 f (x) 在一些离 散点上的值 {( x i , y i ), i 0,1,..., m } ,则该方法就是所说的曲线 拟合。取 ( f , S n ) || f S n ||2 m yi ] 而 S( x) a 0 0 ( x) a 1 1( x) ... a n n ( x) ,这就 V 2 2 i 0 是最小二乘逼近。 由上可知,最小二乘逼近即求多元函数 I (a 0 ,a 1,...a n ) || f S n ||22 的最小值问题。由取最小值的必要条 ( ) ( ) ... ( ) a 0 ( y, ) 件,可得法方程 ( ) ( ) ... ( n ) a 1 ( y, ) .................. ( n ) ( n ) ... ( n n ) a n ( y, n ) 实际计算时,为了方便,通常取 span{ 0 ( x), 1 (x),,... n (x)} 为简单多项式, 如 span{1, x, x 2 ,..., x n } ,得 到 n 次拟合多项式,但当 n 较大时,方程组往往是

数值分析大作业

数值分析报大作业 班级:铁道2班 专业:道路与铁道工程 姓名:蔡敦锦 学号:13011260

一、序言 该数值分析大作业是通过C语言程序编程在Microsoft Visual C++ 6.0编程软件上运行实现的。本来是打算用Matlab软间来计算非线性方程的根的。学习Matlab也差不多有一个多月了,感觉自己编程做题应该没什么问题了;但是当自己真心的去编程、运行时才发现有很多错误,花了一天时间修改、调试程序都没能得到自己满意的结果。所以,我选择了自己比较熟悉的C程序语言来编程解决非线性的求值问题,由于本作业是为了比较几种方法求值问题的收敛速度和精度的差异,选择了一个相对常见的非线性函数来反映其差异,程序运行所得结果我个人比较满意。编写C语言,感觉比较上手,程序出现问题也能比较熟练的解决。最终就决定上交一份C程序语言编程的求值程序了!

二、选题 本作业的目的是为了加深对非线性方程求根方法的二分法、简单迭代法、、牛顿迭代法弦截法等的构造过程的理解;能将各种方法的算法描述正确并且能够改编为程序并在计算机上实现程序的正确合理的运行,能得到自己满意的结果,并且能调试修改程序中可能出现的问题和程序功能的增减修改。本次程序是为了比较各种方法在求解同一非线性方程根时,在收敛情况上的差异。 为了达到上面的条件我选择自己比较熟悉的语言—C语言来编程,所选题目为计算方程f(x)=x3-2x-5=0在区间[2,3]内其最后两近似值的差的绝对值小于等于5 ?的根的几种方法的比较。 110- 本文将二分法、牛顿法、简单迭代法、弦截法及加速收敛法这五种方法在同一个程序中以函数调用的方式来实现,比较简洁明了,所得结果能很好的比较,便于分析;发现问题和得出结论。

数值分析学习心得体会.doc

数值分析学习感想 一个学期的数值分析,在老师的带领下,让我对这门课程有了深刻的理解和感悟。这门 课程是一个十分重视算法和原理的学科,同时它能够将人的思维引入数学思考的模式,在处 理问题的时候,可以合理适当的提出方案和假设。他的内容贴近实际,像数值分析,数值微 分,求解线性方程组的解等,使数学理论更加有实际意义。 数值分析在给我们的知识上,有很大一部分都对我有很大的帮助,让我的生活和学习有 了更加方便以及科学的方法。像第一章就讲的误差,在现实生活中,也许没有太过于注意误 差,所以对误差的看法有些轻视,但在学习了这一章之后,在老师的讲解下,了解到这些误 差看似小,实则影响很大,更如后面所讲的余项,那些差别总是让人很容易就出错,也许在 别的地方没有什么,但是在数学领域,一个小的误差,就很容易有不好的后果,而学习了数 值分析的内容,很容易就可以将误差锁定在一个很小的范围内,在这一范围内再逼近,得出 的近似值要准确的多,而在最开始的计算中,误差越小,对后面的影响越小,这无疑是好的。 数值分析不只在知识上传授了我很多,在思想上也对我有很大的影响,他给了我很多数 学思想,很多思考的角度,在看待问题的方面上,多方位的去思考,并从别的例子上举一反三。像其中所讲的插值法,在先学习了拉格朗日插值法后,对其理解透彻,了解了其中 的原理和思想,再学习之后的牛顿插值以及三次样条插值等等,都很容易的融会贯通,很容 易的就理解了其中所想,他们的中心思想并没有多大的变化,但是使用的方式却是不同的, 这不仅可以学习到其中心内容,还可以去学习他们的思考方式,每个不同的思考方式带来的 都是不同的算法。而在看待问题上,不同的思考方式总是可以快速的全方位的去看透彻问题, 从而知道如何去解决。 在不断的学习中,知识在不断的获取,能力在不断的提升,同时在老师的不懈讲解下, 我逐渐的发现数值分析所涵盖的知识面特别的广泛,而我所需要学习的地方也更加的多,自 己的不足也在不断的体现,我知道这只是我刚刚接触到了数学的那一角,在以后我还会接触 到更多,而这求知的欲望也在不停的驱赶我,学习的越多,对今后的生活才会有更大的帮助。 计算132 2013014923 张霖篇二:数值分析学习报告 数值分析学习心得报告 班级:11级软工一班 姓名: * * * 学号: 20117610*** 指导老师:* * * 学习数值分析的心得体会 无意中的一次选择,让我接触了数值分析。 作为这学期的选修课,我从内心深处来讲,数值分析真的有点难。感觉它是在高等数学 和线性代数的基础上,又加深了探讨。虽然这节课很难,我学的不是很好,但我依然对它比 较感兴趣。下面就具体说说我的学习体会,让那些感兴趣的同学有个参考。 学习数值分析,我们首先得知道一个软件——matlab。matrix laboratory,即矩阵实验 室,是math work公司推出的一套高效率的数值计算和可视化软件。它是当今科学界最具影 响力、也是最具活力的软件,它起源于矩阵运算,并高速发展成计算机语言。它的优点是强 大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面、便捷的与其他程序和语 言接口。 根据上网搜集到的资料,你就会发现matlab有许多优点: 首先,编程简单使用方便。到目前为止,我已经学过c语言,机器语言,java语言,这

数值分析读后感

数值分析读后感 M060112101 刘洪兰 研究生生活的第一个半年快要结束了,回想一下这半年是个学习基础知识的忙碌的半年,作为基础课程,我自认为数值分析是最重要的一门课程,不论是理论分析还是实际应用它都有无可替代的作用,原来很多无法解决的实际问题,学了数值分析之后才感觉找到了另一个灵巧而又准确的解决方法,现在就我这半年对数值分析的学习简单的谈一下感想。 数值分析插值法的引入,帮我们解决了已知一些函数点求一些在这些已知点附近的未知点的问题,他能构造出一个能很好拟合这些已知点性质的函数,并且能根据精度的要求做出灵活的构造,使计算变得更加精确更加简单。当函数只在有限点集上给定函数值,要求在包含该点集的区间内用公式给出函数的表达式,这一类的问题是函数逼近问题,最佳二次逼近和最小二乘法分别从连续和离散的角度用相对简单的表达式对复杂的函数做出了很好的逼近。在一些数值积分求法复杂的时候,数值分析提供的梯形公式和辛普森公式用一些特殊点的和对积分作出估计,是原来无法运算的积分问题获得很好的解答,另外还有更精确的复合中点公式、复合梯形公式、复合辛普森公式,当然还有已正交基为基底的对一些问题更加精确的高斯公式。 在一些实际问题的线性方程的求解中,未知数个数有时候会很多,而且零元素也较多时,普通的求解方法就显得不适用了,在这个时候,用迭代法求解便成了最佳的选择。数值分析给我们三种常用的迭代方法:雅克比迭代、高斯赛德尔迭代和超松弛迭代,每一种都是很好地解决方法。在非线性方程与方程组的数值求解问题中,有方法简单但计算步数相对比较多的二分法和不动点迭代求法,也有应用更加广泛的牛顿法和弦截法,使原本复杂的非线性问题变得相对非常简单。矩阵特征值的计算问题,用乘幂法求最大特征值和特征向量,用反幂法求最小特征值和特征向量,用幂方法还可以求出接近数值p的特征值和特征向量,给我们一个全新的求解特征值和特征向量的方法。最后的欧拉法,梯形法,改进的欧拉法,还有经典的标准四阶龙格库塔方法都是用于常微分方程初值问题的数值解法。 除了以上这些具体的数值解法之外,数值分析还给出了我们很多关于误差估计的概念,这在实际问题中很重要,因为实际问题都会有一定的精度要求,我感觉这也是我学习数值分析之后的一个很大的收获,对误差有了一个比之前更加系统的了解,也认识到误差在解决实际问题中的影响。 总之,经过一学期对数值分析的学习,我感觉收获很多,不仅使自己解决问题的思路得到开拓,也培养了自己严谨的思维习惯,但是,同时我也感觉还有数值分析的一些方法自己没能完全理解,我相信自己对数值分析的学习不会随着考试的结束而结束的,在以后的学习中,我还要继续深化对它的学习,最后谢谢老师这学期对我们细心又耐心的数值讲解,在您的帮助下我才能学到这么多东西,谢谢老师。这就是我这学期对数值分析学习后的感想。

数值分析课程报告

插值法和多项式拟合的研究 摘要 在科研和生产实践中,常常需要通过一组测量数据来寻找变量x与y的函数关系近似表达式。解决这类问题的方法有两种:一种是插值法,另一种是拟合法。插值法的原理是用一个简单函数逼近被计算函数,然后用该简单函数的函数值近似替代被计算函数的函数值。拟合法能够是从给定的一组实验数据出发,寻找函数的一个近似表达式,该近似表达式能反映数据的基本趋势而又不一定过全部的点,即曲线拟合。本文主要介绍拉格朗日插值法、埃尔米特插值法、三次样条插值法以及基于最小二乘法的多项式拟合。 关键词:拉格朗日插值,埃尔米特插值,样条插值,多项式拟合

1方法的意义 在许多实际问题及科学研究中,因素之间往往存在着函数关系,然而,这种关系经常很难有明显的解析表达,通常只是由观察与测试得到一些离散数值。有时,即使给出了解析表达式,却由于表达式过于复杂,不仅使用不便,而且不易于进行计算与理论分析。解决这类问题的方法有两种:一种是插值法,另一种是拟合法。插值法的原理是用一个简单函数逼近被计算函数,然后用该简单函数的函数值近似替代被计算函数的函数值。它要求给出函数的一个函数表,然后选定一种简单的函数形式,比如多项式、分段线性函数及三角多项式等,通过已知的函数表来确定一个简单的函数()x ?作为()f x 的近似,概括地说,就是用简单函数为离散数组建立连续模型。插值法在实际应用中非常广泛,但是它也有明显的缺陷,一是测量数据常常带有测试误差,而插值多项式又通过所有给出的点,这样就是插值多项式保留了这些误差;二是如果实际得到的数据过多,则必然得到次数较高的插值多项式,这样近似的效果并不理想。拟合法能够很好的解决这些问题,它从给定的一组实验数据出发,寻找函数的一个近似表达式y=()x ?,该近似表达式能反映数据的基本趋势而又不一定过全部的点,即曲线拟合的问题,函数的近似表达式y=()x ?称为拟合曲线。常用最小而二乘法来确定拟合曲线。 2插值法的介绍 2.1 插值法定义 设 f (x )为[a ,b ]上的函数,在互异点n x x x ,...,,10处的函数值分别为 )(),...,(),(10n x f x f x f ,构造一个简单函数 ?(x ) 作为函数 f (x ) 的近似表达式y = f (x ) ≈ ?(x ),使 )()(i i x f x =? , i =0, 1, 2, …,n (1.0) 则称?(x ) 为关于节点n x x x ,...,,10的插值函数;称n x x x ,...,,10 为插值节点;称 ))((i i x f x , i =1,2,… , n 为插值点;f (x ) 称为被插值函数。式(1.0)称为插值条 件。这类问题称为插值问题。插值的任务就是由已知的观测点,为物理量(未知量)建立一个简单的、连续的解析模型,以便能根据该模型推测该物理量在非观测点

数值分析 第一章 学习小结

数值分析 第1章绪论 --------学习小结 一、本章学习体会 通过本章的学习,让我初窥数学的又一个新领域。数值分析这门课,与我之前所学联系紧密,区别却也很大。在本章中,我学到的是对数据误差计算,对误差的分析,以及关于向量和矩阵的范数的相关内容。 误差的计算方法很多,对于不同的数据需要使用不同的方法,或直接计算,或用泰勒公式。而对于二元函数的误差计算亦有其独自的方法。无论是什么方法,其目的都是为了能够通过误差的计算,发现有效数字、计算方法等对误差的影响。 而对误差的分析,则是通过对大量数据进行分析,从而选择出相对适合的算法,尽可能减少误差。如果能够找到一个好的算法,不仅能够减少计算误差,同时也可以减少计算次数,提高计算效率。 对于向量和矩阵的范数,我是第一次接触,而且其概念略微抽象。因此学起来较为吃力,仅仅知道它是向量与矩阵“大小”的度量。故对这部分内容的困惑也相对较多。 本章的困惑主要有两方面。一方面是如何能够寻找一个可靠而高效的算法。虽然知道算法选择的原则,但对于很多未接触的问题,真正寻找一个好的算法还是很困难。另一方面困惑来源于范数,不明白范数的意义和用途究竟算什么。希望通过以后的学习能够渐渐解开自己的疑惑。 二、本章知识梳理

2.1 数值分析的研究对象 数值分析是计算数学的一个重要分支,研究各种数学问题的数值解法,包括方法的构造和求解过程的理论分析。它致力于研究如何用数值计算的方法求解各种基本数学问题以及在求解过程中出现的收敛性,数值稳定性和误差估计等内容。 2.2误差知识与算法知识 2.2.1误差来源 误差按来源分为模型误差、观测误差、截断误差、舍入误差与传播误差五种。其中模型误差与观测误差属于建模过程中产生的误差,而截断误差、舍入误差与传播误差属于研究数值方法过程中产生的误差。 2.2.2绝对误差、相对误差与有效数字 1.(1)绝对误差e指的是精确值与近似值的差值。 绝对误差:

谈《数值分析》课程教学体会

谈《数值分析》课程教学体会 [摘要] 伴随着计算机技术的飞速发展,科学与工程计算已经成为最重要的科学研究方法和手段之一。而数值分析就是研究科学计算中各种数学问题求解的数值计算方法。 [关键词] 数值分析计算机应用课程教学 伴随着计算机技术的飞速发展,科学与工程计算已经成为最重要的科学研究方法和手段之一。而数值分析就是研究科学计算中各种数学问题求解的数值计算方法。数值分析应用广泛,很多工科院校本科生及硕士研究生都开设了本门课程。因此,作为教师如何将课程讲授好,使得学生在有限的时间内掌握本门课程的基本知识显得尤为重要。 一、引导学生注重掌握数值分析的基本思想 数值分析是计算数学的一个分支,它不像纯数学那样只研究数学本身的理论,而是把理论与计算紧密结合,着重研究面向计算机的,能够解决实际问题的数值计算方法及其理论。简单的说,数值分析的主要工作就是寻求适合计算机计算的方法并分析方法的好坏,也就是我们所说的误差分析、稳定性分析、收敛性分析等。涉及的章节主要包括三个部分:数值代数、数值逼近、微分方程数值解法,每部分都包含大量的公式和算法。虽然每章所授内容均不同,但是他们的共同思想均是相同的。因此在教学过程当中我们教师要不断引导学生从数值分析的基本思想出发理解并掌握知识点,而非死记硬背公式及算法,后者只会让学生对本门课程产生厌恶情绪,而前者却能激发学生学习的主动性,培养学生的创造性和应用能力。 二、合理安排实验课 本门课程是与计算机紧密相连的,而实验课能帮助学生更好的理解所学的理论知识并能激发学生的创新能力。笔者根据近几年的教学经验发现根据学生所在的专业情况,安排适当学时的上机实验,通过让学生独立完成分析问题,解决问题的过程,使学生加深对数值分析方法和技巧的理解,掌握数值分析的基本原理和计算技能,达到理论与实践相结合的理想统一。为了确保每名学生都能认真独立完成实验,教师可根据具体知识点设计若干题目,让学生随机抽取题目,并在规定时间内完成实验报告。对于应用性较强的题目,教师还可以组织学生分组进行讨论,通过讨论学生可以发现自己对哪些知识掌握的还不够好,从而激发学习的主动性,与此同时也培养了学生的团队合作意识。 三、课堂上安排适当的知识补充与例题讲解 由于数学课程本身理论性较强,多数学生对数学类课程兴趣不大,而数值分析课程本身具有一定的难度,主要是针对大三及其以上的学生。学习本门课程需

数值计算方法实验报告(例)讲解

实验报告 一、实验目的 二、实验内容 三、实验环境 四.实验方法 五、实验过程 1实验步骤 2 关键代码及其解释 3 调试过程 六、实验总结 1.遇到的问题及解决过程 2.产生的错误及原因分析 3.体会和收获。 七、程序源代码: 八、教师评语

实验报告 一.试验目的:练习用数值方法求解给定的非线性方程。 二.实验内容:求解人口方程: )1(5 .43e 1004.156-+ =λλλ e 要求误差小于410-。 三.实验环境:PC 计算机,FORTRAN 、C 、C ++、VB 任选一种。 四.实验方法:牛顿法 牛顿法简述:牛顿法是一种特殊的迭代法,其迭代公式为: ,2,1,0,) () (1='- =+k x f x f x x k k k k , 当数列{}k x 收敛时,其极限值x 即为方程的解。 定理:给定方程],[,0)(b a x x f ∈= 1)设0)()(''x f x f ; 则牛顿法产生的序列{}k x 收敛于0)(=x f 在],[b a 内的唯一解x 。 五.实验过程: 1.编程: 用C 语言编出牛顿法的源程序。 2. 开机, 打开C 语言编译程序,键入所编程序源代码. 3. 调试程序, 修改错误至能正确运行. 六.实验总结: (1)牛顿法收敛速度快,但初值不容易确定,往往由于初值取得

不当而使迭代不收敛或收敛慢,但若能保证)()(1+>K K x f x f (称为下山条件),则有可能收敛。把新的近似值看作初值的话会比原来的取得好,有可能落入局部收敛的邻域。 (2)牛顿法要求)(x f '在x 附近不为零。亦即x 只能是单根, 不能求重根。可用重根加速收敛法求重根。 (3)牛顿法的每一步迭代中,都要计算一次导数值,若计算)(x f '比计算函数的近似值要麻烦的多。为了避免求导数,可用差商近似代替微商 1 1) ()()(----='K K K K K x x x f x f x f 此时牛顿迭代法改为 )() ()() (111--+--- =K K K K K K K x x x f x f x f x x . (4) 由于人口方程来源于实际问题, λ代表人口增长率, 其真实 值不会太大, 初值不应取得过大.否则会得到该方程的另外一个解 七、程序源代码: #include #define ep 1e-4 float f (float x) { float y; y=100*exp(x)+43.5*(exp(x)-1)/x-156.4; return(y); } float df (float x) { float y; y=100*exp(x)+43.5*( x*exp(x)-exp(x)+1)/(x*x); return(y); } float root(float x) { float y; if (fabs)f

相关文档