数学建模常用的十种解题方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数学建模常用的十种解题方法 摘要

当需要从定量的角度分析和研究一个实际问题时,人们就要在深入调查研究、了解对象信息、作出简化假设、分析内在规律等工作的基础上,用数学的符号和语言,把它表述为数学式子,也就是数学模型,然后用通过计算得到的模型结果来解释实际问题,并接受实际的检验。这个建立数学模型的全过程就称为数学建模。数学建模的十种常用方法有蒙特卡罗算法;数据拟合、参数估计、插值等数据处理算法;解决线性规划、整数规划、多元规划、二次规划等规划类问题的数学规划算法;图论算法;动态规划、回溯搜索、分治算法、分支定界等计算机算法;最优化理论的三大非经典算法:模拟退火法、神经网络、遗传算法;网格算法和穷举法;一些连续离散化方法;数值分析算法;图象处理算法。

关键词:数学建模;蒙特卡罗算法;数据处理算法;数学规划算法;图论算法 一、蒙特卡罗算法

蒙特卡罗算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟可以来检验自己模型的正确性,是比赛时必用的方法。在工程、通讯、金融等技术问题中, 实验数据很难获取, 或实验数据的获取需耗费很多的人力、物力, 对此, 用计算机随机模拟就是最简单、经济、实用的方法; 此外, 对一些复杂的计算问题, 如非线性议程组求解、最优化、积分微分方程及一些偏微分方程的解⑿, 蒙特卡罗方法也是非常有效的。

一般情况下, 蒙特卜罗算法在二重积分中用均匀随机数计算积分比较简单, 但精度不太理想。通过方差分析, 论证了利用有利随机数, 可以使积分计算的精度达到最优。本文给出算例, 并用MA TA LA B 实现。

1蒙特卡罗计算重积分的最简算法-------均匀随机数法

二重积分的蒙特卡罗方法(均匀随机数)

实际计算中常常要遇到如()dxdy y x f D ⎰⎰,的二重积分, 也常常发现许多时候被积函数的原函数很难求出, 或者原函数根本就不是初等函数, 对于这样的重积分, 可以设计一种蒙特卡罗的方法计算。

定理 1 )1( 设式()y x f ,区域 D 上的有界函数, 用均匀随机数计算()⎰⎰D dxdy

y x f ,的方法:

(l) 取一个包含D 的矩形区域Ω,a ≦x ≦b, c ≦y ≦d , 其面积A =(b 一a) (d 一c) ;

()j i y x ,,i=1,…,n 在Ω上的均匀分布随机数列,不妨设()j

i y x ,, j=1,…k 为落在D 中的k 个随机数,

则n 充分大时, 有

定理2 用定理1的公式(1)作近似计算时,其方差为

证略。

2 蒙特卡罗计算重积分的一般方法-----任意随机数法

2.1 二重积分的蒙特卡罗算法(一般随机数)

定理3 设()y x f ,区域D 上的有界函数,用一般的随机数计算()⎰⎰D dxdy y x f ,的方法:

(l) 取一个包含D 的矩形区域Ω,a ≦x ≦b, c ≦y ≦d , 其面积A =(b 一a) (d 一c) ;

取任一概率密度函数()y x g ,,满足

()⎰⎰Ω=1,dxdy y x g ; ()i i y x ,,i=1,…,n,是以()y x g ,为概率密度的随机数列,设()i i y x ,,i-1,…k,为落在D 中的随机数,则n 充分大时,有

证略。

3 蒙特卡罗计算重积分的最优算法—有利随机数法

任意随机数都能用于积分计算, 对于不同的随机数, 计算结果的方差显然不同, 在定理 3 中, 取

时,计算方差为零,即方差最小,

称为有利密度函数,以()y x g ,为概率密度的随机数称为有利随

机数。这样得到方差最优的蒙特卡罗算法, 叙述如下:

定理5 根据二重积分的最优蒙特卡罗算法(有利随机数), 设()y x f ,区域D 上的有界函数,()y x f ,≧0,那么按如下步骤得到

()⎰⎰D dxdy y x f ,方差最优值。 (l) 取一个包含D 的矩形区域Ω; 取有利概率密度

其中c=()⎰⎰D dxdy y x f ,; ()i i y x ,,i=1,…,n,是以()y x g ,为概率密度的随机数列,设()i i y x ,,i-1,…k,为落在D

中的随机数,则n充分大时,有

实际计算中, 由于c 是要计算的, 不可能事先得到, 所以只能先估算c 。

二、数据处理算法

数据处理算法有数据拟合、参数估计、插值等,比赛中通常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,通常使用Matlab作为工具。1数据拟合

在实验中,实验和戡测常常会产生大量的数据。为了解释这些数据或者根据这些数据做出预测、判断,给决策者提供重要的依据。需要对测量数据进行拟合,寻找一个反映数据变化规律的函数。它所处理的数据量大而且不能保证每一个数据没有误差,所以要求一个函数严格通过每一个数据点是不合理的。数据拟合方法求拟合函数。

例:在某化学反应中,测得生成物的质量浓度y(103-g/cm3)与时间t(min)的

关系如表所示

显然,连续函数关系y(t)是客观存在的。但是通过表中的数据不可能确切地得到这种关系。何况,由于仪器和环境的影响,测量数据难免有误差。因此只能寻求一个近拟表达式

y= (t)

寻求合理的近拟表达式,以反映数据变化的规律,这种方法就是数据拟合方法。

数据拟合需要解决两个问题:第一,选择什么类型的函数ϕ(t)作为拟合函数(数学模型);第二,对于选定的拟合函数,如何确定拟合函数中的参数。

数学模型应建立在合理假设的基础上,假设的合理性首先体现在选择某种类型的拟合函数使之符合数据变化的趋势(总体的变化规律)。拟合函数的选择比较灵活,可以选择线性函数、多项式函数、指数函数、三角函数或其它函数,这应根据数据分布的趋势作出选择。为了问题叙述的方便,将例1的数据表写成一般的形式

(1).线性拟合(线性模型)

假设拟合函数是线性函数,即拟合函数的图形是一条平面上的直线。而表中的数据点未能精确地落在一条直线上的原因是实验数据的误差。则下一步是确定函数 y= a + b x

中系数a 和b 各等于多少?从几何背景来考虑,就是要以a 和b 作为待定系数,确定一条平面直线使得表中数据所对应的10个点尽可能地靠近这条直线。一般来讲,数据点将不会全部落在这条直线上,如果第k 个点的数据恰好落在这条直线上,则这个点的坐标满足直线的方程,即

a+bx k =y k

如果这个点不在直线上,则它的坐标不满足直线方程,有一个绝对值为|a+bx k -y k |的差异(残差)。于是全部点处的总误差是∑=10

1k |a+bx k -y k |

这是关于a 和b 的一个二元函数,合理的做法是选取a 和b ,使得这个函数取最小值。但是在实际求解问题时为了操作上的方便,常常是求a 和b 使得函数 F ()b a ,=∑=10

1k (a+bx k -y k )2

达到极小。为了求该函数的极小值点,令

求解这个二元线性方程组便得待定系数a 和b ,从而得线性拟合函数y=a+bx 。下图中直线是数据的线性拟合的结果。

相关文档
最新文档