在自然界和日常生活中,许多现象带有不确定的性质,有此问题甚至很难建立数学模型。寻这类实际问题很难建立列举、递推、递归或回溯等算法,通常采用数学模拟法建立数学模型,编制程序,利用数字计算机进行问题模拟。 数学模拟步骤 1、首先要建立反映问题(工程问题、物理问题等)本质的数学模型。具体说就是要建立反映问题各量之间的微分方程及相应的定解条件。这是数字模拟的出发点,没有正确完善的数学模型,数学模拟就无从谈起。 2、数学模型建立之后,需要解决的问题是寻求高效率、高准确度的计算方法。计算方法不仅包括微分方程的离散化方法及求解方法,还包括贴体坐标的建立,边界条件的处理等。这些过去被人们忽略或回避的问题,现在受到越来越多的重视和研究。 3、在确定了计算方法和坐标系后,就可以开始编制程序和进行计算。由于求解的问题比较复杂,比如方程就是一个非线性的十分复杂的方程,它的数值求解方法在理论上不够完善,所以需要通过实验来加以验证,这部分工作决不是轻而易举的。 4、在计算工作完成后,大量数据只能通过图像形象地显示出来。利用录像机或电影放映机可以显示动态过程,模拟的水平越来越高,越来越逼真。 数学模拟应用 湍流是自然界当中普遍存在的一种非常复杂的流动现象,但人们对湍流机理的认识及其数值模拟方法至今仍处于探索阶段。再比如,在对实际问题中的随机现象进行数字模拟时,通常用计算机产生的随机数来表示。由于计算机产生的随机数总是要受有效数字位数的限制,其随机的意义要比实际问题中真实有随机变量差一些。 例:用蒙特卡洛(Monte Carlo)法计算定积分 蒙特卡洛法计算定积分的基本思想是:产生n(n足够大)个均匀分布的长方形ABCD上的随机数点(x1,y1),其中x1为均匀分布在区间[a,b]上的随机数,y1为均匀分布在区间[0,d]上的随机数。设其中落中曲边梯形ABEF上的随机数点数为m,则曲边梯形的面积(即定积分值S)为:S=(m/n)(b-a)d。 算法描述 输入:积分上、下限b、a,d≥max[f(x)],随机数点个数n。 输出:定积分值S。 PROCEDURE AMONCAR(z,b,d,n,S) m←0;i=1 FOR i=1 TO n DO { ARND(t,x);x←a+(b-a)*x ARND(t,y);y←d*y IF y<f(x) THEN m←m+1 } S←Dm*(b-a)*d/n OUTPUT S RETURN 上算法中,需要调用产生01之间均匀分布随机数的过程方法。只要n足够大,用蒙卡洛法计算得到的定积分近似值的近似程度是比较好的。而且,这种方法特别适用于计算多重积分。 |
|