第二章数值积分和MonteCarlo方法第一节数值积分令,则零阶近似一

第二章数值积分和MonteCarlo方法第一节数值积分令,则零阶近似一
第二章数值积分和MonteCarlo方法第一节数值积分令,则零阶近似一

第二章 数值积分和Monte Carlo 方法 第一节 数值积分 ()b

a S f x dx =? 令 10,

,k k n h x x x a x b +=-==, 则

()()()1

1

0(),

''()

k k

n k k k k k k k k x x S f x dx

f x f x x f f f x f f x +-=='=+-+

==∑

?

()x f

a

k x b x

零阶近似

()()h f x f k O +=

()()

()

∑∑-=-=O +=O +=1

1

0n k k n k k h f h h f h S

一阶近似

()()

()

21h h

f f x x f x f k

k k k O +--+=+ ∵

()()?

+=---=-++1

212212

122k k

x x k k k k k k h x x x x

x dx x x

()()

∑-=+O +???

?

?-+?=1

02121n k k k k h h f f h f S

()()

-=+O ++=1

0212

1

n k k k h f f h 从直观看,用()11

2

k k f f ++近似()f x 比只用k f 或1k f +好。这方法也称

Trapezoid 方法。 这样的数值积分方法的

优点:

● 简单直观,误差可以控制

缺点:

● “平均主义”,

在()0≈x f 的区域,()k f x x ?对S 贡献很小,但消耗

同等的机时。在多自由度系统这弱点尤为特出。

问题: 直观地看,零级近似和一级近似的差别在哪? 习题: 编程序数值计算高斯积分。

第二节 Monte Carlo 方法 如何用随机方法求积分?

例如,可用‘抛石子’方法。但这方法不比简单的数值积分有效。 1.简单抽样的Monte Carlo 方法

均匀地随机地选取[b a ,]中{}k M x 个点,显然,

