- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机模与拟第21课
6.8 雨滴运动的计算机模拟 雨滴从高H处随风飘落,设雨滴在三维的立方格点中运动,其向下运动的概率为P↓=0.55, P↑=0.05, P←=P→=P↙=P↗=0.1。试用Monte Carlo方法模拟雨滴运动 (1)定义平均时间τ(从高处H落到地面所用步数的平 均值) (2)改变H的值,确定τ与H的函数关系 (3)根据我们所做的实验,是否可以定义雨滴下 落垂直方向的速度?若τ与H成线性关系, (4)计算雨滴水平方向位移的标准偏差。 function [x,y,nsteps]=rainrw(x,y,z) for jx=1:10000 p=rand; if p=0.55 z=z-1; elseif p=0.6 z=z+1; elseif p=0.7 y=y+1; elseif p=0.8 y=y-1; elseif p=0.9 x=x+1; else x=x-1; end if z==0 nsteps=jx; return; end end 第七章 连续系统的计算机模拟 本章讨论连续系统的模拟技术,由于这类系统中系统状态随时间连续的变化常常具有一定的规律,故可以用一些数学方程来描述,这些方程就是系统的数学模型,通常以微分方程,代数方程为多见。 使用数字计算机对连续系统进行模拟,首先必须将连续系统离散化,并将其转化为差分方程,以建立所谓的模拟系统的数学模型。 建立系统的模拟模型之后,就要选择计算机语言编写系统模拟程序,在计算机上运行,将结果保留在数据文件中以待传输和处理。本章介绍的方法适应性较强,应用也十分广泛。 7.1 欧拉(Euler)法 在讨论连续系统的计算机模拟之前,让我们先看一个化学反应的例子,通过这个例子我们可以看到怎样使用计算机模拟一个实际问题,虽然介绍的是欧拉法,但是分析问题的思路同样适用于其它数值积分法。 当两种物质A和B放到一起产生化学反应时,产生第三种物质C,一般1克A与1克B结合产生2克的C物质,形成C的速率与A和B的数量乘积成正比,同样C也可分解为A和B,C的分解速率正比于C的数量,即在任何时刻,如果a,b,c分别是化学物质A,B,C的数量,它们的增加和减少的速度服从下列微分方程。 其中K1和K2是比例常数。 在给出常数K1和K2值以及A和B的数量后我们希望能确定有多少C物质生产出来,这种化学反应速率的决定在化学工业上是有意义的。 假定化学量在 时间步长内不变,而只能在 结束的瞬间发生变化,这样在每个 结束时的A(或B或C)的数量就可以从 开始时的数值求出: 用同样的方法可写出 假定模拟周期为T,可将T分为N个小的时间步长 即 在时间为0时,我们知道a(0)、b(0)、c(0)的初始值,从这些初始值及常数K1和K2值出发,就可计算出 时间内的化学量的变化值。 使用这些值又可以计算系统的下一个状态,即2 时的状态。 使用2 时的状态又可以写出3 时的状态,依次类推进行N步计算,就可写出周期T的系统状态。 模拟程序中的初值如下: K1=0.008/(g.min) K2=0.002/min, a(0)=100g ,b(0)=50g , c(0)=0, T=5min, =0.1min , N=50 程序: 7.2 龙格-库塔(Runge-Kutta)法 以方程 为例 ,已知y(t0) =y0 , 假设从t0开始以h增长,t1=t0+h , t1时刻为y1=y(t0+h),在t0附近展开成台劳级数,保留h2项,则有: (7.1)
文档评论(0)