现代数值模拟方法及其应用浙江大学.docx
《现代数值模拟方法及其应用浙江大学.docx》由会员分享,可在线阅读,更多相关《现代数值模拟方法及其应用浙江大学.docx(20页珍藏版)》请在冰豆网上搜索。
![现代数值模拟方法及其应用浙江大学.docx](https://file1.bdocx.com/fileroot1/2023-6/2/da5cc85d-0b2a-4c98-aeaa-d4479b84ccad/da5cc85d-0b2a-4c98-aeaa-d4479b84ccad1.gif)
现代数值模拟方法及其应用浙江大学
现代数值模拟方法及其应用
这是一门什么样的课?
研究生的全校公选课。
(怎么讲,有待实践和探讨)
假设应当具有的基本知识
高等数学如微积分、级数展开、微分方程
线形代数、概率统计
问题:
关于级数展开及其应用
答:
*当x较小时,可取前面几项作为函数的近似
*当函数形式未知时,可用级数逐项逼近
计算机编程包括Linux系统、画图和数据分析软件,
例如xmgrace,mitlab
问题:
A=0.0D+00
DO10I=1,10
A=A+1.0D+00*I
10CONTINUE
代表什么含义
物理学(50%内容或多或少与物理学有关)
最理想是学习过普通物理学
或者中学的物理学,能理解基本的物理问题
比如,物理是研究物质的结构和运动的学科
物质有各种形态,如气态、液态和固态等
物质的运动遵从一定的运动规律
如运动方程,分布函数等
问题:
力学、统计物理和量子力学的基本知识
化学、生物学和经济学
简单的基本知识
基本的英文阅读和书写能力
课程目的
不打算非常系统地讲授种种数值模拟方法
因为时间有限、精力有限
重点讲两种方法
MonteCarlo模拟和分子动力学
简单介绍一些重要的基本方法
一定程度上给出数值模拟方法的概况
目的是学习应用计算机模拟方法研究科学问题
至少了解如何用计算机模拟方法研究科学问题
包括方法本身
科学问题的表述,模型化
Ising模型的种种应用
●磁性系统
代表磁子,可研究磁性材料特性、相变
●粒子系统
代表粒子和空穴,可研究输运过程
●二元合金
代表两种不同成分,可研究合金特性、动力学行为
●金融市场
代表买卖,可研究市场的统计性质
动力学特征
●社会
代表男人女人
方法的适用性、有效性,和方法的发展
数值模拟,如测试
数据分析
问题:
如何开始研究
结果评估
计算量估计
撰写论文
换句话说,想告诉大家一些数值模拟研究的思路、方法和体会。
这门课不是一门纯粹的理论课程,略偏向实用课程
课程内容取材原则简单、经典、前沿
教师的当前研究课题
为什么学习和应用数值模拟方法?
(大道理)
●过去20年计算机工业的高速发展
不算网络,我看到三个时代
80’年代的大机器(图片)
90’年代的工作站(在德国的经历)
00’年代的PC机(有人要扔掉两年的PC机)
按郝柏林院士的意思,你在赶路,如没赶上时代的高速列车,多少会失去一些东西
计算机速度指数增长
过去28年,计算机能力增长64000倍
即没3-4年增加4倍
(过去十来年更快些)
计算方法带来的计算效率的高速增长
(软件、算法等)
10timeslargeratevery4years
问题:
这样的增长的前景
*计算能力逼近微观世界
*计算机器件面临量子极限
●计算科学是实验科学和理论科学之外科学的第三分支
具有相当有特色的创造性
既有理论的特点,又有实验的特征
作为理论,趋于‘准确’
具有相当‘普适性’
作为实验,极端和理想(高温高压,纯净)
多快好省
搭起实验和理论之间的一座桥梁
●适合进行交叉学科研究
数值模拟方法具有‘普适性’
对学科的基础知识和基本方法的要求略低
计算物理是计算科学的基础
现象相对简单
理论比较基础,可应用于不同学科
美国BostonUniv.HEStanley
Citationiswithintop100
为什么学习数值模拟方法?
(小道理)
●相对容易学习
●相对容易找工作(至少在国外如此)
●有特色的创造性
适合各种人群
●还没有人曾经获得Nobelprize(?
)
内容大纲
●引言
计算科学
现代计算机的出现
计算物理学
计算机算法和语言
随机数产生器
●数值积分和MonteCarlo方法
数值积分
MonteCarlo方法
Metropolis算法和Heat-bath算法
●MonteCarlo方法的应用
磁性材料和相变
Ising模型的MonteCarlo模拟
动力学慢化
Cluster算法
非平衡态动力学
固液相变
●数值微分和微分方程
数值微分
初值问题
Runge-Kutta方法
●分子动力学及其应用
Verlet算法
分子动力学的简单应用
多体问题
固液相变
热传导
●其他数值计算和数值模拟方法
●数值模拟方法在化学和生物学的应用
●数值模拟方法在金融学的应用
物理学家看金融
金融动力学的数值模拟
●计算机编程练习
调查
你希望通过这门课学到什么?
1.认认真真仔仔细细地学一点数值模拟方法及其应用
会抽时间编些程序,做些练习
2.只希望对数值模拟方法及其应用的一些概况和前沿动态
有所了解,不打算动手编程序
3.只想随便听听,拿点学分
第一章引言
第一节计算与科学
我们国家的历史悠长,计算科学也不例外。
圆周率
的计算(祖冲之)
用n边型逼近圆
周长
(2r=1)
近似公式
(1.1)
便是
的准确值,
是待定常数
问题:
(1.1)怎么来的?
作为n的函数,可对1/n做级数展开
例如,
截断(1.1)式到第四项,可求得
与
相差不大
问题:
*如何用多边形的面积近似求
?
*当n一定,如何得到较好近似值?
答:
做外切n边形
计算的要点:
●问题的表达:
建立模型
●计算技巧:
计算方法----我们课程的要点
●计算能力的估计:
研究计划
上面的方法是确定论方法。
随机方法在现代计算科学也十分重要
构造外切四边形
均匀地随机地在四边形‘抛石子’,统计石子总数M,和圆内石子数Ms,则面积的比
问题:
如何随机地‘抛石子’?
随机方法还可以有很多,
例如,
ComtedeBuffon(1707-1788)French
needleexperiment,1777
随机地抛针
针触到条纹和空隙的概率
L
习题:
试证明
提示:
p正比于L
反比于d
d
关键
从哪来?
解:
设针与水平方向夹角为
水平方向有效长度为
事件总数
针触到条纹和空隙的事件数
比较随机方法和确定论方法
●随机方法较简单
●随机方法较‘普适’
例如,简单应用抛石子的方法,可以计算不规则图形的面积
●随机方法的误差收敛较慢
不过,对多自由度问题这不是弱点
●随机方法依赖于相应的随机模型
即必须能构造出有效的模型,有时相当困难,
比如,牛顿方程和量子力学的动力学
计算科学在现代社会十分重要
例如,制造飞机之前应当先做数值模拟实验
这是节省金钱和生命
飞机失事后,应做事故重构
这可帮助找出事故原因
第二节现代计算机的出现
五千年前巴比伦人发明珠算(奇怪,不是中国人?
)
19世纪初英国人CBabbage提出计算机的构想
但当时技术不够发达
19世纪末西班牙人Quevedo提出可用电动机械技术构造计算机,当时的技术可以提供足够的支持
但他没有资金
1889年美国人Hollerith造出第一台计算机,用于人口普查。
卖掉这机器,Hollerith建立了IBM公司
1937年美国理论物理学家Atanasoff制造出电子数字计算机,但没引起广泛注意
1945年历史书常常引述,美国人Mauchly和Eckert制造的ENIAC为第一台电子计算机
Metropolis和Frankel用ENIAC研究核裂变
1950年MENIACI
Metropolis提出MonteCarlo方法,并应用于固液相变的研究(1953)
很多重要的研究工作由MENIACI完成
1970年大规模集成电路计算机
这是高速发展时期的开始
1980年PC机和工作站
计算科学的挑战
全球环境动力学模拟
DNA序列机制
药物设计
材料结构和器件
……
计算物理是计算科学的基础,各个领域有各个领域的作用,每个人有每个人的贡献。
第三节计算物理学
几乎无所不在,只是深入程度不同。
从方法上看,大体分两类
MonteCarlo模拟
分子动力学
从领域上看
NanostructureandMaterialsScience
Bio-structuresandSoftMatter(Polymers,Membranes,Proteins,etc.)
ComputationalStatisticalPhysics,
TurbulencePlasmasandReactiveFlows
NewMethodsinComputerSimulation
LatticeGaugeTheoryandElementaryParticlePhysics
ComputationalAspectsofAstrophysics
Quantumsimulation(many-body,dynamics,latticemodels,etc.)
FrontiersinLargeScaleComputingandquantumcomputing
Georgia大学讲座教授
浙江大学光彪讲座教授
国际著名计算物理学家
DPLandau
300Publications
18PhysRevLett
>6000Citations
第四节计算机算法和语言
1.算法
计算问题的逻辑步骤称计算机算法
例如,牛顿方程
称Euler算法。
给出初始位置
和速度
,可以一步一步求解牛顿方程
习题:
证明Euler方法准确到
量级。
算法应当边用边学
2.计算机语言
Fortran(formulatranslation)和C语言都好用
计算机语言的学习不应当成一种理论学习,
而是一种技能的学习,工多手熟
第五节随机数产生器
如何在边长为1的四边形内均匀地随机地“抛石子”?
设
为均匀的随机数,
可取
则
均匀地随机地分布在四边形内。
在计算机上如何产生
?
计算机上没有真正的随机数,只有“近似均匀”的“看起来无规”的数列
这样的“赝随机数列产生器”质量标准
足够长的数列
足够无规(随机)的数列
例如:
可用
作图,图形应当均匀
速度足够快
最简单的随机数列
的长度为
,速度非常快,随机性也不错,但对大规模计算,还不够好。
为了获得
可取
如果不是专门研究算法,不适宜花太多精力在随机数上,抓到一个比较好的使用即可。
例如,
SUBROUTINEranecu(iseed1,iseed2,ranec1)
REAL*8ranec1
INTEGER*4iran,iseed1,iseed2,kkk
kkk=iseed1/53668
iseed1=40014*(iseed1-kkk*53668)-kkk*12211
IF(iseed1.LT.0)iseed1=iseed1+2147483563
kkk=iseed2/52774
iseed2=40692*(iseed2-kkk*52774)-kkk*3791
IF(iseed2.LT.0)iseed2=iseed2+2147483399
iran=iseed1-iseed2
IF(iran.LT.1)iran=iran+2147483562
ranec1=iran*4.656612873E-10
RETURN
END
有兴趣的同学可比较比较两个随机数的差别。
如何获得其他分布的随机数?
例如:
如何由均匀分布的
构造按
分布的
设
体积元对应
体积元,则在该体积元内的随机数的概率与所取变量无关,即
∴
,
阅读材料:
如何产生高斯分布
?
重游台湾观感
1.观赏的三重境界
雾里看花
花里看雾
醉入花丛
2.台湾在精神上处于躁动状态
已经不适宜生活
3.海峡两岸拥有诸多共同规律
4、凡事不可勉强
理想是理想,现实是现实