计算方法复习提纲

计算方法复习提纲
计算方法复习提纲

数值计算方法复习提纲

第一章 数值计算中的误差分析 1.了解误差及其主要来源,误差估计;

2.了解误差(绝对误差、相对误差)和有效数字的概念及其关系;

3.掌握算法及其稳定性,设计算法遵循的原则。

1、 误差的来源 模型误差 观测误差 截断误差 舍入误差 2误差与有效数字

绝对误差 E (x )=x-x *

绝对误差限ε εε+≤≤-**x x x

相对误差 ***/)(/)()(x x x x x x x E r -≈-=

有效数字

m n a a a x 10.....021*?±=

n m x x -?≤

-102

1

*,称*x 有n 位有效数字。 有效数字与误差关系

(1) m 一定时,有效数字n 越多,绝对误差限越小; (2)

*x 有n 位有效数字,则相对误差限为)1(1

1021

)(--?≤

n r a x E 。 选择算法应遵循的原则

1、 选用数值稳定的算法,控制误差传播; 例 ?=

101dx e x e

I x

n n

e

I nI I n n 1

1101

-

=-=- △!n x n

=△x 0

2、 简化计算步骤,减少运算次数;

3、 避免两个相近数相减,和接近零的数作分母; 避免

第二章 线性方程组的数值解法

1.了解Gauss 消元法、主元消元法基本思想及算法; 2.掌握矩阵的三角分解,并利用三角分解求解方程组; (Doolittle 分解;Crout 分解;Cholesky 分解;追赶法)

3.掌握迭代法的基本思想,Jacobi 迭代法与Gauss-Seidel 迭代法;

4.掌握向量与矩阵的范数及其性质,迭代法的收敛性及其判定 。

本章主要解决线性方程组求解问题,假设n 行n 列线性方程组有唯一解,如何得到其解?

??

???

?

?=+++=+++=+++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 (22112222212111212111)

两类方法,第一是直接解法,得到其精确解;

第二是迭代解法,得到其近似解。

一、 Gauss 消去法 1、 顺序Gauss 消去法 记方程组为:

???????=+++=+++=+++)

1()1(2

)1(21)1(1)1(2

)1(22)1(221)1(21)

1(1)1(12)

1(121)1(11......

......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

消元过程:

经n-1步消元,化为上三角方程组

??

????

?=+++=+=)()(2)(21)(1)

2(22

)2(221)2(21)1(11)

1(11......n n

n n nn n n n n b x a x a x a b x a x a b x a

第k步 若0)

(≠k kk

a

n k j i n k b a a b

b

a a a a

a

k k k kk

k ik

k i

k i

k kj k kk

k ik k ij

k ij

,....,1,1,...1)()()()()1()()()()()1(+=-=-=-=++

回代过程:

??

?

??--=-

==∑+=n

i j i ii j i ij i i i

n nn

n n n n n i a x a b x a b x 1

)

()()()

()()

1,...2,1(/)(/

2、Gauss —Jordan消去法

避免回代,消元时上下同时消元 3、Gauss 列主元消去法

例 :说明直接消元,出现错误

?

?

?=+=+32

200001.02121x x x x 由顺序Gauss 消去法,得0,112≈≈x x ;

Gauss 列主元消去法原理:

每步消元前,选列主元,交换方程。 算法:

将方程组用增广矩阵[]()(1)

ij n n A b a +=M 表示。 (1)消元过程: 对k=1,2,n-1, 选主元,找{,1,,}k i k k n ∈+???使得

,max k i k ik

k i n

a a ≤≤=

如果,0k

i k

a =,则矩阵A 奇异,程序结束;否则执行3。

如果k i k ≠,则交换第k 行与第k i 行对应的元素位置,

,,, 1.k kj i j a a j k n ?=+g g g

消元,对i=k+1, L

,n,计算

,ik

ik kk

a l a =

对j=L+1, L

,n+1,计算

ij ij ik kj a a l a =-

(2)回代过程: 1.若0,nn a =则矩阵A 奇异,程序结束;否则执行。

2

,1

;1,,2,1,n n n nn

a x i n a +=

=-L 对计算

,11n

i n ij j j i i ii

a a x x a +=+??-∑ ?

?

?=

举例说明。 4、消元法应用 (1)行列式计算; (2)矩阵求逆。

二、利用矩阵三角分解求解线性方程组 1、求解原理

线性方程组写成矩阵形式为: AX=b

若A=LU ,则LUX= b , 记UX=Y 则LY= b

若L 、U 为特殊矩阵,则求解线性方程组变为解两个特殊线性方程组问题。

2、 Doolittle 分解

L 为下三角矩阵, U 为上三角矩阵,不一定能分解,分解也不一定唯一; 设L 或U 是单位三角矩阵, 若能分解,则可分解唯一. L 是单位下三角矩阵,称为Doolittle 分解; U 是单位上三角矩阵,称为Crout 分解;

定理: n 阶矩阵A 有唯一分解的充要条件为A 的前n-1阶主子式都不为0.

Doolittle 分解算法:

??

???

?

?

?

????????????????=

??????????????nn n n n n nn n n n n u u u u u u l l l a a a a a a a a a ............1............11............

(222112)

1121212

1

2222111211 由矩阵乘法:

∑==n

k kj

ik ij u l a 1

得到:

∑-=+=-=1

1

;,...1,k r rj

kr kj kj n k k j u l a u

n k k i u u l a l k r kk

rk ir ik ik ,...1,/)(1

1

+=-=∑-=

算法特点:先计算U 的行,再计算L 的列,交替进行;存储时可用紧凑格式。 矩阵分解后,解两个三角方程组: LY= b ,UX=Y

?????

=-==∑-=1

111,...3,2i k k

ik i i n

i y

l b y b y

∑+=-=-

=n

i k ii

k ik

i i n n i u x u

y x 1

1,...1,/)(

3、Crout 分解

若L 为下三角矩阵,U 是单位上三角矩阵,则称Crout 分解; 算法特点:先计算L 的列,再计算U 的行,交替进行。 4、正定对称矩阵的平方根法(Cholesky 分解) (1) 正定对称矩阵性质与判定:

定义:是n 阶对称矩阵,若对任意非零向量

n R X ∈,有0>AX X T ,则称A 为正定对称矩阵;

判定:A 为n 阶正定对称矩阵充要条件A 的各阶顺序主子式大于0。 (2) Cholesky 分解

定理:设A 为n 阶正定对称矩阵,则存在唯一主对角线元素都是正数的下三角阵L ,使得

T LL A =.

Cholesky 分解算法:

??

???

??

?????????????????=

??????????????nn n n nn n n nn n n n n l l l l l ll l l l l l l a a a a a a a a a ..................

..................

(222112)

112

122

21112

1

2222111211 2

11

12

)

