数学建模讲座——计算机模拟专场_第1页
数学建模讲座——计算机模拟专场_第2页
数学建模讲座——计算机模拟专场_第3页
数学建模讲座——计算机模拟专场_第4页
数学建模讲座——计算机模拟专场_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、数学建模讲座计算机模拟专场曹敦虔本次讲座主要目的是使用同学们初步了解计算机模拟的基本知识,初步了解常用数学软件,提高对数学建模的兴趣。重点在于提高同学们对数学、数学建模以及数学软件的兴趣。1. 计算机模拟概述 使用计算机来模拟事物(包括客观事物和人类思维,也包括过去、现在和将来的事物)的状态、发展过程和结果,使计算机所呈现的状况与真实事物具有某种程度的相似,用以帮助人们了解事物的本质,掌握事物的规律,以及预测未来发生的事情,给出相应的解决方案。计算机模拟是多种多样的,有实物模拟,思维模拟,数学模拟,机理模拟,过程模拟,预测模拟,以及它们之间的结合。如三维建筑模型是实物模拟,问题解决模拟是思维模

2、拟,拟合、插值、数值逼近、几何图形展示是数学模拟,汽车碰撞的计算机模拟是机理模拟,城市交通流模拟是过程模拟,计算机股票预测是预测模拟,等等。计算机模拟具有成本低,可重复,速度快,精度高等优点。现在,计算机模拟已经应用到生活、生产、军事、金融、科研、航天、城市建设、天气预报等领域。2. 数学建模竞赛现状 总的来说,现在数学建模竞赛主要表现为数据量大,模型复杂,求解困难等特点,使用手工求解是不可能,必须借助于计算机和数学软件来处理数据和求解模型。如果2006 A 出版社的资源配置,2006 B 艾滋病疗法的评价及疗效的预测,2005 A 长江水质的评价和预测 2005 B DVD在线租赁,2004

3、 B 电力市场的输电阻塞管理,2003 A SARS的传播,2003 B 露天矿生产的车辆安排。所以数学软件是参加数学建模竞赛必须掌握的工具之一。3. 使用计算机求解数学问题的方法(1) 使用高级程序设计语言编程求解。如C+, Pascal, Basic, Java, Fortran等。(2) 使用专用数学软件求解。如Lindo求解线性规划,Lingo求解非线性规划,Spss统计数据等。(3) 使用通用数学软件求解。如Matlab, Maple, Mathematica等。(4) 综合使用各种程序设计语言、各种软件求解。4. 使用软件的理由(1) 数学函数丰富(2) 使用简便(3) 编程难度低

4、(4) 可作符号计算(5) 结果直观5. 数学软件综述 现在的计算机不仅可以进行数值计算,还可以进行符号运算。数值计算就是处理的数据和处理后的结果都是数值,而符号运算则是处理的数据和处理后的结果都是符号。所谓符号,可以是字母、公式,也可以是数字。符号计算实际上就是数学演算、数学推理和数学证明。专门用来完成这些演算、推理和证明的软件,通常称为数学软件。由于这类软件的功能覆盖了数学中相当广泛的领域,所以又称为通用数学软件。当今比较成熟的通用数学软件有Matlab、Maple和Mathematic。Matlab主要是进行矩阵的运算,具有很强的数值运算能力;而Maple和Mathematic则擅长符号

5、运算,例如公式的推导、变形、方程的符号解、微积分运算等等;它们各有自己的优点,并列为三大数学软件。另外还有一些软件只用于求解数学中某一领域的问题,这类软件称为专用数学软件,如Lindo(线性规划), Lingo(非线性规划), Spss(统计)等。6. Lindo、Lingo功能展示例1 背包问题设有一个容积为S、最大承重量为G的背包,有k种物品,它们的体积、重量、数量和使用价值分别为si、gi、ni、wi,i=1,2,k,问题应选择哪些物品装入背包,才能得到最大的使用价值?s.t.取非负整数, i=1,2,k.取S=50, G=60, k=5, s=(3 4 7 8 9), g=(5 3 6

6、 7 8), n=(3 3 5 4 6), w=(4 5 10 11 13). 在Lindo中输入如下模型:MAX 4X1 +5X2 +10X3 +11X4 +13X5ST3X1 +4X2 +7X3+8X4+9X5<655X1 +3X2 +6X3+7X4+8X5<53X1 <=3X2 <=3X3 <=5X4 <=4X5 <=6ENDGIN 5点击求解按纽即可求得最优解 OBJECTIVE FUNCTION VALUE 1) 87.00000 VARIABLE VALUE REDUCED COST X1 0.000000 -4.000000 X2 3.0

