计算机模拟在数学建模中的应用

计算机模拟是按时间来划分的,因为计算机模拟实质上是系统随时间变化而变化的动态写照,以下是小编搜集整理的一篇探究计算机模拟在数学建模应用的论文范文,供大家阅读参考。

【摘要】本文主要阐述了如何利用计算机模拟来解决数学建模中的实际问题.首先,提出问题,根据问题的具体模式对其进行分析整理.其次,对上述问题进行数学建模.然后,利用计算机进行模拟,主要分为随机模拟(蒙特―卡洛方法)、离散系统模拟和连续系统模拟三种类型.最后对结果进行分析,说明计算机模拟方法在数学建模中的有效性.

【关键词】计算机模拟;数学建模;随机模拟;离散系统

一、引言

模型(Model)和模型建构(Modeling)不仅仅是科学理论体系中的重要内容,也是我们认识世界的重要工具和方法.计算机技术的飞速发展给许多学科带来了巨大的影响,计算机使问题的求解变得更加简单方便,同时,也使解决问题的领域变得更加宽泛.计算机适合解决不确定、规模大且难以解析化的数学模型.例如,对于一些带随机因素的复杂系统的问题,建模之前常需要做一些简化假设,这可能导致与实际情况相距甚远,解答无法应用.此时,利用计算机进行模拟几乎成为了唯一的选择.在历届全国和国际大学生数学建模比赛(MCM/ICM)中,计算机模拟常用于去求解、检验,是建模过程中非常重要的一种方法[1].

一般地,计算机模拟在以下几种情况中能有效解决问题:

(1)难以在实际环境中进行实验和观察,只能用计算机模拟,比如太空飞行的研究;

(2)需要在短时间内观察到系统发展的全过程,用来估计某些参数对系统变化的影响;

(3)需要对系统进行长时间观察、运行比较,从大量方案中寻求最优方案;

(4)难以用解析式表示的系统;

(5)虽然有解析式,但是分析、计算过程过于复杂,只能借助计算机模拟来提供简单可行的方法.

在通常情况下,计算机模拟是按时间来划分的,因为计算机模拟实质上是系统随时间变化而变化的动态写照.目前,计算机模拟大致可以分为随机模拟(蒙特―卡洛方法)、离散系统模拟和连续系统模拟三类.其中,蒙特―卡洛(MontoCarlo)方法是典型的静态模拟;离散系统模拟和连续系统模拟是属于动态模拟.下面将就具体问题讨论这三种数学建模竞赛中经常用到的模拟方法.

二、问题的定义与分类

数学建模的第一步,就是提出问题,对具体问题进行分析、整理与归类.

1.问题的定义

问题是指不能直接利用已有知识处理,但是可以间接用已有知识处理的情境[2].

2.问题的分类

根据计算机模拟的种类,问题主要可以分为以下三种模式:非线性规划问题、离散系统问题和连续系统问题三种类型.下面举例说明一下这三种不同类型的问题.

(1)非线性规划(nonlinearprogramming)问题

非线性规划是具有非线性约束条件或目标函数的数学规划,研究一个n元实函数在一组等式或不等式的约束条件下的极值问题,且目标函数和约束条件至少有一个是未知量的非线性函数.

例1非线性规划问题

minf(x)x∈En.s.t.gi(x)≥0i=1,2,…,m.aj≤xj≤bjj=1,2,…,n.

(2)离散系统(discretesystem)问题

离散系统是指系统状态只在有限的时间点或可数的时间点上有随机事件发生的系统.

例如排队系统,显然,状态量的变化只是在离散的随机事件点上完成.假设离散系统状态的变化是在一个时间点上瞬间完成的.

例2离散系统问题:库存问题

在销售部门、工厂等领域中都存在库存问题,库存太多造成浪费以及资金积压,库存太少不能满足需求也会造成损失.部门的工作人员需决定何时进货,进多少,使得所花费的平均费用最少,而收益最大,这就是库存问题.