(∑-=-=j k jk

jj jj l a l

∑-=-=1

1

/)(j k jj

jk ik ij ij l l l a l

n

j j i n j ,...2,1;

,...2,1++==

5、 追赶法

三对角矩阵的特殊分解

??????

???

?

?

??

???????????????=????????

?

???????

?

?----n n C n n n

n n n u c u u c u l l l b a c b a c b a c b a c b 31

2

1

1

3211

13

332

2

211......

1......111....

2

n i c

l b u u a l b u i i i i

i i i ,...3,2/111

1=???

??-===--

三对角方程组的追赶法:

追的过程 LY=D

??

?

=-==-n i y l d y d y i i i i ,...3,21

11

赶的过程 UX=Y

??

?--=-==+1,....,2,1/)(/1n n i u x c y x u y x i

i i i i n

n n

§2 线性方程组的迭代解法

一、 Jacobi 迭代公式 例:

?????

-

=+=+21

2

12

1212121x x x x 其解为 1,121-==x x 方程变形得到迭代公式

??

???-

-=+-=++21212121)(1)1(2)(2)

1(1k k k k x x x x 给初值???? ??=00)0(X 计算,观察解的变化。 一般地,对线性方程组

??

???

?

?=+++=+++=+++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 (2211222221211)

1212111

若0≠ii

a ,则可从第i 个方程中解出i x ,得到Jacobi 迭代公式:

?????

??--=---=---=-+++nn k n nn k n n k n

ii k n in k i i k i

k n n k k a x a x a b x a x a x a b x a x a x a b x /)...(.../).......(.../)...()

(1)(11)1()

()(11)1(11)(1)(2121)1(1

简记为:

n i a x a b x

ii

n

i

j j k j

ij i k i

,...,2,1/)(1)

()1(=-=∑≠=+

二、 Gauss--Seidel 迭代公式

n i a x a

x a b x

ii

i j n

i j k j ij

k j

ij i k i

,...,2,1/)(1

1

1

)()

1()1(=-

-=∑∑-=+=++

三、 SOR 迭代公式

四、 迭代公式的矩阵表示 D

GX X k k +=+)()1(

§3 迭代公式的收敛性

一、 向量与矩阵的范数与性质 1、 向量范数 定义:向量

n R X ∈,对应非负实数X

,满足三条件:

(1)非负性 0,0,0==≥X X X

(2)齐次性

X

k kX =

(3)三角不等式 Y

X Y X +≤+

X

为向量范数

2、 常见向量范数 1范数

n

x x x X +++= (211)

2范数

2

22212

...n

x x x X

+++=

∞范数

i

x n

i X

≤≤=

1max

3、 矩阵范数 定义:方阵

n n R A ?∈,对应非负实数A

,满足三条件:

(1)非负性 0,0,0==≥A A A

(2)齐次性

A

k kA =

(3)三角不等式

B A B A +≤+

(4)绝对值不等式 B

A A

B ≤

A

为矩阵范数;

向量范数与矩阵范数相容性:

X

A AX ≤

4、常见矩阵范数 1范数,列范数 :

∑=≤≤=n

i ij

n

j a A 1

11max

∞范数,行范数 :

∑=≤≤∞

=n

j ij

n

i a A

1

1max

2范数,谱范数 : F 范数:∑∑===

n i n

j ij

F

a

A

11

2

举例计算

二、 迭代公式收敛性的判定 1、 向量的极限

2、 矩阵的谱半径:

i i

n

i A λλρ≤≤=1max )(为特征值;

3、收敛性的判定 收敛的充要条件: 迭代公式

D GX X k k +=+)()1(收敛的充要条件为谱半径1)(

判定定理1: 若

,1

判定定理2:

若对方程AX=b 的系数矩阵A 为对角占优,则Jacobi 迭代公式,Gauss--Seidel 迭代公式收敛; 判定定理3:

若对方程AX=b 的系数矩阵A 为对称正定,则Gauss--Seidel 迭代公式收敛;

Jacobi 迭代公式收敛与Gauss--Seidel 迭代公式收敛关系举例:

第三章 非线性方程的数值解法 1.了解二分法的原理与算法;

2.掌握一般迭代法的基本思想及其收敛性判定 ;

3.掌握Newton 切线法、弦截法,并用它们求方程近似根的方法。

本章问题:求方程f(x)=0的根

§1 二分法

一、根的存在性

定理:函数f(x)在区间[a ,b]连续,且f(a).f(b)<0,则方程f(x)=0在区间[a ,b]有根。

方程的根存在,不一定唯一,若在区间[a ,b]上有唯一根,称区间[a ,b]为根隔离区间。 二、二分法(区间逐次分半法)

原理:通过计算根隔离区间中点,将区间分半,缩小区间,得到方程近似根数列{}n x 。

[][][]...,....,,11????n n b a b a b a k k

k a b a b 2/)(-=-

取 2/)(*

n n b a x +≈

§2 迭代法

一、迭代原理

迭代法是一种逐次逼近法,由提供的递推公式计算,逐次精确,直到满足精度要求。 方程f(x)=0变形为)(x x ?=,

得到递推公式)(1k k x x ?=+--------简单迭代公式 称)(x ?为迭代函数

给初值计算,得到数列{}n x ,若*

lim x x k k =∞

→,则称迭代收敛,否则发散。 例:

求方程]4.0,3.0[0210*∈=--x x x

写出两个简单迭代公式: (1)210

1-=+k

x k x

(2))2lg(1+=+k k x x

观察计算得到数列{}n x 的收敛性。

迭代法的几何解释:

二、迭代收敛性判定

收敛性定理:设方程)(x x ?=的迭代函数)(x ?在[a ,b]满足: (1)当],[b a x ∈时,)(x ?],[b a ∈;

(2))(x ?在[a ,b]可导,且1)(<≤L x ?,],[b a x ∈, 则(1)方程)(x x ?=在[a ,b]有唯一根*

x ; (2)迭代公式)(1k k x x ?=+收敛,即

*

lim x x k k =∞

→; (3)误差估计01*

1x x L

L x x k

k --≤

-。 说明可根据迭代函数)(x ?的导数判断迭代收敛性。 三、迭代公式的加速

§3 Newton 迭代法

一、Newton 切线公式 几何作法 迭代公式

)

()

('

1k k k k x f x f x x -

=+ 例:利用解二次方程,02

=-c x 推导近似计算c 的公式。

由Newton 切线公式 )(211k

k k x c x x +=

+ 三、Newton 弦截公式

Newton 切线公式的缺点及改进 几何作法 迭代公式

)()

