数学建模软件课件_第1页
数学建模软件课件_第2页
数学建模软件课件_第3页
数学建模软件课件_第4页
数学建模软件课件_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

数学建模软件MATLAB语言数学建模软件MATLAB语言1一MATLAB概述与运算基础MATLAB语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,自1984年由美国MathWorks公司推向市场以来,历经十多年的发展与竞争,现已成为国际公认的最优秀的工程应用开发环境。MATLAB功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。一MATLAB概述与运算基础MATLAB语言是一种广泛应用2在欧美各高等院校,MATLAB已经成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,成为大学生、硕士生以及博士生必须掌握的基本技能。MATLAB:是英文MATrixLABorotory(矩阵实验室)的缩写。在欧美各高等院校,MATLAB已经成为线性代数、自动控制理论3一.MATLAB特点:一.MATLAB特点:4一.MATLAB特点:1.数值计算和符号计算功能MATLAB的数值计算功能包括:矩阵运算、多项式和有理分式运算、数据统计分析、数值积分、优化处理等。符号计算将得到问题的解析解。2.MATLAB语言MATLAB除了命令行的交互式操作以外,还可以程序方式工作。使用MATLAB可以很容易地实现C或FORTRAN语言的几乎全部功能,包括Windows图形用户界面的设计。3.图形功能MATLAB提供了两个层次的图形命令:一种是对图形句柄进行的低级图形命令,另一种是建立在低级图形命令之上的高级图形命令。利用MATLAB的高级图形命令可以轻而易举地绘制二维、三维乃至四维图形,并可进行图形和坐标的标识、视角和光照设计、色彩精细控制等等。一.MATLAB特点:1.数值计算和符号计算功能2.MA5命令窗口的命令编辑区命令编辑区用于输入命令和显示计算结果。键入命令并按下回车键后,MATLAB就会解释执行所输入的命令,并在命令后面给出计算结果。例如:在MATLAB命令窗口输入命令:a=[1,1.5,2,9,7;0,3.6,0.5,-4,4;7,10,-3,22,33;3,7,8.5,21,6;3,8,0,90,-20]将显示一个5*5矩阵。MATLAB集成环境1.MATLAB命令窗口命令窗口的命令编辑区MATLAB集成环境1.MATLAB命6MATLAB运算量MATLAB运算量71.变量和赋值语句MATLAB赋值语句有两种形式:(1)变量=表达式(2)表达式其中“表达式”是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。[注]第二种语句形式下,将表达式的值赋给MATLAB的永久变量ans。如果在语句的最后加分号,那么,MATLAB仅仅执行赋值操作,不再显示运算的结果。在一条语句中,如果表达式太复杂,一行写不下,可以加上三个小黑点(续行符)并按下回车键,然后接下去再写。例如s=1-1/2+1/3-1/4+1/5-1/6+1/7-…-1/8+1/9-1/10+1/11-1/12;1.变量和赋值语句82.MATLAB表达式算术表达式。运算符有:+(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方)对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。关系表达式。运算符有:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、~=(不等于)逻辑表达式。运算符有:&(与)、|(或)和~(非)2.MATLAB表达式9运算法则:

(1)在逻辑运算中,确认非零元素为真,用1表示,零元素为假,用0表示。(2)参与逻辑运算的可以是两个标量、两个同维矩阵或参与逻辑运算的元素一个为标量,另一个为矩阵。(3)在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。2.MATLAB表达式运算法则:2.MATLAB表达式10矩阵运算矩阵运算11