7、00000 -5.000000 X3 2.000000 -10.000000 X4 0.000000 -11.000000 X5 4.000000 -13.000000在Lingo中输入如下模型:sets:v5/1.5/:s,g,n,w,x;endsetsdata:s=3 4 7 8 9;g=5 3 6 7 8;n=3 3 5 4 6;w=4 5 10 11 13;enddatamax=sum(v5:w*x);sum(v5:s*x)<=65;sum(v5:g*x)<=53;for(v5:x<=n);for(v5: GIN( x);End点击求解按纽即可求得最优解 Object

8、ive value: 87.00000 Variable Value Reduced Cost X( 1) 0.000000 -4.000000 X( 2) 1.000000 -5.000000 X( 3) 3.000000 -10.00000 X( 4) 0.000000 -11.00000 X( 5) 4.000000 -13.000001. 展示Maple功能(1) Maple概述Maple是加拿大Waterloo大学符号计算小组于1980年开始研制,经过多年的应用和开发,至今发展到Maple7.00。由于枫树是加拿大的国树,Maple的开发者为了表示自己的爱国之情,所以把枫叶作为Map

9、le的图标和标志。Maple是一个优秀的国际流行的数学软件系统,它提供了广泛的数学计算功能,主要包括三个方面:符号演算、二维和三维图形描绘以及数值计算。Maple能解决如下问题:l 初等数学中的有理数运算(精确计算和大有理数计算),代数式运算,初等函数变换,映射与集合运算,方程求根等。l 复数运算,向量代数,平面和空间解析几何,线性代数中矩阵的各种运算和变换,线性方程组求解l 微积分中的函数的极限,导数,积分,泰勒级数、傅立叶级数展开,以及数列与级数求和,求积等l 微分方程的解析解,数值解以及通过方向场图形得出近似解此外,Maple还提供了解决诸如图论、数论、群论、组合数学、概率统计、特殊函数

10、(运算微积)和其他应用数学(如金融数学)方面的问题的软件包。总之,凡是能用公式解决的问题,Maple都能解决;它能有效地辅助人们在数学计算方面的繁琐事务,进而去从事更加智能化和深层次的问题的研究。(2) Maple的数字运算 小数精度能力.evalf(Pi,10);evalf(Pi,100);evalf(Pi,1000); 大数运算能力.10!;100!;1000!;(3) Maple的表达式处理s:=sum(i2,i=1.n);s1:=simjplify(s);s2:=factor(s1);(4) Maple求解方程(组)solve(a*x2+b*x+c=0,x);solve(a*x3+b*

11、x2+c*x+d=0,x);(5) Maple作图二维图形. plot(sin(x),x=-Pi.Pi);三维图形plot(x*y,x=-5.5,y=-5.5);2. 展示Matlab功能3. 矩阵的定义a=1 2 3b=1 2 3; 4 5 6; 7 8 9a*bc=rand(3,3)b.*czeros(3,3)eye(3,3)ones(3,3)linspasce(-pi,pi,60)4. Matlab求解线性方程组Ax=bA=1 1 1 1; 1 2 4 8; 1 3 9 27; 1 4 16 64b=3; 4; 3; -3AbA(-1)*blinsolve(A,b)5. Matlab作图

12、x= linspasce(-pi,pi,60);y=sin(x);plot(x,y);6. 函数逼近曲线的拟合x=1 1.5 3 4 5 6 6.5 7 8y=1.2 1 1.7 2.5 2 2.3 2.5 3 3.1p1=polyfit(x, y, 1) % p1为拟合结果一次多项式的系数。linc=polyval(p1, x) % linc为多项式在x点上的值。plot(x, linc,x, y, '.') % 绘制多项式和数据点。如果如下:对上面的命令行进行一点小改动就可以得到7次多项式:p7=polyfit(x, y, 7); % p7为拟合结果7次多项式的系数。xx

13、= 1:0.25:8; % xx=所有想要进行多项式计算的点。polc=polyval(p7, xx); % polc为多项式在x点上的值。plot(xx,polc, x, y, '.') ;% 绘制多项式和数据点。如果如下:曲线的插值x=1 1.5 3 4 5 6 6.5 7 8;y=1.2 1 1.7 2.5 2 2.3 2.5 3 3.1;xx = 1:0.1:8; % xx所有想要进行多项式计算的点。线性插值:yy=interp1(x,y,xx);plot(xx,yy, x, y, '.') ;% 绘制多项式和数据点。如果如下:三次多项式插值:yy=in

14、terp1(x,y,xx, 'cubic');plot(xx,yy, x, y, '.') ;% 绘制多项式和数据点。如果如下:三次样条插值:yy=spline(x,y,xx);plot(xx,yy, x, y, '.') ;% 绘制多项式和数据点。如果如下:7. Matlab应用实例例2 风寒温度当温度降低到接近于0oC时,天气预报员通常给出两值,预期的空气温度和风寒温度这是人们真实感觉到的温度。例如对于真实温度0oC和风速10mile/h,给出的风寒温度近似于-5.5oC。对于v>5mile/h,由下式给出风寒温度: (1)其中t是空气

15、温度,v是风速。这个公式在第二次世界大战时由美国科学家基于实验数据确立的。求下列情况下的风寒法度:t=2, v=20;t=-10, v=5;t=0, v=40;(摘自数学建模方法与算法,边馥萍、侯文华、梁冯珍编著,高等教育出版社,2005年5月第1版,第18页)将t=0, v=10代入(1)式,得T60.48700281,与经验值相差太大。再令t=0,画出T对v的图像如下:发现当风速大于5时,风寒温度T竟然是v的增函数,显然(1)式有误。为了得到近似的公式,将(1)式修改如下: (2)其中c1, c2为待定系数, t33。参数估计 采用最小二乘法。由实验得到的一组关于空气温度、风速和风寒温度数据如下:12345678t-10-7-5-3-1035v201015520102010T-20-13-12-6-8-5.5-32将以上数据代入(2)式并整理,得到如下线性方程组:AX=B (3)其中.这是一个超定线性方程。如果求解超定线性方程?(可用数学软件求解。Maple用linalgleastsqrs(A,B),Matlab用linsolve(A,B)这里介绍一种将超定方程化为一般方程再求解的方法。将(3)式变为A

温馨提示

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

评论

0/150

提交评论