()()

(111--+---

=k k k k k k k x x x f x f x f x x

Newton 弦截公式是两步公式。

第五章 插值法

1. 掌握代数插值问题及其解存在唯一性,Lagrange 插值多项式构造及其余项,插值基函数性质;

2. 掌握差商的概念及其性质,Newton 插值多项式构造,两种插值法之间的区别与联系;

3.了解差分与等距节点插值多项式公式; 4. 掌握Hermite 插值问题及其构造方法。

本章问题:函数

)(x f 复杂,或无表达式,构造简单函数)(x P 来代替)(x f 。

§1 Lagrange 插值

一、代数插值问题及插值多项式存在唯一条件 1、代数插值问题: 已知

)(x f 在区间[a,b]中互异的n+1个点n x x x ......,,,10的函数值n y y y ,.....,,10,求次数≤n 次多项式

n n n x a x a a x P +++=...)(10且满足i i i n y x f x P ==)()(,(i=0,1,…n ).

2、插值多项式存在唯一条件: 定理:n n n x a x a a x P +++=...)(10存在唯一条件是n+1个节点互异。

二、Lagrange 插值构造 1、线形插值(n=1) 几何解释;

利用插值基函数构造: 基函数:一次多项式)(),

(10x l x l 满足

??

?==??

?==1

)(0

)(0

)(1)(11011000x l x l x l x l 1

010)(x x x x x l --=

101)(x x x x x l --=

)()()(11001x l y x l y x L +=----------1次Lagrange 插值多项式

例1:求x x f =)(过点(4,2),(9,3)的1次Lagrange 插值多项式,并计算5近似值。

2、抛物插值(n=2) 几何解释;

利用插值基函数构造:

基函数:二次多项式)(),(),(210x l x l x l 满足

???

??===?????===???

??===1)(0)(0)(0)(1)(0

)(0)(0)(1)(2

212022

11

101201000x l x l x l x l x l x l x l x l x l ))(())(()(2010210x x x x x x x x x l ----=

)

)(()

)(()(2101201x x x x x x x x x l ----=

)

)(())(()(1202102x x x x x x x x x l ----=

)()()()(2211001x l y x l y x l y x L ++=-------2次Lagrange 插值多项式

例2:求x x f =)(过点(1,1),(4,2),(9,3)的2次Lagrange 插值多项式,并计算5近似值。

3、一般情形: 利用插值基函数构造: 基函数:n 次多项式)(...),(),

(10x l x l x l n 满足

??

?≠===j

i j i x l ij j i 0

1

)(δ

)

)...()()....()(()

)...()()....()(()(11101110n k k k k k k k n k k k x x x x x x x x x x x x x x x x x x x x x l ----------=

+-+-

∑==+++=n

k k k n n n x l y x l y x l y x l y x L 0

1100)()(...)()()( -------n 次Lagrange 插值多项式

三、插值余项 定

b a x ,f

b a x f n n 存在在连续在],[)(],[)()

1()(+则插值误差

)()!

1()

()()()()1(x n f x L x f x R n n n ωξ+=-=+,

其中x b a 依赖于],[∈ξ

§2 分段插值

一、分段线性插值

在区间[a ,b],分为n 个区间],[1+i i x x ,i=0,1,2…n-1 每个区间由直线代替曲线,形成分段线性插值函数)(x ?

],[)()()(11

1+++∈+=i i i i i i x x x y x l y x l x ?

1

1)(++--=

i i i i x x x x x l ,i

i i i x x x x x l --=

++11)

(

二、分段抛物插值

§3 Newton 插值

一、差商及其性质 定义: 一阶差商:

i

i i i i i x x x f x f x x f --=

+++111)

()(],[

二阶差商:

i

i i i i i i i i x x x x f x x f x x x f --=

++++++212121]

,[],[],,[

K 阶差商:i

k i k i i i k i i i k i i i x x x x x f x x x f x x x f --=

+-+++++++]

,...,[],...,,[],...,,[11211

性质:

(1)差商可由节点函数值表示; (2)差商值与节点次序无关。 二、Newton 插值多项式 由差商定义

)](,[)()(000x x x x f x f x f -+=

)](,,[],[],[110100x x x x x f x x f x x f -+=

)](,,,[],,[],,[221021010x x x x x x f x x x f x x x f -+=

。。。

)](,,....,[],...,[],,...,[1010110n n n n x x x x x x f x x x f x x x x f -+=-

依次带入

))...(](,...,[...)](,[)()(10100100---++-+=n n n x x x x x x x f x x x x f x f x N ----- Newton 插

值多项式

计算时先造差商表; 三、余项

)!

1()(],,...,[)1(10+=+n f x x x x f n n ξ

§4 差分与等距节点插值多项式

一、差分及其性质: 二、等距节点插值多项式

§5 Hermite 插值

一、带导数的插值多项式 1

3

11'

300'31130033)(,)(,)(,)(),(m x H m x H y x H y x H x H ====满足;

2、利用基函数构造

110011003)()()()()(m x m x y x y x x H ββαα+++=

2

1011000))(2

1()(x x x x x x x x x -----=α

2

100111))(2

1()(x x x x x x x x x -----=α

2

1

0100))(

()(x x x x x x x ---=β

2

1011))(

()(x x x x x x x ---=β

二、一般情形

1、问题:求次数不超过2n+1次多项式;,...1,0,)(,)(),('

121212n i m x H y x H x H i i n i i n n ===+++满足

2、利用基函数构造 见教材

第七章 数值微积分 1. 了解数值求积基本思想;

2. 掌握Newton-Cotes 公式(梯形公式,Simpson 公式,Cotes 公式)推导及误差;

3. 了解Romberg 求积公式原理; 4.了解数值微分的方法。

本章问题:数值积分问题 求定积分

)()()(a F b F dx x f b

a

-=?

不能使用微积分公式情形

存在问题:(1)f(x)表达式复杂,原函数更复杂; (2)f(x)表达式不复杂,但原函数复杂;

(3)原函数不存在;

(3)f(x)无表达式

§1 Newton-Cotes 公式

一、 数值求积基本思想

1、 不利用原函数,直接利用函数值 积分中值定理:

)()()(ξf a b dx x f b

a

-=?

)(ξf 为平均高度;

机械求积方法:∑?=≈=n

i i i b

a

x f A dx x f I

)()(

i x 为求积节点;i A 为求积系数。

2、 几个简单求积公式 左矩形公式)()()(a f a b dx x f I b

a

-≈=?

右矩形公式)()()(b f a b dx x f I b

a

-≈=?

中矩形公式)2

(

)()(b

a f a

b dx x f I b

a +-≈=? 梯形公式))()((2

)(b f a f a

b dx x f I

b a

+-≈

=? 二、 Newton-Cotes 公式 1、公式推导

由Lagrange 插值多项式)(x L n 代替函数f(x)

??

∑∑??====≈=b

a

b a

n

i n

i b

a

i i i i n b a

x f dx x l dx x f x l dx x L dx x f I 0

)())(()()()()(

?=b

a

i i dx x l A )(

则∑?=≈=n

i i i b

a

x f A dx x f I

)()(

求积系数

i A 的计算:

)

(00)()

()()!(!)1(n i n n i

j j i n i C a b dt j i i t i n i n a b A -=----?-=?∏≠=-- )(n i C 为Cotes 系数;

∑∑?==-=≈=n

i i n i n i i i b

a

x f C a b x f A dx x f I 0

)(0

)()()()(--------- Newton-Cotes 求积公式

2、Cotes 系数性质 对称性:)

()

(n i n n i

C C -=

权性:

∑==n

i n i

C

)(1

3、常用公式 n=1 梯形公式:))()((2

)(b f a f a

b dx x f I b

a

+-≈

=? n=2

Simpson,抛物公式:))()2