(1

1()1/

M

k

k S f x M

==

+O ∑

当M 足够大,当然可以得到足够好的积分值。

问题:为什么误差是(1/O ?

答 :不妨把这看成一个M 次测量的实验,假设每次测量都是独立

的,由涨落理论,误差应为(O 。 比较误差:

Monte Carlo 方法 1/S ?∝ 数值积分Trapezoid 方法 2

1/(1/)S M h M ?∝=

对单自由度而言,数值积分方法要有效得多。

对多自由度,例如d 自由度,

Monte Carlo 方法 1/S ?∝ !! 数值积分Trapezoid 方法 2/1/(1/)d

d S M h M ?∝= 当d 非常大,数值积分方法根本没法和Mont

e Carlo 方法比较。 我们当然可以再改进数值积分方法的精度,但这种改进的量级没法和d 的大小比拟。在多体系统的数值模拟中,d 通常至少是410!

Monte Carlo 方法真的是完美了吗? 当然不是。

● ‘平均主义’的弱点其实还没改进

下面我们引入所谓的重要抽样Monte Carlo 方法 ● 当引入重要抽样方法后,每次抽样的样品可能不独立

如何取得独立的抽样,是Monte Carlo 方法的重点所在!

2.重要抽样的Monte Carlo 方法

如果被积函数f(x)是均匀的函数,则简单抽样方法已经可以得到 相当准确的积分值。

如果被积函数f(x)不是均匀的函数----这在高维积分十分常见,则必须引入重要抽样。我们希望在对积分贡献大的区域多取样品,在贡献小的区域少取样品。

设积分为

()()()b

a S f x f x W x dx =<>=?

其中f(x)是均匀函数,W(x)是不均匀函数,而且()0W x ≥,可以归一化,给予概率分布的含义。

假设我们可以按照分布W(x)得到{}l M x 个点,则

(1

1()1/

M

l

l S f x M

==

+O ∑

注意:现在W(x)不出现在求和式子中,而是体现在{}l x 的分布里。 证明:如第一节方法,把[b a ,]分为n 个小区间, [],l k k x x x h +落在区间的数目约为

()k W x h M ?

对[],l k k x x x h ∈+

()()

()()()1

11

l k M

n l k k l

k f x f x f x f x W x h M

M

M

-=≈∴

显然

()()()(

)1lim lim M n

l

k

k

M n l

k

f x f x W x h f x S M

→∞→∞

==

=∑∑

()W x ,产生M 个{}k x (即上面的{}l x )

问题:可以用产生随机数的方法产生()W x 吗? 答 :多自由度,有相互作用时不可能 3. Markov 过程 产生{}k x 的方法:

构造一个Markov 过程,即给出一个动力学规则,由t x 随机地产生1t x +。那么,给一个0x ,可产生

0001,,

,

M M M x x x x +

如果随机过程满足一定条件,则当0M 足够大时,即达到“平衡

态”时,00

1,M M M x x ++按()W x 分布。

? 各态历经

从概率上说,在有限时间内t x 可走遍[b a ,]

? 细致平衡

Markov 过程由从t x 到1t x +的转移概率定义。

设()T x x '→为过程从x 转移(或跃迁)到x '的概率,()T x x '→为从x '到x 的概率。则细致平衡条件为

()()()

()

T x x W x T x x W x ''→='→

记忆:从x 转移到x '的概率正比与()W x '

证明:设(),W x t 为x 的“非平衡态”分布

()

()()()(),,,x x dW x t T x x W x t T x x W x t dt ''

'''=-→+→∑∑ ()()()

,,,0t W x t W x dW x t dt

→∞

→∞→

()()()(),,x x T x x W x T x x W x '

'

'''∴

→∞=→∞∑∑

细致平衡条件显然保证()W x 满足上述方程,所以,

()(),W x W x ∞=

不过,细致平衡条件是充分条件。 第三节 Metropolis 算法和Heat -bath 算法

Markov 过程的全部信息包含在转移概率()T x x '→中

● 细致平衡条件是平衡态()W x 的要求 ● 是否各态历经常常可以直观判断

()T x x '→必须给出从任意 x 到任意 x ’ 的概率,

但这并不一定要求从x 到任意x ’ 的概率都是零。各态历经只要求在有限时间内,即()T x x '→的有限次作用,能到达x ’。

1. Metropolis 算法

Metropolis (1915-1999) The Paper was cited 7500 times from 1988 to 2003 令

()

()()

()()(')/()1

(1,(')/())

m T x x W x W x W x W x W x W x Min W x W x '→'?

设 ()()W x W x '<

()()(')/()(')

1()

m m T x x W x W x W x T x x W x '→=='→

设 ()()W x W x '≥

()()1(')

()/(')()

m m T x x W x T x x W x W x W x '→=='→

即()m T x x '→满足细致平衡条件。

但是,注意到()T x x '→是转移概率,所以应有归一化条件

()'

1x T x x '→=∑ 上面的()m T x x '→还不满足归一化条件。 所以,完整的Metropolis 算法的转移概率是

()()()m T x x S x x T x x '''→=→→

其中()S x x '→是从x 选中x ’ 的概率,而且()(')S x x S x x '→=→。这样的转移概率仍然满足细致平衡条件。当然,归一化条件也能保证。

例如,可选

1. ()S x x '→=常数,即均匀选取x ’

2. ()'[,]

'[,]

x x x S x x x x x εεεε∈-+?'→=?

?-+?常数

归纳起来,Metropolis 算法包括如下步骤: 1) 设t x x =,按()S x x '→选取尝试x ’,

2) 以概率()m T x x '→取1't x x +=

以概率 ()1m T x x '-→取1t x x += (!!)

第二步要记住,初学者容易误解,以为一旦x ’ 不被采纳,重新选取尝试x ’。

不难理解,无论是1或2方案的()S x x '→,Metropolis 算法都满足各态历经条件,因为只要(')0W x ≠,在有限时间取到x ’ 的概率不为零。

Metropolis 算法非常普遍。

一个重要的例子,在物理学中,常取()W x 为正则分布,

()/()H x kT W x e -∝

其中H(x) 代表能量,T 是温度,k 是Boltzmann 常数。

所以,跃迁概率为

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

()()()//1

(1,)

H x H x H x H x kT

m kT H x H x H x H x e

T x x Min e '-'

---'>'≤??'→=?

??=

如何在计算机上实现?

① 设已到达t x x =点,按均匀分布随机地取

[],,

x x x εεε'∈-+为一‘恰当’的数

例如,取[]1,0∈r 为计算机上常用的“随机”数,则

()21x x r ε'=+-

② 以概率()m T x x '→取1't x x +=

以概率 ()1m T x x '-→取1t x x +=

例如,计算 ()()x H x H -',取随机数[]1,0∈r

如果 (

)(

)()/H x H x kT e

r '-

->,取 1't x x +=,否则1t x x +=

()()()/H x H x kT

e '

--

如何取0M M 和?

这与具体系统有关。通常通过尝试改变0M 以判断0M 是否够大,即随机过程是否已到达“平衡”态。

一般 010M M >。

不过,对单自由度问题,0M 不重要。 练习: ① ()22

1

x x H σ=

计算2x <>,和解析结果比较

② ()424

1

21x x x H λσ+=

, 计算2x <> ● 讨论ε的作用

● 对没有解析解的系统,如何判断数值结果的可靠性和正确性?

● 有兴趣的同学还可以和数值积分比较,会发现Monte Carlo 方法在单自由度情形没有优势

2. Heat-bath 算法

Heat-bath 算法没有Metropolis 算法那么普遍 但也是多体系统研究中的典型方法之一 Heat-bath 算法直接取转移概率为

()(')h T x x W

x '→= 这算法自然是各态历经并且满足细致平衡条件的。

● Heat-bath 算法的特点是()h T x x '→与x 无关 在某些情形会显示出优越性

● 当(')W x 较复杂,在计算机上不一定能够找到简单的实现 事实上,对单自由度情形,已经是直接产生平衡态分布()W x

例如,如果x 只取 x1和x2, 可取

()(1)

'1

(2)

'2

h W x x x T x x W x x x =?'→=?

=?

计算机上的实现:取随机数[]1,0∈r

如果 (1)W x r >,取 11t x x +=,否则12t x x += 这一算法可简单推广到x 取多个分立值情形。

当x 是连续变量时,不一定能实现Heat-bath 算法。但我们可以结合Metropolis 算法和Heat-bath 算法。

例如,取()()1()h T x x S x x T x x ''→=→→

()1111()/(()())

'()/(()())'0h

W x W x W x x x T x x W x W x W x x x otherwise

+=??'→=+=???

这算法Metropolis 的特征多些。

归纳起来,Metrpolis 算法或Heat-bath 算法可以相当普遍地实现重要抽样的Monte Carlo 模拟方法。但是,对多体系统,抽样得到的样品可能不独立,即有关联。设关联时间为 τ, 即每 τ 个样品才

有一个是独立的。那么,误差为

S O ?∝

当 τ 很大时,Monte Carlo 方法遇到极大困难。对物理学家而言,这是Monte Carlo 算法需要解决的重要问题。

第四节 Langevin 方程

问题:系统的Hamiltonian 量为S ,

平衡态分布为 )exp(S -,(这里温度已吸收到S )。

假设系统0=t 时处于一初始状态,系统如何演化至平衡态? 单自由度

()

实数:x x S S =

Langevin 方程

()()()t x

x S dt t dx η+??-=

()

()()

():0

2t t t t t η

η

ηηηηδ''==-高斯随机数

对固定t

()ηP ~ 2

ησ-e

()??

-∞

+∞

--==??=2

2

1ησηση

ηηηηe

d Z e

d Z

t

如果没有随机力,平衡态为

()()

0dx t S x dt x

?=-=?,即能量取极小值。如果存在随机力,体系会被推离能量极小,处于某种能量较高的平衡态。

由于随机力的存在,Langevin 方程存在复杂性,因为我们必须考虑对随机力带来的奇异性。为了简单起见,我们对 时间分立化 在数值模拟中应用

较直观

()()t t t t t '?=

'δηηη2,???'

≠'

=='t t t t t t 0

1

δ Z ~

2

1

ησ

=

σ

σ21

ln =??-

Z ∴ 4

t

?=σ

Langevin 方程

()()()()

()()S x t x t x t t x t t t t x

η??=+?-=-

?+?? 令

ηη→?2

t

∴ ()(')

t t t t ηηδ'=

()()()()

()t t t t x t x S t x η?+???-

=?2 方程的解 ()t x η是随机变量,在数值模拟中给定初始值()t x x η,0还不确定,与随机力有关。也就是说,在t 时刻,x 遵从一个分布

();P x t 。

物理量()x O 的平均值

()()()();x t dx P x t x ηη=O ?

问题:()()x t ηη的含义? 答:必须对t 之前的所有随机力做平均。 Langevin 方程其实也是一种Monte Carlo 方法 设 ')(,

)(x t t x x t x =?+=

()]

4/))('(exp[]

2/)(exp['22t t x

x S x x t x x P ????+--∝-∝→η

()]

4/)')'('(ex p[]

2/)(ex p['22t t x x S x x t x x P ????+--∝-∝→η

注意到x 和x ’之差是无穷小,

)]

()'((exp[]

)

()'(exp[)'()'(x S x S x x S x x x x P x x P --=??--=→→

Fokker-Planck 方程的推导和平衡态

()()()()

()()

()

()()()()

()() +??O ?+

??O ?=

O ?=O ?2

22

21t x t x t x t x t x t x t x t x ηηηηηηη

ηη

η

()()()()()()()()()()()()()()η

ηηηηη

ηηηηηη2

22

22

12???

? ???+???-?O ?+???

? ???+???-?O ?=t t t t x t x S t x t x t t t t x t x S t x t x

∵()()()以及更早的随机力有关只与无关,

与t t t t x ?-ηηη

()()

()

()()()()()()()↑

?????O ?-

=??O ?t t x t x S t x t x t x t x t x ηηηηηηη

∵ ()0=t η

又 ∵ ()()()

22

2t t t x ?O +?=? η

η

()()η

η

η2

2x x S x t

t x ?O

?+

???O ?-=?O ?

()()()()t x P x

t x P x S x x x dx x x S x t x P dx ;;;2222还作用于分步积分

??

↑????

??????+??O =?

???

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

这里做分步积分时,假设0);(=±∞

t P 另一方面

()()

()

()

???O =?O ?t

t x P x dx t

t x ,η

η Fokker-Planck 方程

()()()()0;,

;;→??∞→???? ????+????-=-=??t

t x P t x x S x x H t x P H t

t x P FP FP 当 ∴

()0;=∞x P H FP

显然 ()∞;x P ~ ()

x S e -

(精选)实验二 数值方法计算积分

实验二数值方法计算积分 学号:姓名:指导教师:实验目的 1、了解并掌握matlab软件的基本编程、操作方法; 2、初步了解matlab中的部分函数,熟悉循环语句的使用; 3、通过上机进一步领悟用复合梯形、复合辛普森公式,以及用龙贝格求积 方法计算积分的原理。 一、用不同数值方法计算积分 10x ln xdx=-94. (1)取不同的步长h.分别用复合梯形及辛普森求积计算积分,给出误差中关 于h的函数,并与积分精确值比较两个公式的精度,是否存在一个最小 的h,使得精度不能再被改善? (2)用龙贝格求积计算完成问题(1)。 二、实现实验 1、流程图: 下图是龙贝格算法框图:

2、 算法: (1) 复合梯形公式:Tn=++)()([2b f a f h 2∑-=1 1 )](n k xk f ; (2) 复合辛普森公式:Sn=6h [f(a)+f(b)+2∑-=11)](n k xk f +4∑-=+1 )2/1(n k x f ]; 以上两种算法都是将a-b 之间分成多个小区间(n ),则h=(b-a)/n,x k =a+kh, x k+1/2=a+(k+1/2)h,利用梯形求积根据两公式便可。 (3) 龙贝格算法:在指定区间内将步长依次二分的过程中运用如下公式 1、Sn= 34T2n-31 Tn 2、 Cn=1516S2n-151 Sn 3、 Rn=6364C2n-631 Cn 从而实现算法。 3、 程序设计 (1)、复合梯形法: function t=natrapz(fname,a,b,n) h=(b-a)/n; fa=feval(fname,a);fb=feval(fname,b);f=feval(fname,a+h:h:b-h+0. 001*h); t=h*(0.5*(fa+fb)+sum(f)); (2)、复合辛普森法: function t=natrapz(fname,a,b,n) h=(b-a)/n; fa=feval(fname,a);fb=feval(fname,b);f1=feval(fname,a+h:h:b-h+0 .001*h); f2=feval(fname,a+h/2:h:b-h+0.001*h); t=h/6*(fa+fb+2*sum(f1)+4*sum(f2)); (3)龙贝格法: function [I,step]=Roberg(f,a,b,eps) if(nargin==3) eps=1.0e-4; end; M=1; tol=10; k=0; T=zeros(1,1); h=b-a; T(1,1)=(h/2)*(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),

数值积分算法与MATLAB实现陈悦5133201讲解

东北大学秦皇岛分校 数值计算课程设计报告 数值积分算法及MATLAB实现 学院数学与统计学院 专业信息与计算科学 学号5133201 姓名陈悦 指导教师姜玉山张建波 成绩 教师评语: 指导教师签字: 2015年07月14日

1 绪论 数值分析是计算数学的一个主要部分,计算数学是数学科学的一个分支,它研究用计算机求解各种数学问题的数值检索方其理论与软件的实现.而数值分析主要研究数值计算. 现科学技术的发展与进步提出了越来越多的复杂的数值计算问题,这些问题的圆满解决已远人工手算所能胜任,必须依靠电子计算机快速准确的数据处理能力.这种用计算机处理数值问题的方法,成为科学计算.今天,科学计算的应用范围非常广泛,天气预报、工程设计、流体计算、经济规划和预测以及国防尖端的一些科研项目,如核武器的研制、导弹和火箭的发射等,始终是科学计算最为活跃的领域. 1.1 数值积分介绍 数值积分是数值分析的重要环节,实际问题当中常常需要计算积分,有些数值方法,如微分方程和积分方程的求解,也都和积分计算相联系. 求某函数的定积分时,在多数情况下,被积函数的原函数很难用初等函数表达出来,因此能够借助微积分学的牛顿-莱布尼兹公式计算定积分的机会是不多的.另外,许多实际问题中的被积函数往往是列表函数或其他形式的非连续函数,对这类函数的定积分,也不能用不定积分方法求解.由于以上原因,数值积分的理论与方法一直是计算数学研究的基本课题.对微积分学做出杰出贡献的数学大师,如I.牛顿、L.欧拉、C.F.高斯、拉格朗日等人都在数值积分这个领域作出了各自的贡献,并奠定了这个分支的理论基础. 构造数值积分公式最通常的方法是用积分区间上的n 次插值多项式代替被积函数,由此导出的求积公式称为插值型求积公式.特别在节点分布等距的情形称为牛顿-科特斯公式,例如梯形公式(Trapezoidal Approximations)与抛物线公式(Approximations Using Parabolas)就是最基本的近似公式.但它们的精度较差.龙贝格算法是在区间逐次分半过程中,对梯形公式的近似值进行加权平均获得准确程度较高的积分近似值的一种方法,它具有公式简练、计算结果准确、使用方便、稳定性好等优点,因此在等距情形宜采用龙贝格求积公式(Rhomberg Integration).当用不等距节点进行计算时,常用高斯型求积公式计算,它在节点数目相同情况下,准确程度较高,稳定性好,而且还可以计算无穷积分.数值积分还是微分方程数值解法的重要依据.许多重要公式都可以用数值积分方程导出.现探讨数值积分算法以及运用MATLAB软件的具体实现

数值分析第二章复习与思考题

第二章复习与思考题 1.什么是拉格朗日插值基函数?它们是如何构造的?有何重要性质? 答:若n 次多项式()),,1,0(n j x l j =在1+n 个节点n x x x <<< 10上满足条件 (),,,1,0,, ,0, ,1n k j j k j k x l k j =?? ?≠== 则称这1+n 个n 次多项式()()()x l x l x l n ,,,10 为节点n x x x ,,,10 上的n 次拉格朗日插值基函数. 以()x l k 为例,由()x l k 所满足的条件以及()x l k 为n 次多项式,可设 ()()()()()n k k k x x x x x x x x A x l ----=+- 110, 其中A 为常数,利用()1=k k x l 得 ()()()()n k k k k k k x x x x x x x x A ----=+- 1101, 故 ()()()() n k k k k k k x x x x x x x x A ----= +- 1101 , 即 ()()()()()()()()∏ ≠=+-+---=--------=n k j j j k j n 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 0110110)( . 对于()),,1,0(n i x l i =,有 ()n k x x l x n i k i k i ,,1,00 ==∑=,特别当0=k 时,有 ()∑==n i i x l 0 1. 2.什么是牛顿基函数?它与单项式基{ }n x x ,,,1 有何不同? 答:称()()()(){ }10100,,,,1------n x x x x x x x x x x 为节点n x x x ,,,10 上的牛顿基函数,利用牛顿基函数,节点n x x x ,,,10 上的n 次牛顿插值多项式()x P n 可以表示为 ()()()()10010---++-+=n n n x x x x a x x a a x P 其中[]n k x x x f a k k ,,1,0,,,,10 ==.与拉格朗日插值多项式不同,牛顿插值基函数在增加节点时可以通过递推逐步得到高次的插值多项式,例如 ()()()()k k k k x x x x a x P x P --+=++ 011,

计算方法-数值积分实验

实验二数值积分实验 一. 实验目的 (1)熟悉数值积分与数值微分方法的基本思想,加深对数值积分与数值微分方法的理解。 (2)熟悉Matlab编程环境,利用Matlab实现具体的数值积分与数值微分方法。 二. 实验要求 用Matlab软件实现复化梯形方法、复化辛甫生方法、龙贝格方法和高斯公式的相应算法,并用实例在计算机上计算。 三.实验内容 1. 实验题目 已知x e x f x4 sin 1 ) (- + =的数据表 分别编写用复化梯形法、复化辛甫生公法、龙贝格法、三点高斯法求积分?=1 ) (dx x f I 近似值的计算机程序。 A.复化梯形法: a.编写文件Trapezoid.m,代码如下所示:

b.编写文件f2.m: c.运行: B.复化辛甫生公法 a.编写文件FSimpson.m,代码如下所示:

b.编写文件f2.m: function f=f2(x) f=1+exp(-x).*sin(4*x); c.运行: C.龙贝格法

a.编写文件Romberg.m,代码如下所示: b.运行:

D.三点高斯法 a.编写文件TGauss.m文件,如下所示:

b.运行: 2. 设计思想 要求针对上述题目,详细分析每种算法的设计思想。 总体的思想是化复杂为简单的重复 A.复化梯形法使用直接法,通过递归,缩减规模; B.复化辛甫生也是使用直接法,根据公式直接进行编程,通过递归缩减规模; C.龙贝格算法应该在做了的几个中最体现了“化复杂为简单的重复”的思想,多个循环通过变量的适当递增,和一个for循环语句来实现,循环主体只有一句话,但确是整个程序中的亮点和难点; D.三点高斯法直接通过一条简单的公式来编写程序,难度不大; 四.实验体会 对实验过程进行分析总结,对比不同方法的精度,指出每种算法的设计要点及应注意的事项,以及自己通过实验所获得的对数值积分方法的理解。

数值计算方法第二章

第二章 非线性方程数值解法 在科学计算中常需要求解非线性方程 ()0f x = (2.1) 即求函数()f x 的零点.非线性方程求解没有通用的解析方法,常采用数值求解算法.数值解法的基本思想是从给定的一个或几个初始近似值出发,按某种规律产生一个收敛的迭代序列0{}k k x +∞=,使它逐步逼近于方程(2.1)的某个解.本章介绍非线性方程实根的数值求解算法:二分法、简单迭代法、Newton 迭代法及其变形,并讨论它们的收敛性、收敛速度等. §2.1 二分法 一、实根的隔离 定义 2.1 设非线性方程(2.1)中的()f x 是连续函数.如果有*x 使*()0f x =,则称*x 为方程(2.1)的根,或称为函数()f x 的零点;如果有*()()()m f x x x g x =-,且()g x 在*x 邻域内连续,*()0g x ≠,m 为正整数,则称*x 为方程(2.1)的m 重根.当1m =时,称*x 为方程的单根. 非线性方程根的数值求解过程包含以下两步 (1) 用某种方法确定有根区间.称仅存在一个实根的有根区间为非线性方程的隔根区间,在有根区间或隔根区间上任意值为根的初始近似值; (2) 选用某种数值方法逐步提高根的精度,使之满足给定的精度要求. 对于第(1)步有时可以从问题的物理背景或其它信息判断出根的所在位置,特别是对于连续函数()f x ,也可以从两个端点函数值符号确定出有根区间. 当函数()f x 连续时,区间搜索法是一种有效的确定较小有根区间的实用方法,其具体做法如下 设[,]a b 是方程(2.1)的一个较大有根区间,选择合适的步长()/h b a n =-,k x a kh =+,(0,1,,)k n =L .由左向右逐个计算()k f x ,如果有1()()0k k f x f x +<,则区间1[,]k k x x +就是方程的一个较小的有根区间. 一般情况下,只要步长h 足够小,就能把方程的更小的有根区间分离出来;如果有根区间足够小,例如区间长度小于给定的精度要求,则区间内任意一点可

计算方法 第5章 数值积分

第五章数值积分 §5.0 引言 §5.1 机械求积公式 §5.2 Newton-Cotes公式 §5.3 变步长求积公式及其加速收敛技巧§5.4 Gauss公式 §5.5 小结

§5.0 引 言 1. 定积分的计算可用著名的牛顿-莱布尼兹公式来计算: ()()()b a f x dx F b F a =-? 其中F (x )是f (x )的原函数之一,可用不定积分求得。 然而在实际问题中,往往碰到以下问题: (a) 被积函数f (x )是用函数表格提供的; (b) 被积函数表达式极为复杂,求不出原函数,或求出原函数后,由于形式复杂不利于计算; (c) 大量函数的原函数不容易或根本无法求出,例如 2 1 0x e dx -?,概率积分 1 0sin x dx x ?, 正弦型积分 2 22 2 2 4()1sin Ir x H x d r x r π θθ?? =- ?-?? ? 回路磁场强度公式 等根本无法用初等函数来表示其原函数,因而也就无法精确计算其定积分,只能运用数值积分。 2 所谓数值积分就是求积分近似值的方法。 而数值积分只需计算 ()f x 在节点(1,2,,)i x i n = 上的值,计算方便 且适合于在计算机上机械地实现。

§5.1 机械求积公式 1 数值积分的基本思想 区间[a ,b ]上的定积分()b a f x dx ? ,就是在区间[a,b]内取n+1个点 01,,,n x x x ,利用被积函数f (x )在这n+1个点的函数值的某一种线性组合 来近似作为待求定积分的值,即 ()()n b k k a k f x dx A f x =≈∑? 右端公式称为左边定积分的某个数值积分公式。 其中,x k 称为积分节点,A k 称为求积系数。 因此,一个数值积分公式关键在于积分节点x k 的选取和积分系数A k 的决定,其中A k 与被积函数f(x)无关。称为机械求积公式。 1.1 简单算例说明 例1 求积分1 ()x x f x dx ? 此积分的几何意义相当于如下图所示的曲边梯形的面积。 解:(1) 用f (x )的零次多项式00()()y L x f x == 来近似代替()f x ,于是, 110 0001()(()))(x x x x f x dx f x dx f x x x ≈ =-? ? (为左矩公式)

数值分析--第4章 数值积分与数值微分

第4章 数值积分与数值微分 1 数值积分的基本概念 实际问题当中常常需要计算定积分。在微积分中,我们熟知,牛顿—莱布尼兹公式是计算定积分的一种有效工具,在理论和实际计算上有很大作用。对定积分()b a I f x dx =?,若()f x 在区间 [,]a b 上连续,且()f x 的原函数为()F x ,则可计算定积分 ()()()b a f x dx F b F a =-? 似乎问题已经解决,其实不然。如 1)()f x 是由测量或数值计算给出数据表时,Newton-Leibnitz 公式无法应用。 2)许多形式上很简单的函数,例如 2 22sin 1(),sin ,cos ,,ln x x f x x x e x x -= 等等,它们的原函数不能用初等函数的有限形式表示。 3)即使有些被积函数的原函数能通过初等函数的有限形式表示,但应用牛顿—莱布尼兹公式计算,仍涉及大量的数值计算,还不如应用数值积分的方法来得方便,既节省工作量,又满足精度的要求。例如下列积分 2 41arc 1)arc 1)1dx tg tg C x ? ?=+++-+??+? 对于上述这些情况,都要求建立定积分的近似计算方法——数值积分法。 1.1 数值求积分的基本思想 根据以上所述,数值求积公式应该避免用原函数表示,而由被积函数的值决定。由积分中值定理:对()[,]f x C a b ∈,存在[,]a b ξ∈,有 ()()()b a f x dx b a f ξ=-? 表明,定积分所表示的曲边梯形的面积等于底为b a -而高为()f ξ的矩形面积(图4-1)。问题在于点ξ的具体位置一般是不知道的,因而难以准确算出()f ξ。我们将()f ξ称为区间[,]a b 上的平均高度。这样,只要对平均高度()f ξ提供一种算法,相应地便获得一种数值求积分方法。 如果我们用两端的算术平均作为平均高度()f ξ的近似值,这样导出的求积公式 [()()]2 b a T f a f b -= + (4-1) 便是我们所熟悉的梯形公式(图4-2)。而如果改用区间中点2 a b c +=的“高度”()f c 近似地取代 平均高度()f ξ,则可导出所谓中矩形公式(简称矩形公式) ()2a b R b a f +?? =- ??? (4-2)

数值积分 (论文)

目录 第一章数值积分计算的重述 (1) 1.1引言 (1) 1.2问题重述 (2) 第二章复化梯形公式 (3) 2.1 复化梯形公式的算法描述 (3) 2.2 复化梯形公式在C语言中的实现 (3) 2.3 测试结果 (4) 第三章复化simpson公式 (6) 3.1 复化simpson公式的算法描述 (6) 3.2 复化simpson公式在C语言中的实现 (6) 3.3 测试结果 (7) 第四章复化cotes公式 (8) 4.1 复化cotes公式的算法描述 (8) 4.2 复化cotes公式在C语言中的实现 (9) 4.3 测试结果 (10) 第五章Romberg积分法 (11) 5.1 Romberg积分法的算法描述 (11) 5.2 Romberg积分法在C中的实现 (12) 5.3 测试结果 (13) 第六章结果对比分析和体会 (144) 参考文献 (16) 附录 (16)

数值积分?-10 2 dx e x (一) 第一章 数值积分计算的重述 1.1引言 数值积分是积分计算的重要方法,是数值逼近的重要内容,是函数插值的最直接应用,也是工程技术计算中常常遇到的一个问题。在应用上,人们常要求算出具体数值,因此数值积分就成了数值分析的一个重要内容。在更为复杂的计算问题中,数值积分也常常是一个基本组成部分。 在微积分理论中,我们知道了牛顿-莱布尼茨(Newton-Leibniz)公式 ()() () b a f x d x F b F a =-? 其中()F x 是被积函数()f x 的某个原函数。但是随着学习的深入,我们发现一个问题: 对很多实际问题,上述公式却无能为力。这主要是因为:它们或是被积函数没有解析形式的原函数,或是只知道被积函数在一些点上的值,而不知道函数的形式,对此,牛顿—莱布尼茨(Newton-Leibniz)公式就无能为力了。此外,即使被积函数存在原函数,但因找原函数很复杂,人们也不愿花费太多的时间在求原函数上,这些都促使人们寻找定积分近似计算方法的研究,特别是有了计算机后,人们希望这种定积分近似计算方法能在计算机上实现,并保证计算结果的精度,具有这种特性的定积分近似计算方法称为数值积分。由定积分知识,定积分只与被积函数和积分区间有关,而在对被积函数做插值逼近时,多项式的次数越高,对被积函数的光滑程度要求也越高,且会出现Runge 现象。如7n >时,Newton-Cotes 公式就是不稳定的。因而,人们把目标转向积分区间,类似分段插值,把积分区间分割成若干小区间,在每个小区间上使用次数较低的Newton-Cotes 公式,然后把每个小区间上的结果加起来作为函数在整个区间上积分的近似,这就是复化的基本思想。本文主要

数值微分与数值积分练习题

第五章 数值微分与数值积分 一.分别用向前差商,向后差商和中心差商公式计算()f x =2x =的导数的近似值。其中,步长0.1h =。 【详解】 00()()(20.1)(2)=0.349 2410.10.1 f x h f x f f h +?+?===向前差商 00()()(2)(20.1)=0.358 0870.10.1 f x f x h f f h ????===向后差商 00()()(20.1)(20.1)= 0.353 664220.10.2f x h f x h f f h +??+??===×中心差商 二.已知数据 x 2.5 2.55 2.60 2.65 2.70 ()f x 1.58114 1.59687 2 1.62788 1.64317 求( 2.50),(2.60),(2.70)f f f ′′′的近似值。 【详解】 0.05h =,按照三点公式 3(2.50)4(2.55)(2.60)3 1.581144 1.59687 1.61245(2.50)0.316 10020.050.1 f f f f ?+??×+×?′≈==×(2.65)(2.55)1.627881.59687(2.60)0.310 10020.050.1 f f f ??′≈==× (2.60)4(2.65)3(2.70)241.6278831.64317(2.70) 4.179 90020.050.1 f f f f ?+?×+×′≈==× 三.已知如下数据 x 3 4 5 6 7 8 ()f x 2.937 6 6.963 213.600 0 23.500 8 37.318 4 55.705 6

数值分析第二章上机题之第二题

姓名:蒋元义、学号:、专业:测绘工程 一、在区间[-1,1]上分别取10,20n =用两组等距节点对龙格函数2 1 ()125f x x =+作多项式插值及三次样条插值,对每个n 值,分别画出插值函数即()f x 的图形。 解: 当N=10时,代码及图像如下: x=-1:0.2:1; y=1./(1+25*x.^2); x1=linspace(-1,1,10); p=interp1(x,y,x1,'linear'); p1=interp1(x,y,x1,'spline'); plot(x,y,'b'); hold on plot(x1,p,'r'); hold on plot(x1,p1,'k'); legend('龙格函数','多项式插值函数','三次样条插值函数'); grid on; title('N=10的插值函数及原函数图形'); xlabel('x 轴'); ylabel('y ‘轴');

当N=20时,代码及图像如下: x=-1:0.2:1; y=1./(1+25*x.^2); x1=linspace(-1,1,20); p=interp1(x,y,x1,'linear'); p1=interp1(x,y,x1,'spline'); plot(x,y,'b'); hold on plot(x1,p,'r'); hold on plot(x1,p1,'k'); legend('龙格函数','多项式插值函数','三次样条插值函数'); grid on; title('N=20的插值函数及原函数图形'); xlabel('x轴'); ylabel('y轴');

数值分析第二章小结

第2章线性方程组的解法 --------学习小结 一、本章学习体会 通过本章知识的学习我首先了解到求解线性方程组的方法可分为两类:直接法和迭代法。计算机虽然运行速度很快,但面对运算量超级多的问题,计算机还是需要很长的时间进行运算,所以,确定快捷精确的求解线性方程组的方法是非常必要的。 本章分为四个小节,其中前两节Gauss消去法和直接三角分解法因为由之前《线性代数》学习的一定功底,学习起来还较为简单,加之王老师可是的讲解与习题测试,对这一部分有了较好的掌握。第三节矩阵的条件数与病态方程组,我 Ax 的系数矩阵A与左端向量b的元素往往是通首先了解到的是线性方程组b 过观测或计算而得到,因而会带有误差。即使原始数据是精确的,但存放到计算机后由于受字长的限制也会变为近似值。所以当A和b有微小变化时,即使求解过程精确进行,所得的解相对于原方程组也可能会产生很大的相对误差。对于本节的学习掌握的不是很好,虽然在课后习题中对课堂知识有了一定的巩固,但整体感觉没有很好的掌握它。第四节的迭代法,初次接触迭代法,了解到迭代法就是构造一个无线的向量序列,使他的极限是方程组的解向量。迭代法应考虑收敛性与精度控制的问题。三种迭代方法的基本思想我已经掌握了,但是在matlab 的编程中还存在很大的问题。 在本节的学习中我认为我最大的问题还是程序的编写。通过这段时间的练习,虽然掌握了一些编写方法和技巧。相比于第一章是对其的应用熟练了不少,但在程序编写上还存在很多问题。希望在以后的学习中能尽快熟练掌握它,充分发挥它强大的作用。 二、本章知识梳理

2.1、Gauss 消去法(次重点) Gauss 消去法基本思想:由消元和回代两个过程组成。 2.1.1顺序Gauss 消去法(对方程组的增广矩阵做第二种初等行变换) 定理 顺序Gauss 消去法的前n-1个主元素) (k kk a (k=1,2,```,n-1)均不为零的充分必要条件是方程组的系数矩阵A 的前 n-1个顺序主子式 )1,,2,1(0)1()1(1 ) 1(1)1(11-=≠=n k a a a a D kk k k K ΛΛM M Λ 消元过程:对于 k=1,2,···,n-1 执行 (1)如果 ,0)(=a k kk 则算法失效,停止计算,否则转入(2) 。 (2)对于i=k+1,k+2,···n,计算 a a k kk k ik k i m )() (,= n k j i m a a a k kj ik k ij k ij ,,1,,) ()() 1(Λ+=-=+ n k i m b b b k k ik k i k i ,,1,) ()() 1(Λ+=-=+ 回代过程: a b x n nn n n n ) () (/= ) (1,,2,1/)() (1 )() (?--=- =∑+=n n k a x a b x k kk j n k j k kj k k k 2.1.2 列主元素Gauss 消去法(把) (n k k i a k kj ,,1,) (?+=中绝对值最大的元素交换到第k 行的主对角线位置)(重点) 定理 设方程组的系数矩阵A 非奇异,则用列主元素Gauss 消去法求解方程组时,各个列主元素a (k=1,2,```,n-1)均不为零。 消元过程:对于 k=1,2,···,n-1 执行 (1)选行号k i ,使 )()(max k i n i k k k i k k a a ≤≤=。 (2)交换A 与b 两行所含的数值。 (3)对于i=k+1,k+2,···n,计算

几种定积分地数值计算方法

几种定积分的数值计算方法 摘要:本文归纳了定积分近似计算中的几种常用方法,并着重分析了各种数值方法的计 算思想,结合实例,对其优劣性作了简要说明. 关键词:数值方法;矩形法;梯形法;抛物线法;类矩形;类梯形 Several Numerical Methods for Solving Definite Integrals Abstract: Several common methods for solving definite integrals are summarized in this paper. Meantime, the idea for each method is emphatically analyzed. Afterwards, a numerical example is illustrated to show that the advantages and disadvantages of these methods. Keywords: Numerical methods, Rectangle method, Trapezoidal method, Parabolic method, Class rectangle, Class trapezoid

1. 引言 在科学研究和实际生产中,经常遇到求积分的计算问题,由积分学知识可知,若函数 )(x f 在区间],[b a 连续且原函数为)(x F ,则可用牛顿-莱布尼茨公式 ?-=b a a F b F x f ) ()()( 求得积分.这个公式不论在理论上还是在解决实际问题中都起到了很大的作用. 在科学研究和实际生产中,经常遇到求积分的计算问题,由积分学知识可知,若函数)(x f 在区间],[b a 连续且原函数为)(x F ,则可用牛顿-莱布尼茨公式 ?-=b a a F b F x f ) ()()( 求得积分.这个公式不论在理论上还是在解决实际问题中都起到了很大的作用.另外,对于求导数也有一系列的求导公式和求导法则.但是,在实际问题中遇到求积分的计算,经常会有这样的情况: (1)函数)(x f 的原函数无法用初等函数给出.例如积分 dx e x ?-1 02 , ? 1 0sin dx x x 等,从而无法用牛顿-莱布尼茨公式计算出积分。 (2)函数)(x f 使用表格形式或图形给出,因而无法直接用积分公式或导数公式。 (3)函数)(x f 的原函数或导数值虽然能够求出,但形式过于复杂,不便使用. 由此可见,利用原函数求积分或利用求导法则求导数有它的局限性,所以就有了求解数值积分的很多方法,目前有牛顿—柯特斯公式法,矩形法,梯形法,抛物线法,随机投点法,平均值法,高斯型求积法,龙贝格积分法,查逊外推算法等等,本文对其中部分方法作一个比较. 2.几何意义上的数值算法 s 在几何上表示以],[b a 为底,以曲线)(x f y =为曲边的曲边梯形的面积A ,因此,计 算s 的近似值也就是A 的近似值,如图1所示.沿着积分区间],[b a ,可以把大的曲边梯形分割成许多小的曲边梯形面积之和.常采用均匀分割,假设],[b a 上等分n 的小区间 ,x 1-i h x i +=b x a x n ==,0,其中n a b h -= 表示小区间的长度. 2.1矩形法

数值分析第二章 习题

第二章 习 题 1. 已知函数()f x 在3,1,4x =的值分别为4,2,5,求Lagrange 插值多项式的表达式. 2. 已知函数 ()f x 在3x =和 4的值分别为0.5和0.64,用线性插值求此函数在 3.8x =的函数值. 3. 证明:对于 ()f x 的以01x x <为节点的一次插值多项式1()p x ,有 2 101()()()8 x x f x p x M ??≤,01x x x ≤≤, 其中01 max ()x x x M f x ≤≤′′= . 4. 已知函数 ()f x 的函数值表: x 0.1 0.2 0.3 0.4 0.5 ()f x 0.70010 0.40160 0.10810 -0.17440 -0.43750 试利用这个函数表求函数()f x 在0.3和0.4之间的零点. 5. 设 01,,,n x x x ???为1n +个互异的节点,()k l x 为n 阶 Lagrange 插值基函数, 0()()n k k x x x ω==?∏.证明: (1) 0()1n k k l x =≡∑; (2) 0(),0,1,2,,k n j j k k x l x x j n =≡=???∑; (3) ()()0,0,1,2,,n j k k k x x l x j n =?≡=???∑; (4)() ()()() k k k x l x x x x ωω= ′?.

6. 若73()1f x x x =?+,求0172,2,,2f ???????和018 2,2,,2f ???????. 7. 设 53()1f x x x =++,求以1x =?,-0.8,0,0.5,1为插值节点的Newton 插值多 项式和插值余项. 8. 已知函数值表: x 0 1 4 3 6 ()f x -7 8 5 14 求Newton 插值多项式的表达式. 9. 分别在下列情况下计算 1n ?次多项式()p t 在指定点t 的的值,各需要多少次乘 法运 算? (a)多项式()p t 按照单项式基函数展开; (b)多项式()p t 按照Lagrange 基函数展开; (c)多项式()p t 按照Newton 基函数展开. 10. 在区间[]0,/2π上使用5个等距节点对函数sin t 进行插值,试计算最大误差. 在 []0,/2π上选取若干点,比较函数值和插值多项式的值,验证误差界. 如果希望最大误 差为10 10 ?,需要多少个插值节点? 11. 一直平面曲线()y f x =过点(0,1) ,(1,3),(2,4),试求一个三次多项式3()p x ,使其经过这3个点,并且满足3(1)1p ′=;然后给出余项3()()()R x f x p x =?的表达式. 12. 试求一个四次多项式4()p x ,使其满足44 44(0)(0)0(1)(1)1p p p p ′′====,,4(2)1p =. 13. 能否通过使用分段二次多项式进行插值,使插值函数是二次连续可微的?为什么? 14. 设[]4 (),f x C a b ∈. 求三次多项式()p x ,使之满足插值条件 11 ()(),0,1,2, ()(),i i p x f x i p x f x ==?? ′′=?

工程中的计算方法课件6 数值积分

6 数值积分 如果函数)(x f 在区间],[b a 上连续,且原函数为)(x F ,则可用牛 顿―莱布尼兹公式:)()()(a F b F dx x f b a -=?计算定积分。然而很多函数 无法用牛顿―莱布尼兹公式求定积分。 一个简单被积函数,例如错误!未找到引用源。dx cx bx a ?++2,其不定积分可能很复杂,见下面的MA TLAB 实例: >> syms a b c x >> int(sqrt(a+b*x+c*x*x),x) ans=1/4*(2*c*x+b)/c*(a+b*x+c*x^2)^(1/2)+1/2/c^(1/2)*log((1/2*b+c*x )/c^(1/2)+(a+b*x+c*x^2)^(1/2))*a-1/8/c^(3/2)*log((1/2*b+c*x)/c^(1/2)+(a+b*x+c*x^2)^(1/2))*b^2 所以有必要研究简单、高效的计算定积分的方法(即数值积分方法)。数值积分的基本思想是构造一个简单函数)(x P n 来近似代替被积分函数)(x f ,然后通过求?b a n dx x P )(得?b a dx x f )(的近似值。 6.1 插值型求积公式 设?=b a dx x f I )(* ,插值型求积公式就是构造插值多项式)(x P n ,使 ?=≈b a n dx x P I I )(*。 构造以a ,b 为结点的线性插值多项式)()()(1b f a b a x a f b a b x x P --+--= ,[])()()(21)()()(1b f a f a b dx b f a b a x a f b a b x dx x P T b a b a +-=?? ? ???--+--==??称为梯形公式。

数值计算方法matlab 第二章 求根

1 第二章作业 问题描述: 不同温度的两种流体进入混合器混合,流出时具有相同的温度。流体A 和B 的热容(单位:cal/(mol ·K))分别为: 2623.381 1.80410 4.30010pA c T T --=+?-? 1528.592 1.29010 4.07810pB c T T --=+?-? 焓变(单位:cal/mol )为2 1 T p T H c dT ?= ? 。 A 进入混合器的温度为400℃, B 进入混合器的温度为700℃,A 的量(mol )是B 的量(mol )的两倍,试确定流体离开混合器的温度。 问题分析: 初始情况下,气体A 的温度比气体B 的温度低,故在混合过程中,气体A 温度升高,气体B 温度降低。由于没有外界加热或者做功,混合气体整体的焓变应该为零。 设A 有2mol ,B 有1mol ,根据焓变公式计算得到: 2 1 -262400 -22632= 6.762+3.608108.60010)6.762 1.80410 2.867105407.712T T A pA T H c dT T T dT T T T --?=?-?=+?-?-??( 2 1 -152700 -1253=+1.29010 4.07810)0.64510 1.3591032958.030 T T B pB T H c dT T T dT T T T --?=?-?=+?-?-??(8.5928.592 而0A B H H ?+?=,故该问题最后变成求解方程 2263()15.3548.2541016.4571038365.742f T T T T --=+?-?- 的根的问题。接下来将采用二分法、试位法以及牛顿法进行改方程的求解。方程保存为f.m ,可在压缩文件中找到。 一、 二分法 二分法的基本思想为,确定有根区间,然后不断将区间二等分,通过判断f(x)的符号,逐步将区间缩小,直到有根区间足够小,便可满足精度要求的近似根。 本例中,可以清楚的得到有根区间为(400,700)。取容限误差为-3 0.510%?,可以保证5 位有效数字。程序编写存储于bisec.m 。 其中,bisec 函数定义为: function bisec(f_name,a,c,xmin,xmax,n_points) 调用时: >> bisec('f',400,700,400,700,1000) 相当于取了a=400;c=700;作图时横坐标取得是从400~700的范围,采样点为1000个。

第五章 数值微积分

第五章 数值微积分 一、内容分析与教学建议 本章内容是数值微积分。数值微分包括:用插值多项式求数值微分、用三次样条函数求数值微分和用Richardson 外推法求数值微分。数值积分包括:常见的Newton-Cotes 求积公式,如:梯形公式、Simpson 公式和Cotes 公式;复化求积公式;Romberg 求积公式和Gauss 型求积公式等内容。 (一) 数值微分 1、利用Taylor 展开式建立数值微分公式,实际上是利用导数的离散化,即用差商近似代替导数,在由Taylor 公式的余项估计误差;由于当步长h 很小时,回出现两个非常接近的数相减,因此,在实际运用中往往采用事后估计的方法来估计误差。 2、用插值多项式求数值微分,主要是求插值节点处的导数的近似值。借助第二章的Lagrange 插值公式及其余项公式,确定插值节点处的导数的近似值及其误差。常用的有三点公式和五点公式。 3、阐明用三次样条函数()s x 求数值微分的优点:由第三章的三次样条函数()s x 的性质知:只要()f x 的4阶导数连续,则当步长0h →时, ()s x 收敛到()f x ,()s x '收敛到()f x ',()s x ''收敛到()f x ''. 因此,用三次样 条函数()s x 求数值微分,效果是很好的。指出其缺点是:需要解方程组,当h 很小时,计算量较大。 4、讲解用Richardson 外推法求数值微分时,首先阐明方法的理论基础是导数的离散化,即用差商近似代替导数;然后重点讲解外推

法的思想和推导过程,因为这种方法和思路在后面的数值积分和微分方程数值解中还要用到。 (二)数值积分的一般概念 1、由定积分的几何意义引入数值积分的思想,介绍求积公式、求积节点、求积系数、余项等基本概念。 2、重点介绍代数精度以及如何求一个判定积公式的代数精度,并举例说明。 3、介绍插值型求积公式以及插值型求积公式的代数精度的特点。(三)等距节点的求积公式 1、简单介绍一般的等距节点的插值型求积公式——Newton-Cotes公式以及Cotes系数。 2、重点介绍几种常用的Newton-Cotes公式:梯形公式、Simpson 公式和Cotes公式。要求学生掌握上述三种求积公式的表达式,并了解三种求积公式各自的余项。 3、以Simpson公式为例,求出它的代数精度是3;并要求学生课后自己求出梯形公式和Cotes公式的代数精度。 (四)复化求积公式 1、结合分段插值的思想阐明复化求积公式的思想。 2、重点介绍复化梯形公式、复化Simpson公式和复化Cotes公式以及它们各自的余项,并举一、两个例子加以说明。 3、简介事后估计和自适应Simpson方法。 (五)R omberg求积法 1、Romberg求积法是一种逐步分半加速法,它是以复化梯形公

数值积分和MonteCarlo方法

第二章 数值积分和Monte Carlo 方法 第一节 数值积分 ()b a S f x dx =? 令 10, ,k k n h x x x a x b +=-==, 则 ()()()1 1 0(), ''() k k n k k k k k k k k x x S f x dx f x f x x f f f x f f x +-=='=+-+ ==∑ ? ()x f a k x b x 零阶近似 ()()h f x f k O += ()() () ∑∑-=-=O +=O +=1 1 0n k k n k k h f h h f h S 一阶近似 ()() () 21h h f f x x f x f k k k k O +--+=+ ∵ ()()? +=---=-++1 212212 122k k x x k k k k k k h x x x x x dx x x

∴ ()() ∑-=+O +??? ? ?-+?=1 02121n k k k k h h f f h f S ()() ∑ -=+O ++=1 0212 1 n k k k h f f h 从直观看,用()11 2 k k f f ++近似()f x 比只用k f 或1k f +好。这方法也称 Trapezoid 方法。 这样的数值积分方法的 优点: ● 简单直观,误差可以控制 缺点: ● “平均主义”, 在()0≈x f 的区域,()k f x x ?对S 贡献很小,但消耗 同等的机时。在多自由度系统这弱点尤为特出。 问题: 直观地看,零级近似和一级近似的差别在哪? 习题: 编程序数值计算高斯积分。 第二节 Monte Carlo 方法 如何用随机方法求积分? 例如,可用‘抛石子’方法。但这方法不比简单的数值积分有效。 1.简单抽样的Monte Carlo 方法 均匀地随机地选取[b a ,]中{}k M x 个点,显然, (1 1()1/ M k k S f x M == +O ∑

常州大学数值分析课后习题答案第二章第三章第四章节

数值分析作业 第二章 1、用Gauss消元法求解下列方程组: 2x 1-x 2 +3x 3 =1, (1) 4x 1+2x 2 +5x 3 =4, x 1+2x 2 =7; (2) 解: A=[2 -1 3 1;4 2 5 4;1 2 0 7] n=size(A,1);x=zeros(n,1);flag=1; % 消元过程 for k=1:n-1 for i=k+1:n if abs(A(k,k))>eps A(i,k+1:n+1)= A(i,k+1:n+1)-A(k,k+1:n+1)*A(i,k)/A(k,k); else flag=0; return end end end % 回代过程 if abs(A(n,n))>eps x(n)=A(n,n+1)/A(n,n); else flag=0; return end for i=n-1:-1:1 x(i)=(A(i,n+1)-A(i,i+1:n)*x(i+1:n))/A(i,i); end return x A = 2 -1 3 1 4 2 5 4 1 2 0 7

x = 9 -1 -6 11x1-3x2-2x3=3, (2)-23x 1+11x 2 +1x 3 =0, x 1+2x 2 +2x 3 =-1; (2) 解: A=[11 -3 -2 3;-23 11 1 0;1 2 2 -1] n=size(A,1);x=zeros(n,1);flag=1; % 消元过程 for k=1:n-1 for i=k+1:n if abs(A(k,k))>eps A(i,k+1:n+1)= A(i,k+1:n+1)-A(k,k+1:n+1)*A(i,k)/A(k,k); else flag=0; return end end end % 回代过程 if abs(A(n,n))>eps x(n)=A(n,n+1)/A(n,n); else flag=0; return end for i=n-1:-1:1 x(i)=(A(i,n+1)-A(i,i+1:n)*x(i+1:n))/A(i,i); end return x A = 11 -3 -2 3 -23 11 1 0 1 2 2 -1 x = 0.2124 0.5492 -1.1554 4、用Cholesky分解法解方程组 3 2 3 x1 5 2 2 0 x2 3 3 0 12 x3 7

相关文档
最新文档