数值积分和MonteCarlo方法数值积分令则零阶近似 下载本文

内容发布更新时间 : 2024/6/16 18:30:26星期一 下面是文章的全部内容请认真阅读。

第二章 数值积分和Monte Carlo方法 第一节 数值积分 S??af?x?dx 令 h?xk?1?xk,S???k?0n?1bx0?a,f?x?dxxn?b, 则

xk?1xkf?x??fk??x?xk?fk??fk?f(xk),f'k?f'(xk)

f?x?

a xk b x

零阶近似

f?x??fk???h?

n?1S?h??fk???h??

k?0n?1?h?fk???h?k?0

一阶近似

f?x??fk??x?xk?fk?1?fk??h2 h??∵

?xk?1xk22xkx12?1k?x?xk?dx???xk?xk?1?xk??h

222∴

1??S???fk?h??fk?1?fk?h???h2

2?k?0?n?1???h?1?fk?fk?1???h2 k?02n?1??1从直观看,用?fk?fk?1?近似f?x?比只用fk或fk?1好。这方法也称

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

优点:

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

缺点:

? “平均主义”,

在f?x??0的区域,f?xk??x对S贡献很小,但消耗

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

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

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

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

均匀地随机地选取[a,b]中M个点?xk?,显然,

1S?M?f(x)???1/kk?1MM

?当M足够大,当然可以得到足够好的积分值。 问题:为什么误差是?1/M?

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

的,由涨落理论,误差应为?1/M。 比较误差:

Monte Carlo方法 ?S?1/M 数值积分Trapezoid方法 ?S?1/M2对单自由度而言,数值积分方法要有效得多。

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

Monte Carlo方法 ?S?1/M !! 数值积分Trapezoid方法 ?S?1/M2/d(hd?1/M) (h?1/M)

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

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

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

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

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