(4)((6)(b f b

a f a f a

b dx x f I b

a

+++-≈

=? n=4

Cotes 公式:))(7)(32)(12)(32)(7(90

)(43210x f x f x f x f x f a

b dx x f I b

a ++++-≈

=?

4

a

b i a x i -+= 4误差估计: 见教材 举例说明。

§2 Romberg 求积公式 一、复化梯形公式

将积分区间[a,b], n 等份,步长n

a

b h

-=

∑-=++=1

1

)]()(2)([2n i i n b f x f a f h

T

误差估计: 二、梯形公式递推化

∑-=++=1

2

12)(221n i i n n x f h T T

三、Romberg 求积公式 由梯形公式修正,提高精度

n n n T T S 31342-=

n n n S S C 15115162-=

n n n C C R 63

163642-=

§3 Gauss 型求积公式

一、代数精确度 定义:若求积公式∑?=≈=n

i i i b

a

x f A dx x f I

)()(对任意≤m 次代数多项式精确成立,而对m+1次代数

多项式不精确成立,称求积公式具有m 次代数精确度。 判定:求积公式具有m 次代数精确度

?求积公式对m x x x x f ,...,,,1)(2=精确成立;而对

1)(+=m x x f 不精确成立。

例:梯形公式具有1次代数精确度;

定理1:n+1个节点的插值型求积公式代数精确度至少为n ;

定理2;Newton-Cotes 公式代数精确度至少为n ;当n 为偶数时,可达n+1次代数精确度。 二、Gauss 型求积公式 定义:若n+1个节点求积公式∑?=≈=n

i i i b

a

x f A dx x f I 0

)()(具有2n+1次代数精确度,则称为Gauss 型

求积公式,节点为Gauss 点。 Gauss 点的特性:见教材

第八章 常微分方程数值解

1. 掌握 Euler 方法(Euler 公式,梯形公式,Euler 预估-校正公式),局部截断误差,公式的阶;

2. 了解 Runge-Kutta 方法的基本思想及四阶经典Runge-Kutta 公式;

3. 掌握线性多步方法的原理与公式推导。

本章问题:一阶常微分方程初值问题

?????==0

0)(),(y x y y x f dx dy

解的存在性定理: 解析解的概念 数值解的概念 §1 Euler 方法 一、Euler 公式 导数离散化

))(,()('n n n x y x f x y =

由向前差商代替导数

h

x y x y x y n n n )

()()(1'-≈

+

))(,()()(1n n n n x y x hf x y x y +≈+

记为 ),(1n n n n y x hf y y +=+------- Euler 显式公式 由向后差商代替导数

h

x y x y x y n n n )

()()(11'-≈

++

))(,()()(111++++≈n n n n x y x hf x y x y

记为 ),(111++++=n n n n y x hf y y ------- Euler 隐式公式 由中心差商代替导数

h

x y x y x y n n n 2)

()()(111'-++-≈

))(,(2)()(11n n n n x y x hf x y x y +≈-+

记为 ),(211n n n n y x hf y y +=-+------- Euler 两步公式

二、Euler 预估-校正公式 梯形公式

)],(),([2

111+++++=n n n n n n y x f y x f h

y y

预估:),(1n n n n y x hf y y +=+ 校正:)],(),([2

111+++++

=n n n n n n y x f y x f h

y y 三、误差估计 1. 局部截断误差 2. 公式的阶

3. 常见公式的误差

§2 Runge-Kutta 方法

一、Runge-Kutta 方法的基本思想 由微分中值定理

)()

()('1ξy h x y x y n n =-+

))(,()()(1ξξy hf x y x y n n +=+

))(,(ξξy f 为区间],[1+n n x x 平均斜率,利用区间],[1+n n x x 多个点的斜率值加权平均来估计

平均斜率;

二、二阶Runge-Kutta 方法

???

?

???=

++==+-+=+21),(),(])1[(121211p ph y ph x f y x f h y y n n n n n n λκκκλκκλ

三、四阶经典Runge-Kutta 方法

????

?

?????

?

++=++=++==++++=+),()

2,2()2,2(),(]22[6

342312143211

hk y h x f k k h y h x f k k h

y h x f k y x f k k k k k h y y n n n n n n n n n n

§3 Adams 方法

一、Adams 方法的基本思想

微分方程初值问题化为积分方程:

?

?

+++=+=+1

1

)()())(,()()(1n n

n n

x x n x x n n dx x F x y dx x y x f x y x y

由插值多项式)(x P k 代替F (x ),

?

?

++++=+1

1

)()()()(1n n

n n

x x k x x k n n dx x R dx x P x y x y

有公式

?

++=+1

)(1n n

x x k n n dx x P y y

二、三阶Adams 外插公式

选取三点21,,--n n n x x x 作插值多项式)(2x P

)],(23),(16),(5[12

)(11221

n n n n n n x x k y x F y x F y x F h

dx x P n n

+-=

----?

+ )],(23),(16),(5[12

11221n n n n n n n n y x F y x F y x F h

y y +-+

=----+ 三、四阶Adams 外插公式 见教材

四、隐式Adams 内插公式 见教材

多核编程与并行计算实验报告 (1)

(此文档为word格式,下载后您可任意编辑修改!) 多核编程与并行计算实验报告 姓名: 日期:2014年 4月20日

实验一 // exa1.cpp : Defines the entry point for the console application. // #include"stdafx.h" #include #include #include #include using namespace std; void ThreadFunc1(PVOID param) { while(1) { Sleep(1000); cout<<"This is ThreadFunc1"<

实验二 // exa2.cpp : Defines the entry point for the console application. // #include"stdafx.h" #include #include using namespace std; DWORD WINAPI FunOne(LPVOID param){ while(true) { Sleep(1000); cout<<"hello! "; } return 0; } DWORD WINAPI FunTwo(LPVOID param){ while(true) { Sleep(1000); cout<<"world! "; } return 0; } int main(int argc, char* argv[]) { int input=0; HANDLE hand1=CreateThread (NULL, 0, FunOne, (void*)&input, CREATE_SUSPENDED,

蒙特卡罗方法的应用【文献综述】

文献综述 信息与计算科学 蒙特卡罗方法的应用 在解决实际问题的时候, 为了模拟某一过程, 产生各种概率分布的随机变量和对于那些由于计算过于复杂而难以得到解析解或者根本没有解析解的问题, 我们应该怎么办? 蒙特·卡罗是一种十分有效的求出数值解的方法. 蒙特卡罗法( monte-carlo method )简称M -C 法 通过构造概率模型并对它进行随机试验来解算数学问题的方法. 以计算函数的定积分()()1 0I f x d x =?, ()01f x ≤≤为例, 首先构造一个概率模型: 取一个边长分别为和-的矩形, 并在矩形内随机投点M , 假设随机点均匀地落在整个矩形之内, 当点的掷点数N 充分大时, 则落在图中阴影区内的随机点数与投点总数N 之比M N 就近似等于积分值I . 蒙特卡罗法历史悠久. 1773年法国G.-L.L.von 布丰曾通过随机投针试验来确定圆周率π的近似值, 这就是应用这个方法的最早例子. 蒙特卡罗是摩纳哥著名赌城, 1945年 J.von 诺伊曼等人用它来命名此法, 沿用至今. 数字计算机的发展为大规模的随机试验提供了有效工具, 遂使蒙特卡罗法得到广泛应用. 在连续系统和离散事件系统的仿真中, 通常构造一个和系统特性相近似的概率模型, 并对它进行随机试验, 因此蒙特卡罗法也是系统仿真方法之一. 蒙特卡罗法的步骤是: 构造实际问题的概率模型; ②根据概率模型的特点, 设计和使用降低方差的各类方法, 加速试验的收敛; ③给出概率模型中各种不同分布随机变量的抽样方法; ④统计试验结果, 给出问题的解和精度估计. 概率模型用概率统计的方法对实际问题或系统作出的一种数学描述. 例如对离散事件系统中临时实体的到达时间、永久实体的服务时间的描述(见离散事件系统仿真方法)就是采用概率模型. 虽然由这些模型所确定的到达时间、服务时间可能与具体某一段时间内实际到达时间、服务时间有出入, 但它是通过多次统计获得的结果, 所以从概率分布的规律来说还是相符的. 概率模型不仅可用来描述本身就具有随机特性的问题或系统, 也可用来描述一个确定型问题. 例如参数寻优中的随机搜索法(见动力学系统参数寻优)就是将参数最优化问题构造为一个概率模型, 然后用随机投点、统计分析的方法来进行搜索.

数值计算方法课程设计(C语言)

数值计算方法课程设计 姓名 学号 成绩

课程实际报告 实验一:秦九韶算法 题目 用选列主元高斯消去法解线性方程组 ???????=+- =-+-=-+-=--02 02 0 21 34343232121x x x x x x x x x x 算法语言: 利用c 语言的知识编写该算法程序 算法步骤叙述: 秦九昭算法的基思路是v[0]=a[0]*x+a[1] v[i]=v[i-1]*x+a[i+1];利用秦九昭算法计算多项式函数。 程序清单: #include void main() { float a[5],x,sum; int i; printf("presase input the value of x="); scanf("%f",&x); for (i =5;i >=0;i --) { printf("please input the value of a%d=",i); scanf("%f",&a[i]); } sum =a[5];

for(i=5;i>=1;i--) {sum=sum*x+a[i-1]; } printf("f(x)=%f/n",sum); } 输出结果计算:

实验总结: 通过运用C 语言,解决了秦九韶算法手写的复杂。为以后的雪地打下基础。 实验二:用选列主元高斯消去法解线性方程组 题目 用选列主元高斯消去法解线性方程组 ???????=+- =-+-=-+-=--02 0 2 0 21 34343232121x x x x x x x x x x 算法步骤叙述 第一步消元——在增广矩阵(A,b )第一列中找到绝对值最大的元素,将其所在行与第一行交换,再对(A,b )做初等行变换使原方程组的第一列元素除了第一行的全变为0; 第二步消元——在增广矩阵(A,b )中第二列中(从第二行开始)找到绝对值最大的元素,将其所在行与第二行交换,再对(A,b )做初等行变换使原方程组的第二列元素除了第一和第二行的全变为0; 第三步消元——在增广矩阵(A,b )中第三列中(从第三行开始)找到绝对值最大的元素,将其所在行与第三行交换,再对(A,b )做初等行变换使原方程组的第三列第四行元素为0; 第四,按x4-x3-x2-x1的顺序回代求解出方程组的解,x[n]=b[n]/a[n][n],x[i]=(b[i]-Σa[i][j]x[j])/a[i][i],i=n-1,…,2,1 程序清单: #include #include #define N 4 static double A[N][N] = {-3,-1,0,0,-1,2,-1,0,0,-1,2,-1,0,0,-1,2}; static double B[N]={1,0,0,0};

数值计算方法课程报告

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

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

课程设计报告

课程设计报告 题 目 基于数据挖掘的航电系统故障诊断 专业名称 电子信息工程 学生姓名 王腾飞 指导教师 陈 杰 完成时间 2014年3月18日

摘要 航电系统是飞机的重要组成部分,由于其综合应用了电子、机械、计算机及自动检测等许多学科的先进技术,结构层次很多,所以对其实施故障诊断具有涉及专业领域多、诊断难度大、要求时间短等特点。这对快速处理故障数据提出了很大的挑战。 从独立的联合式航电机箱的按键通电测试,到集中式飞机管理系统数据收集,飞机维修系统经过漫长的发展已演变成故障诊断工具。 现代飞机均采用了中央维修系统,用以收集所有子系统的故障报告、判断故障根源并推荐修理方法。飞机的故障信息和历史数据存放在数据库中。如果用传统的数据分析方法对这些海量的数据进行分析时会显得力不从心,不仅浪费时间而且对于隐含的知识难以有效的进行挖掘。数据挖掘技术十分符合现实的需要,它可以客观地挖掘出历史数据库中潜在的故障规则,这些规则能更好地指导故障的定位与检修,并对潜在的故障做出预测。随着数据的不断增长,如何能自动获取知识已经成为故障诊断技术发展的主要制约条件,而数据挖掘技术为解决这个“瓶颈”问题提供了一条有效的途径。 本文详细介绍了故障诊断技术与数据挖掘技术,并总结了航电系统的故障诊断的特点。拟采用聚类分析的技术对故障数据快速处理,实现对故障的快速定位。 关键词:故障诊断数据挖掘聚类分析航电系统

故障诊断技术 故障诊断技术简介 故障诊断就是指当设备系统不能完成正常的功能时,利用一定的方法找出使该功能丧失的原因及发生故障的部位,实现对故障发展趋势的预测的过程。故障诊断涉及到多方面的技术背景,主要以系统论、信息论、控制论、非线性科学等最新技术理论为基础,它是一门综合性的学科,具有重要的实用价值。 设备系统故障及故障诊断 随着现代化工业的发展,设备系统能够以最佳状态可靠地运行,对于保证产品质量、提高企业的产能、保障生命财产安全都具有极其重要的意义。设备系统的故障是指设备系统在规定时间内、规定条件下丧失规定功能的状况。故障诊断的作用则是发现并确定发生故障的部位及性质,找出故障的起因,预测故障的发展趋势并提出应对措施。故障诊断技术的使用范围不应只局限于设备系统使用和维修过程中,在设备系统的设计制造过程中也可以使用故障诊断技术,为以后的故障监测和设备系统维护创造条件。因此,故障诊断技术应该贯穿于设备系统的设计、制造、运行和维护的全过程当中。 机载设备的故障诊断流程框图:

浅析蒙特卡洛方法原理及应用

浅析蒙特卡洛方法原理及应用 于希明 (英才学院1236103班测控技术与仪器专业6120110304) 摘要:本文概述了蒙特卡洛方法产生的历史及基本原理,介绍了蒙特卡洛方法的最初应用——蒲丰投针问题求圆周率,并介绍了蒙特卡洛方法在数学及生活中的一些简单应用,最后总结了蒙特卡洛方法的特点。 关键词:蒙特卡洛方法蒲丰投针生活应用 蒙特卡洛方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。它是以概率统计理论为基础, 依据大数定律( 样本均值代替总体均值) , 利用电子计算机数字模拟技术, 解决一些很难直接用数学运算求解或用其他方法不能解决的复杂问题的一种近似计算法。蒙特卡洛方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)等领域应用广泛。 一、蒙特卡洛方法的产生及原理 蒙特卡洛方法于20世纪40年代美国在第二次世界大战中研制原子弹的“曼哈顿计划”计划的成员S.M.乌拉姆和J.冯·诺伊曼首先提出。数学家冯·诺伊曼用驰名世界的赌城—摩纳哥的Monte Carlo—来命名这种方法,为它蒙上了一层神秘色彩。在这之前,蒙特卡洛方法就已经存在。1777年,法国数学家蒲丰(Georges Louis Leclere de Buffon,1707—1788)提出用投针实验的方法求圆周率π。这被认为是蒙特卡洛方法的起源。 其基本原理如下:由概率定义知,某事件的概率可以用大量试验中该事件发生的频率来估算,当样本容量足够大时,可以认为该事件的发生频率即为其概率。因此,可以先对影响其可靠度的随机变量进行大量的随机抽样,然后把这些抽样值一组一组地代入功能函数式,确定结构是否失效,最后从中求得结构的失效概率。蒙特卡洛法正是基于此思路进行分析的。 设有统计独立的随机变量Xi(i=1,2,3,…,k),其对应的概率密度函数分别为fx1,fx2,…,fxk,功能函数式为Z=g(x1,x2,…,xk)。首先根据各随机变量的相应分布,产生N组随机数x1,x2,…,xk值,计算功能函数值Zi=g(x1,x2,…,xk)(i=1,2,…,N),若其中有L组随机数对应的功能函数值Zi≤0,则当N→∞时,根据伯努利大数定理及正态随机变量的特性有:结构失效概率,可靠指标。 二、蒲丰投针问题 作为蒙特卡洛方法的最初应用, 是解决蒲丰投针问题。1777 年, 法国数学家蒲丰提出利用投针实验求解圆周率的问题。设平面上等距离( 如为2a) 画有一些平行线, 将一根长度为2l( l< a) 的针任意投掷到平面上, 针与任一平行线相交的频率为p 。针的位置可以用针的中心坐标x 和针与平行线的夹角θ来决定。任意方向投针, 便意味着x与θ可以任意取一值, 只是0≤x ≤a, 0≤θ≤π。那么, 投针与任意平行线相交的条件为x ≤ l sinθ。相交频率p 便可用下式求

