MATLAB在简单数学建模中的应用_第1页
MATLAB在简单数学建模中的应用_第2页
MATLAB在简单数学建模中的应用_第3页
MATLAB在简单数学建模中的应用_第4页
MATLAB在简单数学建模中的应用_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《MATLAB语言》课程论文MATLAB在简单数学建模中的应用姓名:马辉学号:12010245354专业:通信工程班级:1班指导老师:汤全武学院:物理电气信息学院MATLAB在简单数学建模中的应用(马辉120102453542010级1班)[摘要]通过对实际问题的抽象和简化,引入一些数学符号、变量和参数,运用某些规律,用数学语言和数学方法建立变量、参数间的内在联系,得出一个数学结构,该数学结构是实现的一个近似刻画,称之为数学模型。建立和求解数学模型的全过程就是数学建模,它包括模型的建立、求解、分析、检验循环往返的全过程,MATLAB语言正是处理此类问题的很好工具,既能进行数值求解,又能绘制有关曲线,非常方便实用。[关键词]MATLAB语言数学建模数学模型一、问题的提出应用数学去解决各类实际问题时,建立数学模型是十分关键的一步,同时也是十分困难的一步。建立教学模型的过程,是把错综复杂的实际问题简化、抽象为合理的数学结构的过程。要通过调查、收集数据资料,观察和研究实际对象的固有特征和内在规律,抓住问题的主要矛盾,建立起反映实际问题的数量关系,然后利用数学的理论和方法去分析和解决问题。这就需要深厚扎实的数学基础,敏锐的洞察力和想象力,对实际问题的浓厚兴趣和广博的知识面。数学建模是联系数学与实际问题的桥梁,是数学在各个领域广泛应用的媒介,是数学科学技术转化的主要途径,数学建模在科学技术发展中的重要作用越来越受到数学界和工程界的普遍重视,它已成为现代科技工作者必备的重要能力之一。Matlab软件能将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。1.数学建模的基础理论(1)对数学模型的介绍我们可以对数学模型做如下定义:“数学模型是关于部分现实世界和为一种特殊目的而作的一个抽象的、简化的结构。”具体来说,数学模型就是为了某种目的,用字母、数学及其它数学符号建立起来的等式或不等式以及图表、图象、框图等描述客观事物的特征及其内在联系的数学结构表达。数学模型的类别主要有:1)按照人们对原形的认识过程分,可分为描述性的和解释性的数学模型。描述性的型是从特殊到一般,它是从分析具体客观事物及其状态开始,最终得到一个数学模型。客观事物之间量的关系,通过数学模型被概括在一个具体的抽象的数学结构之中。解释性的模型是由一般到特殊,它是从一般的公理系统出发,借助于数学客体,对公理系统给出正确解释的一种数学模型。2)按照模型的应用领域分,可分为人口模型、交通模型、电气系统模型、通信系统模型、机电系统模型、环境模型、生态模型、水资源模型、再生资源利用模型、传染病模型和污染模型等。3)按照建立模型的数学方法分,可分为几何模型,代数模型,图论模型,规划论模型,微分方程模型,最优化控制模型,信息模型,随机模型,决策与对策模型,模拟模型等。4)按照模型的特征分,可分为静态和动态模、确定和随机模型、离散和连续模型、线性和非线性模型等。5)按照对模型结构了解的程度分,有所谓白箱模型、灰箱模型和黑箱模型,它们分别意味着人们对原型的内在机理了解清楚、不太清楚和不清楚。2.对数学建模的介绍数学建模是指对现实世界的一特定对象,为了某特定目的,做出一些重要的简化和假设,运用适当的数学工具得到一个数学结构,用它来解释特定现象的现实性态,预测对象的未来状况,提供处理对象的优化决策和控制,设计满足某种需要的产品等。数学建模的一般过程如下:明确问题明确问题即建模的准备阶段,要建立现实问题的数学模型,第一步是要对解决的问题有一个明确清晰的的提法,通常我们遇到的某个实际问题,在开始阶段是比较模糊的,又带实际背景,因此在建模前必须对问题进行全面深入细致的了解和调查,查阅有关的文献,同时要着手收集有关的数据,收集数据时事先应考好数据的整理形式,例如利用表格或图形等。在这期间还应仔细分析已有的数据和条件,使问题进一步明确化,使我们要更好地抓住问题的本质及特征!为数学建模打下好良好的基础。进行合理的假设作为课题的原型都是复杂的,具体的,是质和量、现象和本质、偶然和必然的统一体。这样的原型如果不抽象和简化,人们对其认识是困难的,也是很难把握它的本质属性,而建模假设就是根据建模的目的对模型进行抽象,简化。把那些反映问题本质属性的形态,量及其关系抽象出来,简化掉那些非本质的因素,使之摆脱原型的具体复杂形态!,形成对建模有用的信息资源和前提条件。一般模型假设遵从以下原则:目的性原则:从原型中抽象出与建模目的有关的因素,简化掉无关的因素或关系不大的因素。简明性原则:所给的假设条件要简单,精确,有利于构造模型。真实性原则:设条款要符合情理,简化带来的误差应满足实际问题所允许的范围内。全面性原则:在对事物原型本身作出的假设的同时,还要给出原型所处的环境条件。构造模型在建模的假设的基础上,进一步分析建模的假设的条款,首先区分那些是常量,哪些是变量,哪些已知,然后查出各种量所处的位置、作用和它们之间的关系,选择恰当的数学工具和构造模型的方法对其进行表征,构造出刻划实际问题的数学模型,这里要注意两点:其一.构造一具体的问题的模型是要尽可能地简单的模型,然后把它与实际问题进行比较,再把其次要的因素加进去,逐渐逼近现实来修改模型,使之趋于完善。其二:要善于借鉴已有的数学模型,许多的实际问题,尽管现象和背景都不同却有相同的模型。模型求解不同的模型要用到不同数学工具求解,如可以采用解方程,画图形证明定理、逻辑运算、数值运算等传统的方法和近代的数学方法,建模发展到现代多数场合的模型必须依靠电子计算机的数值求解。模型的检验与修正建立数学模型的目的在于解决实际问题。因此必须把模型解得的结果返回到实际问题,如果模型的结果与实际问题状况相符合,表明模型经检验是符合实际问题的,相反则不行,它就不能直接应用于实际问题。这时数学模型建立如果没有问题,就需要考虑建模时关于所假设的是否合理,检验是否忽略了不应该忽略的因素或还保留了不应该保留的因素。对假设给出必要的修正,重复前面的建模过程,直到使模型能够反映所给的实际问题。3.数学建模的一般方法1)机理分析法从基本物理定律以及系统的结构数据来推导出模型。比例分析法--建立变量之间函数关系的最基本最常用的方法。代数方法--求解离散问题(离散的数据、符号、图形)的主要方法。逻辑方法--是数学理论研究的重要方法,对社会学和经济学等域的实际问题,在决策,对策等学科中得到广泛应用。常微分方程--解决两个变量之间的变化规律,关键是建立”瞬时变化率”的表达式。偏微分方程--解决因变量与两个以上自变量之间的变化规律。2)数据分析法从大量的观测数据利用统计方法建立数学模型。回归分析法--用于对函数f(x)的一组观测值(xi,fi)i=1,2,…,n,确定函数的表达式,由于处理的是静态的独立数据,故称为数理统计方法。时序分析法--处理的是动态的相关数据,又称为过程统计方法。回归分析法--用于对函数f(x)的一组观测值(xi,fi)i=1,2,…,n,确定函数的表达式,由于处理的是静态的独立数据,故称为数理统计方法。时序分析法--处理的是动态的相关数据,又称为过程统计方法。3)仿真和其他方法计算机仿真(模拟)--实质上是统计估计方法,等效于抽样试验。1.离散系统仿真--有一组状态变量。2.连续系统仿真--有解析表达式或系统结构图。因子试验法--在系统上作局部试验,再根据试验结果进行不断分析修改,求得所需的模型结构。人工现实法--基于对系统过去行为的了解和对未来希望达到的目标,并考虑到系统有关因素的可能变化,人为地组成一个系统。4.应用MATLAB进行数学建模数学是在实际应用的需求中产生的,我们把遇到的实际问题进行分析,发现其中的可以用数学语言来描述的关系或规律,把这个实际问题转化成一个数学问题,建立了数学模型!。但数学模型迫切需要一个方便、快捷且功能强大的工具去实现并解决,特别是随着科技的进步,人们在解决问题的时候常常要用到许多比较复杂的数学知识和大量的数据计算,这无疑加大了人们解决问题的难度,也要耗费更长的时间。而MATLBA正是在数学计算和大量数据处理方面具备其它软件所不具备的优势,且操作简单,运算速度快,所以应用MATLBA进行数学建模也就大大提高了人们的效率。而且MATLBA还有很强的绘图功能,这就可以使得模型图象化,使得研究人员对建模成果的优劣一目了然,容易进行修正与改进。二、简单数据作多子图建模问题问题:根据表1数据作一个多子图。要求:第一个图各类网井产油量与年份曲线图,第二个图为01~05年各类网井产油量的对比直方图,第三个图为03年各类网井产油量的饼图,第四个图为七五井和十五井产油量年份的双座标图。表1各类井网在近几年的产油量(万吨)年份