矩阵是MATLAB最基本的数据对象,MATLAB的大部分运算或命令都是在矩阵运算的意义下执行的。在MATLAB中,不需对矩阵的维数和类型进行说明,MATLAB会根据用户所输入的内容自动进行配置。1.建立矩阵建立矩阵可以用:直接输入法、利用函数建立矩阵和利用M文件建立矩阵。直接输入法:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。(也可以用回车键代替分号)例如,键入命令:A=[123;456;789]输出结果是:A=123456789MATLAB运算量矩阵是MATLAB最基本的数据对象,MATLAB的大部分运12利用函数建立数值矩阵:MATLAB提供了许多生成和操作矩阵的函数,可以利用它们去建立矩阵。例如:reshape函数和diag函数等。reshape函数用于建立数值矩阵。diag函数用于产生对角阵。利用M文件建立矩阵:对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。其步骤为:第一步:使用编辑程序输入文件内容。第二步:把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。第三步:在MATLAB命令窗口中输入mymatrix,就会自动建立一个名为AM的矩阵,可供以后显示和调用。1.建立矩阵利用函数建立数值矩阵:MATLAB提供了许多生成和操作矩阵的13利用M文件建立矩阵:对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。其步骤为:第一步:使用编辑程序输入文件内容。第二步:把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。第三步:在MATLAB命令窗口中输入mymatrix,就会自动建立一个名为AM的矩阵,可供以后显示和调用。1.建立矩阵利用M文件建立矩阵:对于比较大且比较复杂的矩阵,可以为它专门142.冒号表达式在MATLAB中,冒号是一个重要的运算符。利用它可以产生向量,还可用来拆分矩阵。冒号表达式的一般格式是:e1:e2:e3其中e1为初始值,e2为步长,e3为终止值。冒号表达式可产生一个由e1开始到e3结束,以步长e2自增的行向量。3.MATLAB常用数学函数MATLAB提供了许多数学函数,函数的自变量规定为矩阵变量,运算法则是将函数逐项作用于矩阵的元素上,因而运算的结果是一个与自变量同维数的矩阵。例如:A=[123;456]B=fix(pi*A)C=cos(pi*B)2.冒号表达式3.MATLAB常用数学函数154.矩阵的基本运算(1)矩阵转置(2)矩阵加和减(3)矩阵乘法(4)矩阵除法A\b=inv(A)*b(5)矩阵的乘方a^24.矩阵的基本运算165.建立矩阵的函数常用函数有:eye(size(A))产生与A矩阵同阶的单位矩阵zeros(m,n)产生0矩阵ones(m,n)产生幺矩阵rand(m,n)产生随机元素的矩阵Size(a)返回包含两个元素的向量。Length(a)返回向量的最大者。6.数组运算(1)数组的加和减(2)数组的乘和除(3)数组的乘方5.建立矩阵的函数6.数组运算17应用举例应用举例18【例1】求解线性方程组AX=B

11.5297303.60.5-44-4其中A=710-32233,B=20378.5216538090-2016

【例1】求解线性方程组AX=B19

在MATLAB命令窗口输入命令:a=[1,1.5,2,9,7;0,3.6,0.5,-4,4;7,10,-3,22,33;3,7,8.5,21,6;3,8,0,90,-20];b=[3;-4;20;5;16];x=a\b得到的结果是:x=3.5653-0.9255-0.26950.14350.0101在MATLAB命令窗口输入命令:20

【例2】求方程x^4+7x^3+9x-20=0的全部根。

在MATLAB命令窗口输入:p=[1,7,0,9,-20];%建立多项式系数向量x=roots(p)%求根得到的结果是:x=-7.2254-0.4286+1.5405i-0.4286-1.5405i1.0826【例2】求方程x^4+7x^3+9x-20=21【引例】求下列三阶线性代数方程组的近似解MATLAB程序为:A=[2-54;15-2;-124];b=[5;6;5];x=A\b【引例】求下列三阶线性代数方程组的近似解MATLAB程序22在MATLAB命令窗口,先输入下列命令构造系数矩阵A和右端向量b:A=[2-54;15-2;-124]A=2-5415-2-124b=[5;6;5]b=565然后只需输入命令x=A\b即可求得解x:x=A\bx=2.76741.18601.3488在MATLAB命令窗口,先输入下列命令构造系数矩阵A和右端向23行列式的值行列式的值24MATLAB提供的内部函数det用来计算矩阵的行列式的值。设矩阵A为一方阵(必须是方阵),求矩阵A的行列式值的格式为:det(A)。注意:本函数同样能计算通过构造出的稀疏矩阵的行列式的值。关于如何构造稀疏矩阵,将在本章最后一节介绍。【例】利用随机函数产生一个三阶方阵A,然后计算方阵之行列式的值。A=rand(3)A=0.95010.48600.45650.23110.89130.01850.60680.76210.8214det(A)ans=0.4289MATLAB提供的内部函数det用来计算矩阵的行列式的值。设25矩阵求逆及其线性代数方程组求解矩阵求逆及其线性代数方程组求解261.矩阵求逆若方阵A,B满足等式A*B=B*A=I