数值计算方法课程设计

重庆邮电大学 数学与应用数学 专业 《数值计算方法》课程设计 姓名: 李金徽 王莹 刘姝楠 班级: 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 ++=)(

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

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

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

并行计算第一次实验报告

并行计算上机实验报告题目:多线程计算Pi值 学生姓名 学院名称计算机学院 专业计算机科学与技术时间

一. 实验目的 1、掌握集群任务提交方式; 2、掌握多线程编程。 二.实验内容 1、通过下图中的近似公式,使用多线程编程实现pi的计算; 2、通过控制变量N的数值以及线程的数量,观察程序的执行效率。 三.实现方法 1. 下载配置SSH客户端 2. 用多线程编写pi代码 3. 通过文件传输界面,将文件上传到集群上 4.将命令行目录切换至data,对.c文件进行编译 5.编写PBS脚本,提交作业 6.实验代码如下: #include

#include #include #include #include #include static double PI=0; static int N=0; static int numOfThread=0; static int length=0; static int timeUsed=0; static int numOfThreadArray[]={1,2,4,6,8,10,12,14,16,20,24,30}; static int threadArraySize=12; static int nTime=4; static int repeatTime=30; static double totalTime=0; struct timeval tvpre, tvafter; pthread_mutex_t mut; clockid_t startTime,endTime;

JAVA实现计算器课程设计

JAVA实现计算器课程设计 计算机科学系 计应0701班 指导老师:刘其昌 设计人员:陈秀桃 设计日期:2009年11月10日——2009年12月20日 计算器的设计 目录 第一章绪 论 ..................................................................... .. (2)

1.1 开发环 境 ..................................................................... . (2) 1.2 基本功能介 绍 ..................................................................... ......... 2 第二章系统设 计 ..................................................................... (3) 2.1 系统流程 图 ..................................................................... . (3) 2.2 系统功能框 图 ..................................................................... (3) 2.3 需求分 析 ..................................................................... ................ 4 第三章软件设 计 ..................................................................... (5) 3.1 界面设 计 ..................................................................... . (5) 3.2 代码设 计 .....................................................................

数值计算方法学习心得

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

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

并行计算课程设计报告

并行计算与多核多线程技术 课程报告 专业 班级 学号 姓名 成绩___________________ 年月日

课程报告要求 手写内容:设计目的、意义,设计分析,方案分析,功能模块实现,最终结果分析,设计体会等。 允许打印内容:设计原理图等图形、图片,电路图,源程序。硬件类的设计,要有最终设计的照片图;软件类设计,要有各个功能模块实现的界面图、输入输出界面图等。 评价 理论基础 实践效果(正确度/加速比) 难度 工作量 独立性

目录 1. 设计目的、意义(功能描述) (1) 2. 方案分析(解决方案) (1) 3. 设计分析 (1) 3.1 串行算法设计 (1) 3.2 并行算法设计 (1) 3.3 理论加速比分析 (2) 4. 功能模块实现与最终结果分析 (2) 4.1 基于OpenMP的并行算法实现 (2) 4.1.1 主要功能模块与实现方法 (2) 4.1.2 实验加速比分析 (3) 4.2 基于MPI的并行算法实现 (3) 4.2.1 主要功能模块与实现方法 (3) 4.2.2 实验加速比分析 (4) 4.3 基于Java的并行算法实现 (4) 4.3.1 主要功能模块与实现方法 (4) 4.3.2 实验加速比分析 (5) 4.4 基于Windows API的并行算法实现 (5) 4.4.1 主要功能模块与实现方法 (5) 4.4.2 实验加速比分析 (6) 4.5 基于.net的并行算法实现 (6) 4.5.1 主要功能模块与实现方法 (6) 4.5.2 实验加速比分析 (6) 4.6并行计算技术在实际系统中的应用 (6) 4.6.1 主要功能模块与实现方法 (6) 4.6.2 实验加速比分析 (7) 5. 设计体会 (7) 6. 附录 (9) 6.1 基于OpenMP的并行程序设计 (9) 6.1.1 代码及注释 (9) 6.1.2 执行结果截图 (11) 6.1.3 遇到的问题及解决方案 (12) 6.2 基于MPI的并行程序设计 (12)

并行与串行数据结构与算法课程设计报告

课程实验报告课程名称:并行与串行数据结构与算法 专业班级:ACM1301 学号:U201315057 姓名:李海锋 指导教师:陆枫 报告日期:2015.9.23 计算机科学与技术学院

目录 1、课程设计概述 (2) 1.1 课设目的 (2) 1.2 课设要求 (2) 1.3 实验环境 (3) 2、系统总体设计 (4) 2.1 系统主模块结构体 (4) 2.2 找附近的最近的三个某地 (5) 2.3 找两点之间最短路径 (6) 2.4 数据录入模块 (7) 3、数据结构和算法详细设计 (7) 3.1 地图的存储 (7) 3.1.1 地图背景图片的存储 (7) 3.1.2 地图点 (7) 3.2 找附近的最近的特定地点(findNearby) (8) 3.3 找最短路径 (8) 4、程序实现简要说明 (9) 4.1开发环境 (9) 4.2 支持包 (9) 4.3 函数原型 (10) MainActivity.java:实现了地图主要功能 (10) Setting.java:地图数据的录入 (12) 4.4 函数功能调用关系 (14) MainActivity.java:地图主要功能程序 (15) Setting.java:数据录入程序 (15) 5、程序测试及结果分析 (16) 5.1 功能测试 (16)

5.2 测试结果分析 (22) 6、复杂度分析 (22) 6.1 输入地点名查找,鼠标点击显示 (22) 6.2 找两点之间的最短路径(dijkstra) (22) 6.3 找附近最近的三个某地 (22) 7、软件的用户使用说明 (23) 8、特色与不足 (23) 8.1 特色 (23) 8.2 不足 (23) 九、主要参考文献 (24)

蒙特卡罗方法及应用实验讲义2016资料

蒙特卡罗方法及应用 实验讲义 东华理工大学核工系 2016.8

实验一 蒙特卡罗方法基本思想 一、实验目的 1、了解蒙特卡罗方法方法的基本思想; 2、掌握蒙特卡罗方法计算面积、体积的方法; 3、掌握由已知分布的随机抽样方法。 二、实验原理 Monte Carlo 方法,又称统计模拟方法或计算机随机模拟方法,是一种基于“随机数”进行数值模拟的方法,一种采用统计抽样理论近似求解物理或数学问题的方法。 如待求量可以表述成某些特征量的期望值、某些事件出现的概率或两者的函数形式,那么可采用蒙特卡罗方法求解。在求解某些特征量的期望值或某些事件出现的概率时,必须构建合符实际的数学模型。例如采用蒙特卡罗方法计算某函数所围面积时,构建的数学模型是构造一已知面积的可均匀抽样区域,在该区域投点,由伯努利定理大数定理可知,进入待求区域投点的频率依概率1收敛于该事件出现的概率(面积之比)。 由已知分布的随机抽样方法指的是由已知分布的总体中抽取简单子样。具体方法很多,详见教材第三章。 三、实验内容 1、安装所需计算工具(MATLAB 、fortran 、C++等); 2、学习使用rand(m,n)、unifrnd(a,b,m,n)函数 3、求解下列问题: 3.0、蒲丰氏投针求圆周率。 3.1、给定曲线y =2 – x 2 和曲线y 3 = x 2,曲线的交点为:P 1( – 1,1 )、P 2( 1,1 )。曲线围成平面有限区域,用蒙特卡罗方法计算区域面积; 3.2 、计算1z z ?≥??≤??所围体积 其中{(,,)|11,11,02}x y z x y z Ω=-≤≤-≤≤≤≤。 4、对以下已知分布进行随机抽样:

计算方法课程设计

数理学院2014级信息与计算科学 课程设计 姓名:刘金玉 学号: 3141301240 班级: 1402 成绩:

实验要求 1.应用自己熟悉的算法语言编写程序,使之尽可能具有通用性。2.上机前充分准备,复习有关算法,写出计算步骤,反复检查,调试程序。(注:在练习本上写,不上交) 3.完成计算后写出实验报告,内容包括:算法步骤叙述,变量说明,程序清单,输出计算结果,结构分析和小结等。(注:具体题目 具体分析,并不是所有的题目的实验报告都包含上述内容!)4.独立完成,如有雷同,一律判为零分! 5.上机期间不允许做其他任何与课程设计无关的事情,否则被发现一次扣10分,被发现三次判为不及格!非特殊情况,不能请 假。旷课3个半天及以上者,直接判为不及格。

目录 一、基本技能训练 (4) 1、误差分析 (4) 2、求解非线性方程 (6) 3、插值 (12) 4、数值积分 (12) 二、提高技能训练 (16) 1、 (16) 2、 (18) 三、本课程设计的心得体会(500字左右) (21)

一、基本技能训练 1、误差分析 实验1.3 求一元二次方程的根 实验目的: 研究误差传播的原因与解决对策。 问题提出:求解一元二次方程20ax bx c ++= 实验内容: 一元二次方程的求根公式为 1,22b x a -+= 用求根公式求解下面两个方程: 2210(1)320(2)1010 x x x x +-=-+= 实验要求: (1) 考察单精度计算结果(与真解对比); (2) 若计算结果与真解相差很大,分析其原因,提出新的算法(如先求1x 再 根据根与系数关系求2x )以改进计算结果。 实验步骤: 方程(1): 根据求根公式,写出程序: format long a=1;b=3;c=-2; x1=((-1)*b+sqrt(b^2-4*a*c))/2*a x2=((-1)*b-sqrt(b^2-4*a*c))/2*a

电力系统综合课程设计

电力系统分析 综合课程设计报告 电力系统的潮流计算和故障分析 学院:电子信息与电气工程学院 专业班级: 学生姓名: 学生学号: 指导教师: 2014年 10月 29 日

目录 一、设计目的 (1) 二、设计要求和设计指标 (1) 2.1设计要求 (1) 2.2设计指标 (2) 2.2.1网络参数及运行参数计算 (2) 2.2.2各元件参数归算后的标么值: (2) 2.2.3 运算参数的计算结果: (2) 三、设计内容 (2) 3.1电力系统潮流计算和故障分析的原理 (2) 3.1.1电力系统潮流计算的原理 (2) 3.1.2 电力系统故障分析的原理 (3) 3.2潮流计算与分析 (4) 3.2.1潮流计算 (4) 3.2.2计算结果分析 (8) 3.2.3暂态稳定定性分析 (8) 3.2.4暂态稳定定量分析 (11) 3.3运行结果与分析 (16) 3.3.1构建系统仿真模型 (16) 3.3.2设置各模块参数 (17) 3.3.3仿真结果与分析 (21) 四、本设计改进建议 (22) 五、心得总结 (22) 六、主要参考文献 (23)

一、设计目的 学会使用电力系统分析软件。通过电力系统分析软件对电力系统的运行进行实例分析,加深和巩固课堂教学内容。 根据所给的电力系统,绘制短路电流计算程序,通过计算机进行调试,最后成一个切实可行的电力系统计算应用程序,通过自己设计电力系统计算程序不仅可以加深学生对短路计算的理解,还可以锻炼学生的计算机实际应用能力。 熟悉电力系统分析综合这门课程,复习电力系统潮流计算和故障分析的方法。了解Simulink 在进行潮流、故障分析时电力系统各元件所用的不同的数学模型并在进行不同的计算时加以正确选用。学会用Simulink ,通过图形编辑建模,并对特定网络进行计算分析。 二、设计要求和设计指标 2.1设计要求 系统的暂态稳定性是系统受到大干扰后如短路等,系统能否恢复到同步运行状态。图1为一单机无穷大系统,分析在f 点发生短路故障,通过线路两侧开关同时断开切除线路后,分析系统的暂态稳定性。若切除及时,则发电机的功角保持稳定,转速也将趋于稳定。若故障切除晚,则转速曲线发散。 图1 单机无穷大系统 发电机的参数: SGN=352.5MWA,PGN=300MW,UGN=10.5Kv,1=d x ,25.0'=d x ,252.0''=x x ,6.0=q x , 18.0=l x ,01.1'=d T ,053.0"=d T ,1.0"0=q T ,Rs=0.0028,H(s)=4s;TJN=8s,负序电抗:2.02=x 。 变压器T-1的参数:STN1=360MVA,UST1%=14%,KT1=10.5/242; 变压器T-2的参数:STN2=360MVA,UST2%=14%,KT2=220/121;

数值分析课程报告

插值法和多项式拟合的研究 摘要 在科研和生产实践中,常常需要通过一组测量数据来寻找变量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)