产油量

类型199719981999200020012002200320042005“七五”井500.6442.4428.6370.1343.1“八五”井354.7318.0280.7246.6229.0“九五”井197.4297.7412.8547.0579.8547.5527.0492.3437.0“十五”井72.3218.2297.1416.1508.7

MATLAB语言来对此例题做以下解析:figure('position',[50,50,800,650])%在图形窗口左下角建立横纵坐标都为50的,宽度800,高度650的窗t1=1997:2005;%产生行向量t1t2=2001:2005;%产生行向量t2y1=[500.6442.4428.6370.1343.1];%建立一个行矩阵y1y2=[354.7318.0280.7246.6229.0];%建立一个行矩阵y2y3=[197.4297412.8547.0579.8547.5527.0492.3437.0];%建立一个行矩阵y3y4=[72.3218.2297.1416.1508.7]%建立一个行矩阵y4subplot(2,2,1)%2*2个区中的1号区plot(t2,y1,t2,y2,t1,y3,t2,y4);%绘制二维图像title('各类网井产油量与年份曲线图');%标题为各类网井产油量与年份曲线图legend('七五井','八五井','九五井','十五井',1);%列出图标t2=2001:2005;%产生行向量t2y2=[500.6354.7579.872.3442.4318.0547.5218.2428.6280.7527.0297.1370.1246.6492.3437.0343.1229.0437.0508.4];%建立一个行矩阵y2subplot(2,2,2)%2*2个区中的2号区bar(t2,y2)title('01~05年各类网井产油量的对比直方图');%标题为01~05年各类网井产油量的对比直方图legend('七五井','八五井','九五井','十五井',1);%列出图标t3=[343.1229.0437.0508.7];%产生行向量t3subplot(2,2,3))%2*2个区中的3号区pie(t3);title('03年各类网井产油量的饼图');%标题'03年各类网井产油量的饼图legend('七五井','八五井','九五井','十五井',1);%列出图标t4=2001:1:2005;%产生行向量t4y1=[354.7318.0280.7246.6229.0];y2=[72.3218.2297.1416.1508.7];%建立一个行矩阵y1subplot(2,2,4);%2*2个区中的4号区plotyy(t4,y1,t4,y2);%绘制二维图像title('七五井和十五井产油量与年份的双座标图');%标题七五井和十五井产油量与年份的双座标图legend('七五井','十五井');%列出图标图SEQ图\*ARABIC1三、计划问题问题一.假设某厂计划生产甲、乙两种产品,现库存主要材料有A类3600公斤,B类2000公斤,C类3000公斤。每件甲产品需用材料A类9公斤,B类4公斤,C类3公斤。每件乙产品,需用材料A类4公斤,B类5公斤,C类10公斤。甲单位产品的利润70元,乙单位产品的利润120元。问如何安排生产,才能使该厂所获的利润最大。建立数学模型:设x1、x2分别为生产甲、乙产品的件数。f为该厂所获总润。 maxf=70x1+120x2 s.t9x1+4x2≤3600 4x1+5x2≤2000 3x1+10x2≤3000 x1,x2≥0MATLAB程序如下: f=[-70-120];%建立矩阵f A=[94;45;310];%建立矩阵A b=[3600;2000;3000];%建立向量b lb=[00];%建立矩阵 ub=[]; [x,fval,exitflag]=linprog(f,A,b,[],[],lb,ub)%判断语句 maxf=-fval%给最大值赋值运行结果如图所示。x=200.0000240.0000fval=-4.2800e+004exitflag=1maxf=4.2800e+004问题二.某公司有一批资金用于4个工程项目的投资,其投资各项目时所得的净收益(投入资金锪百分比)如下表:表2工程项目收益表工程项目ABCD收益(%)1510812由于某种原因,决定用于项目A的投资不大于其他各项投资之和而用于项目B和C的投资要大于项目D的投资。试确定全文该公司收益最大的投资分配方案。建立数学模型:设x1、x2、x3、x4分别代表用于项目A、B、C、D的投资百分数。 maxf=0.15x1+0.1x2+0.08x3+0.12x4 s.tx1-x2-x3-x4≤0 x2+x3-x4≥0 x1+x2+x3+x4=1 xj≥0j=1,2,3,4 将其转换为标准形式:minz=-0.15x1-0.1x2-0.08x3-0.12x4 s.tx1-x2-x3-x4≤0 -x2-x3+x4≤0 x1+x2+x3+x4=1 xj≥0j=1,2,3,4MATLAB程序如下:f=[-0.15;-0.1;-0.08;-0.12];%建立矩阵A=[1-1-1-10-1-11];%建立矩阵b=[0;0];%建立向量Aeq=[1111];%建立矩阵beq=[1];%建立向量lb=zeros(4,1);%建立矩阵[x,fval,exitflag]=linprog(f,A,b,Aeq,beq,lb)%判断语句f=-fval%给最大值赋值运行结果如图所示:x=0.50000.25000.00000.2500fval=-0.1300exitflag=1f=0.1300问题三.运输问题有A、B、C三个食品加工厂,负责供给甲、乙、丙、丁四个市场。三个厂每天生产食品箱数上限如下表:表三工厂ABC生产数604050表四四个市场每天的需求量如下表:市场甲乙丙丁需求量20353334表五从各厂运到各市场的运输费(元/每箱)由下表给出:收收点发点市场甲乙丙丁工厂A2132B1321C3411求在基本满足供需平衡的约束条件下使总运输费用最小。建立数学模型:设aij为由工厂i运到市场j的费用,xij是由工厂i运到市场j的箱数。bi是工厂i的产量,dj是市场j的需求量。 b=(604050)Td=(20353334)T 3141ijijijxaf xij≥0MATLAB程序如下:A=[2132;1321;3411];%建立矩阵 f=A(:);%建立矩阵 B=[100100100100 010010010010 001001001001];%建立矩阵 D=[111000000000 000111000000 000000111000 000000000111];%建立矩阵 b=[60;40;50];%建立向量 d=[20;35;33;34];%建立矩阵 lb=zeros(12,1);%建立矩阵 [x,fval,exitflag]=linprog(f,B,b,D,d,lb)%用于LP的求解函数结果:x= 0.0000 20.0000 0.0000 35.0000 0.0000 0.0000 0.0000 0.0000 33.0000 0.0000 18.4682 15.5318fval= 122.0000exitflag=1四、二次规划模型问题一.求解:二次规划问题 minf(x)=x1-3x2+3x12+4x22-2x1x2 s.t2x1+x2≤2 -x1+4x2≤3MATLAB程序如下:f=[1;-3]%建立矩阵 H=[6-2;-28]%建立矩阵 A=[21;-14]%建立矩阵 b=[2;3]%建立向量 [X,fval,exitflag]=quadprog(H,f,A,b)%使用quadprog函数来求值结果: X= -0.0455 0.3636fval= -0.5682exitflag=1问题二.求解:二次规划问题 min+x12+2x22-2x1x2-4x1-12x2 x1+x2≤2 -x1+2x2≤22x1+x2≤30≤x1,0≤x2MATLAB程序如下:H=[2-2;-24];%建立矩阵 f=[-4;-12];%建立矩阵 A=[11;-12;21];%建立矩阵 b=[2;2;3];%建立向量 lb=zeros(2,1);%建立矩阵 [x,fval,exitflag]=quadprog(H,f,A,b,[],[],lb)%使用quadprog函数来求值结果: x= 0.6667 1.3333fval= -16.4444exitflag= 1五、多目标规划模型问题一.某钢铁厂准备用5000万用于A、B两个项目的技术改造投资。设x1、x2分别表示分配给项目A、B的投资。据专家预估计,投资项目A、B的年收益分别为70%和66%。同时,投资后总的风险损失将随着总投资和单项投资的增加而增加,已知总的风险损失为0.02x12+0.01x22+0.04(x1+x2)2,问应如何分配资金才能使期望的收益最大,同时使风险损失为最小建立数学模型 maxf1(x)=70x1+66x2 minf2(x)=0.02x12+0.01x22+0.04(x1+x2)2x1+x2≤5000 0≤x1,0≤x2线性加权构造目标函数:maxf=0.5f1(x)–0.5f2(x)化最小值问题:min(-f)=-0.5f1(x)+0.5f2(x)首先编辑目标函数M文件ff1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论