(I为单位矩阵)则称A为B的逆矩阵,或称B为A的逆矩阵。这时A,B都称为可逆矩阵(或非奇异矩阵、或满秩矩阵),否则称为不可逆矩阵(或奇异矩阵、或降秩矩阵)。1.矩阵求逆27试用inv函数求方阵A的逆阵A-1赋值给B,且验证A与A-1是互逆的。A=[1-11;5-43;211];B=inv(A)B=-1.40000.40000.20000.2000-0.20000.40002.6000-0.60000.2000A*Bans=1.00000.00000.00000.00001.00000.00000.00000.00001.0000B*Aans=1.00000.00000.00000.00001.00000.00000.00000.00001.0000试用inv函数求方阵A的逆阵A-1赋值给B,且验证A与A-1282.矩阵求逆解法利用求系数矩阵A的逆阵A-1,我们可以得到矩阵求逆解法。对于线性代数方程组Ax=b,等号两侧各左乘A-1,有:A-1Ax=A-1b由于A-1A=I,故得:x=A-1b2.矩阵求逆解法29【例】试用矩阵求逆解法求解例6.20中矩阵A为系数矩阵的线性代数方程组Ax=b的解。A=[1-11;5-43;211];b=[2;-3;1];x=inv(A)*bx=-3.80001.40007.2000【例】试用矩阵求逆解法求解例6.20中矩阵A为系数矩阵的线性303.直接解法对于线性代数方程组Ax=b,我们可以运用左除运算符“\”象解一元一次方程那样简单地求解:x=A\b当系数矩阵A为N*N的方阵时,MATLAB会自行用高斯消去法求解线性代数方程组。若右端项b为N*1的列向量,则x=A\b可获得方程组的数值解x(N*1的列向量);若右端项b为N*M的矩阵,则x=A\b可同时获得同一系数矩阵A、M个方程组数值解x(为N*M的矩阵),即x(:,j)=A\b(:,j),j=1,2,…M。3.直接解法31数学建模软件课件32解法1:分别解方程组(1)Ax=b1;(2)Ay=b2A=[1-11;5-43;211];b1=[2;-3;1];b2=[3;4;-5];x=A\b1x=-3.80001.40007.2000y=A\b2-3.6000-2.20004.4000得两个线性代数方程组的解:(1)x1=-3.8,x2=1.4,x3=7.2;(2)y1=-3.8,y2=1.4,y3=7.2解法1:分别解方程组(1)Ax=b1;(2)Ay=b2y=33解法2:将两个方程组连在一起求解:Az=bb=[23;-34;1-5]z=A\bz=-3.8000-3.60001.4000-2.20007.20004.4000很明显,这里的解z的两个列向量便是前面分别求得的两组解x和y解法2:将两个方程组连在一起求解:Az=b34习题1、解方程组Ax=b,分别用求逆解法与直接解法求其解。习题1、解方程组Ax=b,分别用求逆解法与直接解法求其解。35MATLAB的符号计算MATLAB的符号计算36所谓符号计算是指在运算时,无须事先对变量赋值,而将所得到结果以标准的符号形式来表示。MathWorks公司以Maple的内核作为符号计算引擎(Engine),依赖Maple已有的函数库,开发了实现符号计算的两个工具箱:基本符号工具箱和扩展符号工具箱。所谓符号计算是指在运算时,无须事先对变量赋值,而将所得到结果37一、符号计算基础一、符号计算基础38一、符号计算基础(一)定义符号变量参与符号运算的对象可以是符号变量、符号表达式或符号矩阵。符号变量要先定义,后引用。可以用sym函数、syms函数将运算量定义为符号型数据。引用符号运算函数时,用户可以指定函数执行过程中的变量参数;若用户没有指定变量参数,则使用findsym函数默认的变量作为函数的变量参数。一、符号计算基础(一)定义符号变量391、sym函数

sym函数的主要功能是创建符号变量,以便进行符号运算,也可以用于创建符号表达式或符号矩阵。用sym函数创建符号变量的一般格式为:x=sym(‘x’)其目的是将’x’创建为符号变量,以x作为输出变量名。每次调用该函数,可以定义一个符号变量。一、符号计算基础(一)定义符号变量1、sym函数一、符号计算基础(一)定义符号变量40【例1】作符号计算:a,b,x,y均为符号运算量。在符号运算前,应先将a,b,x,y定义为符号运算量一、符号计算基础(一)定义符号变量【例1】作符号计算:一、符号计算基础(一)定义符号变量41a=sym(‘a’);