某企业当天生产的产品必须售出,否则就会变质.该产品单位成本为2.5元,单位产品售价为5元.企业为避免存货过多而造成损失,拟从以下2种库存方案中选出一个较优的方案:

方案甲:按前1天的销售量作为当天的库存量;

方案乙:按前2天的平均销售量作为当天的库存量.

(3)连续系统(continuoussystem)问题

连续系统是指时间和各个组成部分的变量都具有连续变化形式的系统.例如自动控制系统,只有当受控过程和控制方式同时为连续时的系统才称为连续控制系统.

例3连续系统问题:追逐问题

追逐问题如图,正方形ABCD的四个顶点各有一人.在某一时刻,四人同时出发以匀速v=1m/s按顺时针方向追逐下一人,如果他们始终保持对准目标,则最终按螺旋状曲线交汇于中心点O.试求出这种情况下每个人的行进轨迹.

三、模型的建立与计算机模拟

1.随机模拟(蒙特―卡洛方法)

(1)蒙特―卡洛(MontoCarlo)方法简介

蒙特―卡洛(MontoCarlo)方法(或称随机模拟法),是计算机模拟的基础,源于1977年法国科学家蒲丰提出的一种计算圆周率π的方法―随机投针法,即著名的蒲丰投针问题[3].蒙特―卡洛方法的基本思想,是建立一个概率模型,使所求问题的解正好是该模型的参数或其他有关的特征量.然后,通过模拟多次随机抽样实验,统计出某事件发生的百分比.只要实验次数n很大,该百分比便近似于事件发生的概率.蒙特―卡洛方法属于试验数学的一个分支.

(2)模型建立

例1中,对于非线性规划问题

minf(x),x∈En.

s.t.gi(x)≥0(i=1,2,…,m).

aj≤xj≤bj(j=1,2,…,n).

用蒙特―卡洛方法求解的基本思想是,在估计的区域{(x1,x2,……,xn)|xj∈[aj,bj],j=1,2,……,n}.   内随机取若干个试验点,然后从试验点中找出可行点,再从可行点中选择最小点.

假设试验点的第j个分量xj服从[aj,bj]内的均匀分布.

符号假设

P:试验点总数;maxP:最大试验点总数;

K:可行点总数;maxK:最大可行点数;

X:迭代产生的最优点;

Q:迭代产生的最小值f(X),其初始值为计算机所能表示的最大数.

2.离散系统模拟

离散系统模拟是指对离散系统,即系统状态只在有限的时间点或可数的时间点上有随机事件发生的系统进行模拟.例如排队系统.本文例2中讨论某企业生产的库存系统的计算机模拟方法,这是排队系统的一个典型例子.下面对例2中的.问题进行分析模拟:

(1)模型建立

假定市场对该产品的每天需求量是一个随机变量,并且从以往的统计分析得知它服从正态分布:N(135,22.4).

计算机模拟的思路如下:

一、获得市场对该产品需求量的数据;

二、计算出按照2种不同方案,经T天后企业所得的利润值;

三、比较大小,并从中选出一个更优的方案.

引入下列记号:

D:每天需求量;

Q1:方案甲当天的库存量;

Q2:方案甲当天的库存量;

S1:方案甲前1天的销售量;

S21:方案乙前1天的销售量;

S22:方案乙前2天的销售量;

S3:方案甲当天实际销售量;

S4:方案乙当天实际销售量;

L1:方案甲当天的利润;

L2:方案乙当天的利润;

TL1:方案甲累计总利润;

TL2:方案甲累计总利润;

T:预定模拟天数.

(2)模型的求解

利用Matlab编程来实现这一过程,这需要建立如下的M-文件:

function[TL1,TL2]=kucun(T,S1,S21,S22)

TL1=0;TL2=0;k=1;

whilek  Q1=S1;Q2=(S21+S22)/2;

D=normrnd(135,22.4);

ifD  S3=Q1;

else

S3=D;

end

ifD  S4=Q2;

else

S4=D;

