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

下载本文档

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

文档简介

MATLAB在数学建模中的应用数学在其发展的早期主要是作为一种实用技术工具,用于处理人类生活及社会活动中的各种实际问题。近年来,随着社会的发展以及计算机技术的迅速发展,人们对数学的重要作用有了新的认识。数学在社会各领域中的应用越来越广泛,不但运用于自然科学的各个领域,而且渗透到经济、军事、管理以至于社会科学和社会活动的各领域,在许多方面发挥着越来越重要的作用。数学建模就是对我们在科学研究、技术改革、经济管理等现实生活中所遇到的实际问题加以分析、抽象、简化,用数学语言进行描述、用数学方法寻求解决方案、办法,并通过解释、验证,最终应用于实际的过程。计算机作为一种高科技的工具,大大推进了数学建模的进程,是数学建模中的不可缺少的重要工具。数学科学与计算机技术相结合,使各领域复杂的实际问题得以快速的解决。在数学建模中MATLAB软件发挥了重要的作用,借助于MATLAB的强据处理、图形处理能力可以方便、快捷、高效的解决数学建模中各种问题。通过介绍计算机软件MATLAB在数学建模中的应用,以提高数学建模的质量和效率,增强解决实际问题的能力。MATLAB的功能与特点:MATLAB既是一种语言,又是一种编程环境。MATLAB提供了很多方便用户的工具,用于管理变量、输入输出数据以及生成和管理M文件。MATLAB中的M文件的语法与其他的高级语言类似,是一种程序化的编程语言,同时也是一种解释性的编程语言,即逐行解释运行程序,程序更容易调试。它只是一个简单的ASCII码文本文件,语法比一般的高级语言都要简单,与数学语言比较接近,更容易掌握和理解。MATLAB进行数值计算的基本处理单位是复数数组(或称阵列)。它拥有一流水平的数值计算函数库,其所有数值计算算法都是国际公认的、先进的可靠算法;而执行算法的指令形式非常简单、易读易用,应用MATLAB进行函数图形绘制也非常方便。它也有简单易用的程序语言,MATLAB是一个高级的矩阵语言,它包含控制语句、函数、数构、输入和输出和面向对象编程特点。支持命令和程序两种工作方式。移植性好、可拓展性极强。它也有强大的科学计算数据处理能力,MATLAB包含了大量计算算法,拥有600多个丁程中用到的数可以方便地实现用户所需的各种计算功能。它还有出色的图形处理功能,MATLAB具有方便的数据可视化功能,以将向量和距阵用图形表现出来。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。正因为MATLAB能够能够较好的解决众多实际问题,因此受到学建模者的青睬。MATLAB在数学建模中的应用:一、基本数学运算在MATLAB下进行基本数学运算,只需将运算式直接打在提示号 后面,并按入Enter键即可。MATLAB将计算 的结果以ans显示。例:求的算术运算结果。(1)用键盘在MATLAB指令窗中输入以下内容 (12+2*(7-4)/32 (2)在上述表达式输入完成后,按【Enter】键,该就指令被执行。(3)在指令执行后,MATLAB指令窗中将显示以下结果。ans = 2 二、表达式MATLAB书写表达式的规则与“手写算式”差不多相同,但要求所有表达式都是以纯文本形式输入。如果一个指令过长可以在结尾加上.(代表此行指令与下一行连续),例如: 1*2+3*4+5*6+7*8+9*10+11*12+.13*14+15*16ans =744若不想让MATLAB每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例: y = 1034*22+35; 若要显示变数y的值,直接键入y即可: y y = 22991 MATLAB会忽略所有在百分比符号(%)之後的文字,因此百分比之後的文字均可视为程式的注解(Comments)。例:计算圆面积Area = ,半径r = 2,则可键入 r=2; % 圆半径r = 2, area=pi*r2; % 计算圆面积area area = 12.5664MATLAB提供基本的算术运算有: 加 (+)、减 (-)、乘 (*)、除 (/)、幂次方 (),范例为:5+3, 5-3, 5*3, 5/3, 53三、阵列与矩阵MATLAB的运算事实上是以阵列 (array) 及矩阵 (matrix) 方式在做运算.阵列强调元素对元素的运算,而矩阵则采用线性代数的运算方式。宣告一变量为阵列或是矩阵时,须用中括号 将元素置于其中。阵列为一维元素所构成,而矩阵为多维元素所组成。(1)矩阵的基本数学运算矩阵的基本数学运算包括矩阵的四则运算、与常数的运算、逆运算、行列式运算、幂运算、指数运算、对数运算、开方运算等。下面将一一进行讨论。A矩阵的四则运算在前面已经讲过,MATLAB是以(复)矩阵为基本计算单元的,因此矩阵的四则运算的格式与3.1节中讲的数字的运算是相同的,不过对具体的运算还有一些具体的要求。此以乘法为例:矩阵的乘法使用算符“*”,要求相乘的矩阵线性代数中矩阵相乘的要求,A和B才可以相乘。a=1 2 3; 2 3 4; 3 4 5; b=1 1 1;2 2 2;3 3 3;e=a*d e = 14 14 14 30 20 20 20 45 26 26 26 60 B矩阵与常数间运算 常数与矩阵的运算即是同此矩阵各元素之间进行运算,如数加是指矩阵每个元素都加上此常数,数乘是指矩阵每个元素都与此常数相乘。需要注意的是:当进行数除时,数只能作除数。C矩阵的逆运算矩阵的逆运算是矩阵运算中很重要的一种运算。它在线性代数及计算方法中都有很多的论述。而在MATLAB中,众多的复杂理论只变成了一个简单的命令inv。求矩阵A=的逆。解 A=2 1 -3 -1;3 1 0 7;-1 2 4 -2;1 0 -1 5;inv(A) ans = -0.0471 0.5882 -0.2706 -0.9412 0.3882 -0.3529 0.4824 0.7647 -0.2235 0.2941 -0.0353 -0.4706 -0.0353 -0.0588 0.0471 0.2941 D矩阵的行列式运算矩阵的行列式的值可由det函数计算得出。det(A) ans = -85 E矩阵的幂运算矩阵的幂运算的形式同数字的幂运算的形式相同,即用算符“”来表示。矩阵的幂运算在计算过程中与矩阵的某种分解有关,计算所得值并非是矩阵每个元素的幂值。这一点是值得读者注意的A2 ans = 9 -3 -17 6 16 4 -16 39 -2 9 21 -3 8 -1 -12 26 注意:A.2 %指每个数分别平方F矩阵的对数运算 由函数logm( )来实现logm(b) ans = Columns 1 through 2 1.96203467715005 + 0.08528517857520i 0.37300776197608 + 0.75895105456357i 0.37300776197608 + 0.11767613948263i 1.96203467715005 + 1.04719755119660i 0.37300776197608 - 0.20296131805783i 0.37300776197608 - 1.80614860576016i Column 3 0.37300776197608 - 0.84423623313876i 0.37300776197608 - 1.16487369067923i 1.96203467715005 + 2.00910992381800i G矩阵的开方运算 由函数sqrtm( )来实现sqrtm(b) %若用sqrt(b)则指对每个数分别开方ans = Columns 1 through 2 2.70648389791007 + 0.06008644375950i 0.01849847189252 + 0.53470803037640i 0.47029947369744 + 0.08290702857148i 2.02878239520269 + 0.73778794646688i 0.69619997459990 - 0.14299347233098i 1.82570247911221 - 1.27249597684329i Column 3 1.14800097640483 - 0.59479447413590i 1.37390147730729 - 0.82069497503836i 1.35108089249530 + 1.41548944917426i 四、多项式运算A求多项式的值求多项式的值可以有2种形式,对应着2种算法。一种是将输人变量值代入多项式,计算时以数组为单元,此时的计算函数为polyval;另一种则以矩阵为计算单元,进行矩阵式运算,以求得多项式的值,此时的函数为polvalm。这2种计算结果在数值上有很大的差别,这种差别来自于矩阵计算和数组运算的差别。对同一多项式及变量值分别计算矩阵计算值和数组计算值。p=1 11 55 125;b=1 1;1 1;polyval(p,b) %处理单元是矩阵中的元素。ans = 192 192 192 192 polyvalm(p,b) %当进行矩阵运算时,变量矩阵需为方阵,处理的单元为矩阵,如平方相当于两个矩阵作乘法,相当于b3+11*b2+55*b+125*eye(2)。ans = 206 81 81 206 B求多项式的根 求多项式的根可以有2种办法,一种是直接调用MATLAB的函数roots,求解多项式的所有根;另一种是通过建立多项式的伴随矩阵再求其特征值的方法得到多项式的所有根。用2种方法求解方程的所有根。解 q=1 -3 5 1 -1 q = 1 -3 5 1 -1 roots(q) ans = 1.5399 + 1.7489i 1.5399 - 1.7489i -0.4709 0.3911 e=compan(q) e = 3 -5 -1 1 1 0 0 0 0 1 0 0 0 0 1 0 eig(e) ans = 1.5399 + 1.7489i 1.5399 - 1.7489i -0.4709 0.3911 可见两种方法求得的值是相等的。C多项式的乘除法运算 多项式乘法由函数conv来实现,此函数同于向量的卷积函数;多项式的除法由函数deconv来实现,同于向量的解卷函数。计算两多项式的乘除法。p=1 2 3 4 5 6 p = 1 2 3 4 5 6 poly2sym(p) ans =x5+2*x4+3*x3+4*x2+5*x+6 d=3 4 5 d = 3 4 5 pd=conv(p,d) pd = 3 10 22 34 46 58 49 30 poly2sym(pd) ans =3*x7+10*x6+22*x5+34*x4+46*x3+58*x2+49*x+30p1=deconv(pd,d) p1 = 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 D多项式微分 多项式的微分函数polyder可以用来进行多项式的微分运算 。D.对多项式进行微分运算p=1 2 3 4 5 6 poly2sym(p) p = 1 2 3 4 5 6ans =x5+2*x4+3*x3+4*x2+5*x+6 dp=polyder(p) dp = 5 8 9 8 5 poly2sym(dp) ans =5*x4+8*x3+9*x2+8*x+5 E多项式拟合 多项式拟合是多项式运算的一个重要组成部分,在工程应用及科研工作中都得到了广泛的应用。其实现一方面可以由矩阵的除法求解超定方程来进行;另一方面在MATLAB中还提供了专用的拟合函数polyfit。其调用格式为:polyfit(x,y,n) 其中x、y为拟合数据,n为拟合多项式的次数。p,s=polyfit(x,y,n) 其中p为拟合多项式系数向量,s为拟合多项式系数向量的结构信息。用5阶多项式对上的正弦函数值进行最小二乘拟合。解x=0:pi/20:pi/2;y=sin(x);a=polyfit(x,y,5);x1=0:pi/30:pi*2;y1=sin(x1);y2=polyval(a,x1);

温馨提示

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

评论

0/150

提交评论