%定义‘a’为符号运算量,输出变量名为ay=2/bb=sym(‘b’);x=sym(‘x’);y=sym(‘y”);[x,y]=solve(a*x-b*y-1,a*x+b*y-5,x,y)%以a,b为符号常数,x,y为符号变量即可得到方程组的解:x=3/ay=2/b一、符号计算基础(一)定义符号变量a=sym(‘a’);%定义‘a’为符号运算量,输出变量名42【例2】已知一复数表达式z=x+i*y,试求其共轭复数,并求该表达式与其共轭复数乘积的多项式。为了使乘积表达式x^2+y^2非负,这里,把变量x和y定义为实数。x=sym(‘x’,’real’);y=sym(‘y’,’real’);一、符号计算基础(一)定义符号变量【例2】已知一复数表达式z=x+i*y,试求其共轭复数,43z=x+i*y;%定义复数表达式conj(z);%求共轭复数expand(z*conj(z))%求表达式与其共轭复数乘积的多项式ans=x^2+y^2若要去掉’x’的属性,可以使用下面语句x=sym(‘x’,’unreal’)将’x’创建为纯格式的符号变量。一、符号计算基础(一)定义符号变量z=x+i*y;%定义复数表达式一、符号计算基础(一)定442、syms函数syms函数的功能与sym函数类似。syms函数可以在一个语句中同时定义多个符号变量,其一般格式为:symsarg1arg2…argN用于将rg1,arg2,…,argN等符号创建为符号型数据。一、符号计算基础(一)定义符号变量2、syms函数一、符号计算基础(一)定义符号变量45(二)默认符号变量在数学表达式中,一般习惯于使用排在字母表中前面的字母作为变量的系数,而用排在后面的字母表示变量。例如:f=ax2+bx+c表达式中的a,b,c通常被认为是常数,用作变量的系数;而将x看作自变量。一、符号计算基础(二)默认符号变量一、符号计算基础46例如,数学表达式f=xng=sin(at+b)根据数学式中表示自变量的习惯,默认a,b,c为符号常数,x为符号变量。若在MATLAB中表示上述表达式,首先用syms函数定义a,b,n,t,x为符号对象。在进行导数运算时,由于没有指定符号变量,则系统采用数学习惯来确定表达式中的自变量,默认a,b,c为符号常数,x,t为符号变量。一、符号计算基础(二)默认符号变量例如,数学表达式一、符号计算基础(二)默认符号变量47为了了解函数引用过程中使用的符号变量个数及变量名,可以用findsym函数查询默认的变量。该函数的引用格式为:findsym(f,n)说明:f为用户定义的符号函数,n为正整数,表示查询变量的个数。n=i,表示查询i个系统默认变量。n值省略时表示查询符号函数中全部系统默认变量。一、符号计算基础(二)默认符号变量为了了解函数引用过程中使用的符号变量个数及变量名,可以用fi48【例3】查询符号函数f=xng=sin(at+b)中的系统默认变量。symsabntx%定义符号变量f=x^n;%给定符号函数g=sin(a*t+b);findsym(f,1)%在f函数中查询1个系统默认变量ans=x表示f函数中查询的1个系统默认变量为x。一、符号计算基础(二)默认符号变量【例3】查询符号函数一、符号计算基础(二)默认符号变量49(三)符号表达式符号表达式由符号变量、函数、算术运算符等组成。符号表达式的书写格式与数值表达式相同。例如,数学表达式

其符号表达式为:1+sqr(5*x))/2注意,在定义表达式前应先将表达式中的字符x定义为符号变量。一、符号计算基础(三)符号表达式一、符号计算基础50(四)生成符号函数将表达式中的自变量定义为符号变量后,赋值给符号函数名,即可生成符号函数。例如有一数学表达式:一、符号计算基础(四)生成符号函数一、符号计算基础51其用符号表达式生成符号函数fxy的过程为:symsabcxy%定义符号运算量fxy=(a*x^2+b*y^2)/c^2%生成符号函数生成符号函数fxy后,即可用于微积分等符号计算。一、符号计算基础(四)生成符号函数其用符号表达式生成符号函数fxy的过程为:一、符号计算基础(52【例4】定义一个符号函数fxy=(a*x2+b*y2)/c2,分别求该函数对x、y的导数和对x的积分。symsabcxy

%定义符号变量fxy=(a*x^2+b*y^2)/c^2;

%生成符号函数

diff(fxy,x)

%符号函数fxy对x求导数ans=2*a*x/c^2diff(fxy,y)

%符号函数fxy对y求导数ans=2*b*y/c^2

%符号函数fxy对x求积分int(fxy,x)

ans=1/c^2*(1/3*a*x^3+b*y^2*x)一、符号计算基础(四)生成符号函数【例4】定义一个符号函数fxy=(a*x2+b*y2)/c53二、微积分二、微积分54(一)微积分函数1.求极限函数limit用于求符号函数f的极限。系统可以根据用户要求,计算变量从不同方向趋近于指定值的极限值。该函数的格式及功能:二、微积分(一)微积分函数二、微积分55limit(f,x,a):求符号函数f(x)的极限值。即计算当变量x趋近于常数a时,f(x)函数的极限值。limit(f,a):求符号函数f(x)的极限值。由于没有指定符号函数f(x)的自变量,

温馨提示

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

评论

0/150

提交评论