end

L1=5*S3-2.5*Q1;L2=5*S4-2.5*Q2;

TL1=TL1+L1;TL2=TL2+L2;

k=k+1;

end

S1=S3;S22=S21;S21=S4;

给出一个初值,反复运行上述程序,通过比较最后可得出每一个方案的优劣.计算机模拟在排队系统中其他方面如加工制造系统、订票系统、计算机系统、交通控制系统等,都有广泛的应用.

3.连续系统模拟

对连续系统的模拟,实际上是将连续状态变量在时间上进行离散化处理,并由此模拟系统的运行状态.下面对例3中的问题进行分析模拟:

(1)模型建立

a.建平面直角坐标系A(x1,y1),B(x2,y2),C(x3,y3),D(x4,y4).

b.取时间间隔为Δt,计算每一点在各个时刻的坐标.

设某点在t时刻的坐标为(xi,yi),则在t+Δt时刻的坐标为(xi+vΔtcosα,yi+vΔtsinα),

其中cosα=xi+1-xid,sinα=yi+1-yid,

d=(xi+1-xi)2+(yi+1-yi)2.

c.取足够小的ε,当d

d.连接每一个点在各个时刻的位置,即得所求运动轨迹(如图2).

(2)模型的求解

利用Matlab编程来实现这一过程,这需要建立如下的M-文件:

v=1;dt=0.05;x=[001010];x=[010100];fori=1:4plot(x(i),y(i),'.'),holdonendd=20;while(d>0.1)x(5)=x(1);y(5)=y(1);fori=1:4d=sqrt((x(i+1)-x(i))^2+(y(i+1)-y(i))^2);x(i)=x(i)+v*dt*(x(i+1)-x(i))/d;y(i)=y(i)+v*dt*(y(i+1)-y(i))/d;plot(x(i),y(i),'.'),holdonendend

四、结果分析

对以上各个例子中的结果进行分析,发现计算机模拟的结果能更加真实的表现系统实际的动态变换过程.事实上,还有很多实际问题都可以用计算机模拟来解决,如背包问题、安排比赛选手的比赛日程、三国时期的“华容道”问题等等都可以用计算机模拟来解决.

总之,使用计算机模拟来进行数学建模,可以使求解更加快捷、方便和精确,另外,也使得解决问题的领域扩大,从离散、连续确定性领域延伸到随机的非确定性领域,计算机模拟正是处理此类问题的重要方法.

[1]谢国瑞,郝志峰,汪国祥.概率论与数理统计[M].北京:高等教育出版社,2012.

[2]王沫然.Matlab7.0与科学计算[M].北京:电子工业出版社,2011.

[3]赵静,但琦,严尚安,等.数学建模与数学实验[M].北京:高等教育出版社,2010