多核编程与并行计算实验报告 姓名: 日期:2014年 4月20日 实验一 // exa1.cpp : Defines the entry point for the console application.

// #include"stdafx.h" #include #include #include #include using namespace std; void ThreadFunc1(PVOID param) { while(1) { Sleep(1000); cout<<"This is ThreadFunc1"<

实验二 // exa2.cpp : Defines the entry point for the console application. // #include"stdafx.h" #include #include using namespace std; DWORD WINAPI FunOne(LPVOID param){ while(true) { Sleep(1000); cout<<"hello! "; } return 0; } DWORD WINAPI FunTwo(LPVOID param){ while(true) { Sleep(1000); cout<<"world! ";

蒙特卡罗方法及其在中子输运问题中得应用

蒙特卡罗方法及其在中子输运问题中得应用 目录 蒙特卡罗方法及其在中子输运问题中得应用 (1) 1蒙特卡罗方法简介 (3) 1.1蒙特卡罗方法的基本原理 (3) 1.2 蒙特卡罗方法的误差 (4) 2 随机变量的抽样方法 (4) 2.1 直接抽样方法 (5) 2.1.1 离散型随机变量的抽样 (5) 2.1.2 连续型随机变量的抽样 (5) 2.2 挑选抽样法 (5) 2.3 复合抽样法 (6) 3 蒙特卡罗方法模拟中子输运过程 (6) 3.1 源抽样 (6) 3.2 输运距离的抽样 (7) 3.3 碰撞核素的抽样值 (7) 3.4 反应类型的抽样值 (7) 3.5 反应后中子状态的确定 (7) 3.5.1 弹性散射 (7) 3.5.2 非弹性散射 (8) 3.5.3 裂变反应 (8) 4 蒙特卡罗方法的减方差技巧 (8) 4.1 权 (8) 4.2 统计估计法 (9) 4.3 权窗 (10) 5 蒙特卡罗方法求解通量 (10) 5.1 通量的定义 (10) 5.2 点通量的计算 (11) 5.3 面通量的计算 (11) 5.3.1 统计估计法 (11) 5.3.2 加权法 (12) 5.4 体通量的计算 (12) 5.4.1 统计估计法 (12) 5.4.2 径迹长度法 (13) 5.4.3 碰撞密度法 (13) 5.4.4 几种体通量计算方法的比较 (14) 5.5 最终结果的统计 (14) 6 蒙特卡罗方法求解k eff (15) 6.1 有效增值因子k eff的定义 (15) 6.2 蒙特卡罗方法求解k eff (15)

6.2.1 吸收估计法 (15) 6.2.2 碰撞估计法 (15) 6.2.3 径迹长度估计法 (16)

相关文档
最新文档