适合利用计算机模拟的是,计算机模拟在数学建模中的应用相关推荐

  1. 适合利用计算机模拟的是,计算机模拟在数学建模中的应用-海南大学.PDF

    计算机模拟在数学建模中的应用-海南大学 第 22 卷 第 1 期 海 南 大 学 学 报 自 然 科 学 版 Vol. 22 No. 1 2004 年 3 月 NATURAL SCIENCE JOUR ...

  2. 如何使用计算机建模,计算机模拟在数学建模中的应用

    [摘要]本文主要阐述了如何利用计算机模拟来解决数学建模中的实际问题.首先,提出问题,根据问题的具体模式对其进行分析整理.其次,对上述问题进行数学建模.然后,利用计算机进行模拟,主要分为随机模拟(蒙特― ...

  3. 应用计算机解数学模型之我见,计算机模拟算法在数学建模中的应用

    金渤淏 摘 要:随着世界科学技术水平的普遍提高,电子计算机技术逐渐发展成熟,其中计算机模拟算法在其他学科中有着十分广泛的应用,从而给这些学科的研究提供了算法基础.电子计算机技术中的计算机模拟算法是指安 ...

  4. 数学建模中常用的方法

    数学建模中常用的方法:类比法.二分法.差分法.变分法.图论法.层次分析法.数据拟合法.回归分析法.数学规划(线性规划,非线性规划,整数规划,动态规划,目标规划).机理分析.排队方法.对策方法.决策方法 ...

  5. 计算机技术在建模中的作用,谈计算机在数学建模中的作用

    2 0 1 3年第 9期 (总第 1 3 1期) 信息通信 I NFORM AT1 0N& COMM UNI CAT I ON S 2Ol 3 ( S u m .N o l 3 1 ) 谈计算 ...

  6. 什么是数学建模?如何在数学建模中拿奖?通过建模学到了啥?

    个人大学四年经验分享之数学建模 无论什么水平,看过此文章后必有收获! 一.数学建模到底是什么? 1,数学模型 2,数学建模 二.如何在数学建模中拿奖(三个方面) 1.组队 2,知识准备 3,比赛过程 ...

  7. Maltab在数学建模中的应用(第二版)——读书笔记上

    Maltab在数学建模中的应用(第二版)--读书笔记上 1.MATLAB与数据文件的交互 1.1数据拟合 1.2数据拟合实例 1.3数据可视化 1.4层次分析法 2.规划问题的MATLAB求解(多约束 ...

  8. 卓金武《MATLAB在数学建模中的应用》 第2版

    内容介绍 本书的作者都具有实际的数学建模参赛经历和竞赛指导经验.书中内容完全是根据数学建模竞赛的需要而编排的,涵盖了绝大部分数学建模问题的matlab求解方法.本书内容分上下两篇.上篇介绍数学建模中常 ...

  9. matlab数学建模可应用到第几章,《MATLAB在数学建模中的应用(第2版)》

    <MATLAB在数学建模中的应用(第2版)> 卓金武 (编者)) 基本信息 •出版社: 北京航空航天大学出版社; 第2版 (2014年9月1日) •丛书名: MATLAB开发实例系列图书 ...

最新文章

  1. React 父组件给子组件传值,子组件接收
  2. JavaSE基础知识(5)—面向对象(5.2类的成员)
  3. shader 2: vertex, fragment, surf的区别
  4. DDR3 LAYOUT RULES
  5. 【PyTorch 】interpolate()==>上下采样函数
  6. vs 未能找到符号_意大利甲级赛事分析:尤文图斯vs卡利亚里
  7. 别人工作2年半跳槽面试阿里,成功拿到offer,为什么你不可以?
  8. 拓端tecdat|R语言时间序列TAR阈值自回归模型
  9. LGOJP1850 换教室
  10. F5入口IP依据不同的端口实现转发到不同的POOL
  11. 强制更新客户端Silverlight XAP 文件
  12. windows快速全局检索文件工具-Listary
  13. 机器学习算法(八):基于BP神经网络的预测(乳腺癌分类实践)
  14. mir2disease:miRNA相关疾病数据库
  15. EAccessViolation 地址访问错误
  16. 最新版MySQL 8.0.22(Windows 64位)下载安装详细方法
  17. 为什么很多人工资不高,却还是要拥挤在大城市生活?
  18. 网易云豆瓣数据分析——爬虫(结尾附代码
  19. 神经网络相关性系数r公式,神经网络预测数据
  20. 计算机图形学GAMES101(十四)光线追踪(辐射度量学、渲染方程与全局光照)

热门文章

  1. Docker化Spring Boot应用程序
  2. 没有Javax的Jakarta EE:这次世界也不会结束
  3. JDK 12的Files.mismatch方法
  4. 使用RESTful Client API进行GET / POST
  5. fork join框架_Java 7:Fork / Join框架示例
  6. 实时通信:使用Spring Boot实现Websocket
  7. netbeans7.4_NetBeans 7.2 beta:更快,更有用
  8. JBoss BPM Travel Agency的微服务迁移故事
  9. 为什么现在是升级到Java 8的最佳时机
  10. Devoxx Hackergarten的企业Web应用程序原型