数学建模Matlab基础.ppt
《数学建模Matlab基础.ppt》由会员分享,可在线阅读,更多相关《数学建模Matlab基础.ppt(62页珍藏版)》请在三一办公上搜索。
1、数学建模MATLAB基础知识,主要内容,一.MATLAB介绍,二.MATLAB的数值计算功能,四.MATLAB程序设计,三.MATLAB的符号运算功能,五.MATLAB的基本图形处理功能,一.MATLAB介绍,1、MATLAB的优点,MATLAB被誉为“巨人肩上的工具”。由于使用Matlab编程运算与人进行科学计算的思路和表达方式完全一致,所以不像学习其它高级语言-如Basic、Fortran和C等那样难于掌握,用Matlab编写程序犹如在演算纸上排列出公式与求解问题,所以又被称为演算纸式科学算法语言。语言简单,MATLAB的含义是矩阵实验室(MATRIX LABORATORY),主要用于方便
2、矩阵的存取,其基本元素是无须定义维数的矩阵。MATLAB自问世以来,就是以数值计算称雄。MATLAB进行数值计算的基本单位是复数数组(或称阵列),这使的MATLAB高度“向量化”。由于它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的。编程容易,效率高,MATLAB中包括了被称作工具箱(TOOLBOX)的各类应用问题的求解工具。包括信号处理、图象处理、控制系统辨识、神经网络等。功能强大,MATLAB5.3以后的版本中包括了图形界面编辑GUI,改变了以前单一的“在指令
3、窗通过文本形的指令进行各种操作”的状况。操作方便,2、MATLAB的环境,(1)MATLAB的桌面平台,MATLAB桌面平台主要包含以下工具(见Figure1-1),命令窗口命令历史窗口当前目录窗口演示工具工作间管理窗口启动菜单,通过新建命令还可以打开M文件编辑窗口、图形窗口、建模窗口、GUI窗口和部署项目(Deployment Project)窗口。,Figure1-1 MATLAB桌面平台,当前目录窗口,工作间管理窗口,命令窗口,命令历史窗口,演示工具,启动菜单,(2)MATLAB的帮助系统,有三种方式获得MATLAB帮助:,通过使用帮助浏览器(Figure1-2),命令窗口help系列。
4、使用方式是在命令行输入help,help+函数名,Helpwin或者helpdesk。,Figure1-2 帮助浏览器,使用lookfor函数。若要查找一个不知其确切名称的函数名时使用。,其他常用查询辅助命令:,exist 变量检验函数,检验变量是否存在。what 目录中文件列表who 内存变量列表whos 内存变量详细信息which 确定文件位置,(3)MATLAB通用命令和技巧,(4)MATLAB的搜索路径与扩展,搜索路径对话框。菜单中的File/Set Path(见图Figure1-3),path命令。例如:path(path,G:my matlab examples),genpath命
5、令。,editpath或pathtool命令。见图Figure1-3,addpath命令扩展目录。例如:addpath e:my files end(-begin);,Figure1-3 路径设置,二.MATLAB的数值计算功能,1、变量,MATLAB程序中的基本数据单元称为阵列(Array),是一个分为行与列的数据集合。变量被看做是只有一行一列的阵列。MATLAB语言不需要对变量进行事先声明,也不需要指定变量类型,它会自动根据所赋予变量的值或对变量所进行的操作来确定变量的类型。其命名规则为:,(1)变量名的大小写是敏感。(2)变量的第一个字符必须为英文字母,而且不能超过31个字符。(3)变量
6、名可以包含下划线、数字,但不能为空格符、标点。(4)命名变量时可以取一个容易记忆并且能表达出其含义的名称,如汇率,可以定义为exchange_rate。,对于变量作用域,默认情况是局部变量,使用global定义全局变量,而且全局变量常用大写的英文字母表示。,MATLAB预定义的变量如下表所示:,在定义变量时要尽量与避免与这些名字相同,以免改变它们的值,如果已经改变,可以通过clear+变量名 来恢复它的初始值,也可以通过重新启动MATLAB恢复这些值。,2、数字变量,(1)演算纸式的科学计算方式。输入数字运算表达式然后回车即可。,(2)数字的输入输出格式。所有数据均按IEEE浮点标准的长型格式
7、存储。输入格式沿用了C语言的风格和规则;输出格式使用 format+数据格式 命令控制,只影响在屏幕上的显示结果,不影响内部的存储和运算。,3、字符串,使用单引号设定后输入或赋值。如:s=matrix laboratory,字符串的每个字符(包括空格)都是字符数组的一个元素,可以使用size(变量名)查看字符数组的维数。,在MATLAB中,字符串与字符数组(矩阵)基本上是等价的,都是以阵列形式存储。,函数char用来生成字符数组(矩阵)如:s=char(M,A,T,L,A,B);,函数double可以将字符串转化为数值代码(ASCII码),函数cellstr将字符数组转化为字符串。,数值数组和
8、字符串之间的转换函数如下表所示:,字符串操作函数如下表所示:,用eval函数实现字符串执行的功能。如:eval(M num2str(1)=magic(5),4、单元型变量(cell arrays),(1)单元型变量的定义。两种方法:赋值语句和cell函数。,例如:A=1 3-7;2 0 8;0 5 1,This is a text string,1:4。赋值时还可以采用直接对单元型变量中的元素直接赋值的方法,实现方式是用cell函数预先分配存储空间,A=cell(1,3),建立一个一行三列的单元型变量。,单元型变量是一种以任意形式的数组为元素的多维数组。,单元型变量的引用可以使用大括号作为下标
9、的标示(显示全部内容)和小括号作为下标的标示(显示压缩形式)。,(2)相关函数,5、结构型变量,(1)结构型变量类似C语言中的结构体,它和单元型变量的区别在于结构型变量是以指针方式来传递数据,并且每一个元素都有一个独立的名字。两种定义方式,直接赋值定义和由函数struct定义。,结构型变量名=struct(元素名1,元素值1,元素名2,元素值2,),例如:student.name=John;student.addr=123 Main Street;student.city=ZB;%建立一个名为student的结构型变量,(2)相关函数,6、向量及其运算,(1)向量的生成,命令窗口直接输入,使用
10、,元素之间用空格、逗号或者分号隔开。,使用冒号表达式,基本形式为x=x0:step:xn,其中xn为尾元素数值限,而不一定是尾元素的值。当step=1时可省略步长。,生成线性等分向量,使用linspace函数。Y=linspace(x1,x2,n),生成对数等分向量,使用logspace函数。Y=logspace(x1,x2,n),(2)基本运算,数加(减)、数乘、点积(dot函数)、叉积(cross函数)、混合积dot(a,cross(b,c),7、矩阵及其运算,(1)矩阵的生成,命令窗口直接输入,使用,元素之间用空格、逗号或者分号(行与行之间的分隔符)隔开。,创建M文件输入大矩阵。,(2)
11、基本运算,矩阵的四则运算。其中乘法运算要注意相乘的双方有相邻公共维,除法分为左除“”和右除”/”(需要计算逆矩阵),矩阵的逆运算。Inv函数。,矩阵的幂运算。,矩阵的指数运算。expm、expm1、expm2、expm3,矩阵的对数运算。logm,矩阵的特征值函数。eig和eigs,矩阵的奇异值函数。svd和svds,矩阵的条件数函数。cond,condest,rcond,特征值的条件数函数。codeig,范数函数。norm,normest,其他还有秩函数rank,迹函数trace,零空间函数null,正交空间函数orth,伪逆函数pinv等,(3)矩阵分解函数,特征值分解,v,d=eig(X
12、),v,d=eig(X,nobalance),v,d=eig(A,B),复数特征值对角阵与实数块特征值对角阵的转化V,D=cdf2rdf(V,D),U,T=rsf2csf(U,T),奇异值分解,U,S,V=svd(X),LU分解,lu函数,Chol分解,chol函数,QR分解,qr函数,(4)特殊矩阵,空阵,可以用clear从内存中清除,全0阵 zeros,单位阵eye,全1阵ones,随机阵rand/randn,其他特殊矩阵 见下表,(5)矩阵的一些特殊操作,变维。有两种方法,使用冒号(:)和使用函数reshape,使用“:”表达式对两个矩阵进行变维操作,需要预先定义两个矩阵的维数;resh
13、ape有两种形式,分别为reshape(X,M,N)和reshape(X,M,N,P),变向 主要函数如下表所示:,矩阵的抽取 对角线元素抽取函数diag(X,k)/diag(v,k),抽取矩阵X的第k条对角线的元素向量/使得向量v为所得矩阵的第k条对角线元素。上三角元素抽取tril(X,k)和下三角元素抽取triu(X,k),扩展 两种方法:利用对矩阵标示块的赋值命令X(m1:m2,n1:n2)=a生成大矩阵,其中m2-m1+1必须等于a的行维数,n2-n1+1必须等于a的列维数,生成m2 n2维的矩阵X;利用小矩阵组合生成大矩阵,要严格注意矩阵大小的匹配。,7、数组及其运算,(1)基本数组
14、运算,同型矩阵之间的运算通常称为数组运算。(矩阵的数组运算),四则运算。数组的乘除法是指两个同维数组间对应元素之间的乘除法,运算符为”.*”,”./”和”.”。数组与常数之间的运算可以加”.”,也可以不加。,幂运算。.,对每个数组元素的幂运算。,指数运算exp,对数运算log和开方运算sqrt。,(2)数组函数运算,只要把运算的数组带入到函数中就可以了,通用形式为funname(A),(3)逻辑运算,基本逻辑运算。参见下一页表格,逻辑关系函数运算。参见下一页表格,8、多项式运算,(1)多项式的表示方法转化为向量问题,对于多项式,用下面的行向量表示:,系数向量直接输入法,MATLAB自动将向量元
15、素按降幂顺序分配给各系数值。函数poly2sym可以将向量表示的多项式转化为符号多项式表示。,特征多项式输入法,从矩阵求其特征多项式获得,由函数poly实现。,注:由特征多项式生成的多项式首项系数一定为1;n阶矩阵一般产生n次多项式。,由根创建多项式,由函数poly实现。注:若要生成实系数多项式,则根中的复数必定对应共轭;生成的多项式向量包含很小的虚部时可用real命令将其过滤掉。,(2)多项式的运算,多项式求值。输入变量值代入多项式计算时以数组为单元的使用函数polyval;以矩阵(必须为方阵)为计算单元求多项式的值用函数polyvalm;,多项式求根。两种方法,一种是调用函数roots,另
16、一种是通过建立多项式的伴随矩阵再求其特征值的方法得到多项式的所有根。(使用compan和eig函数),多项式的乘除法运算。乘法使用函数conv(向量卷积),除法使用函数deconv,多项式微分。微分函数polyder,多项式拟合。两种方法,一种是由矩阵的除法求解超定方程来进行,另一种是用拟合函数polyfit,调用方式为polyfit(X,Y,n)和p,s=polyfit(X,Y,n),三.MATLAB的符号运算功能,早期的MATLAB不具备符号运算功能,在1993年Mathworks公司从加拿大滑铁卢大学购买了Maple的使用权,并在此基础上,利用Maple函数库,开发了符号计算工具箱(Sy
17、mbolic Toolbox),从此MATLAB便具备了数值计算、符号计算和图形处理三大基本功能于一身,称为在数学计算领域功能最强的语言。,MATLAB实现符号计算功能主要有三种途径:,调用MATLAB开发的各种功能函数进行常用的符号运算,如符号表达式和符号矩阵的基本操作,符号矩阵的运算,符号微积分,符号线性方程求解,符号微分方程求解,特殊数学符号函数以及符号函数图形等。通过使用函数maple.m和mpa.m与Maple接口,给一些特殊专业的人员提供方便。符号函数计算器(Function Calculator)功能。,1、符号表达式的生成,符号表达式包括符号函数和符号方程,区别在于是否带有等号
18、。只要在表达式两端添加分号()就可以创建一个符号函数或者符号方程,例如:f=log(x),g=a*x2+b*x+c=0,也可以用函数sym或syms创建,如f=sym(cos(x),f=sym(sin(x)2=0);syms x;f=sin(x)+cos(x),注意syms不用创建符号方程。,2、符号与数值的转换,常用的方法是函数digits和vpa配合替换函数subs进行转换。,digits函数,digits(D)函数设置有效数字个数为D的近似解精度。vpa函数,R=vpa(S)符号表达式S在digits函数设置下的精度的数值解。vpa(S,D)符号表达式S在digits(D)精度下的数值解
19、。subs函数,subs(S,OLD,NEW)numeric函数,n=numeric(S)将不含自由变量的符号表达式转换为数值形式,效果等同于n=double(sym(S),3、符号函数的运算,(1)复合函数运算。compose函数,其调用形式如下:,compose(f,g)返回f(g(y)compose(f,g,z)返回以z为自变量的复合函数compose(f,g,x,z)返回f(g(z),且使得x为f的独立变量compose(f,g,x,y,z)返回f(g(z),且使得x为f的独立变量,y为g的独立变量,例如若f=cos(x/t),y=sin(y/u),compose(f,g,x,y,z)
20、返回cos(sin(z/u)/t);compose(f,g,x,u,z)返回cos(sin(y/z)/t)。,(2)反函数运算。finverse函数,调用形式为:,g=finverse(f)g=finverse(f,v)返回的符号函数表达式的自变量为符号v,当f包括不止一个变量时最好使用此型。,4、符号矩阵的创立,(1)使用sym函数直接创建符号矩阵。同直接创建数值矩阵相同,(2)用创建子阵的方法创建符号矩阵。要保证同一列的各元素字符串具有相同的长度,(3)将数值矩阵转化为符号矩阵。sym,(4)符号矩阵的索引和修改。同数值矩阵相同,5、符号矩阵的运算,(1)基本运算。包括加(+)、减(-)、
21、乘(*)、除(/,)、转置(),(2)行列式运算。det(A),(3)符号矩阵的逆。inv(A),(4)符号矩阵的秩。rank(A),(5)符号矩阵的幂运算。,(6)符号矩阵的指数运算.数组指数用exp,矩阵指数用expm,(7)符号矩阵的分解。包括特征值分解函数eig,奇异值分解函数svd,约当标准型函数jordan,三角抽取函数diag,tril,triu。,(8)矩阵的空间运算。包括列空间运算colspace,所得结果列的维数即为秩,零空间运算函数null(A)-正交基,null(A,r)-有理基。,(9)符号矩阵的简化。因式分解factor(S),大整数分解factor(sym(N);
22、展开expand(S);同类式合并collect(S)合并同类项,collect(S,v)合并v的同幂项;符号简化simple(S),simplify(S)-简化符号矩阵的每一个元素。分式通分horner-秦九韶型多项式表达式函数(一种嵌套形式,可以减少乘法计算次数),6、符号微积分,(1)符号极限。limit函数,调用形式有:,limit(F,x,a)F在xa条件下的极限值limit(F,a)计算由findsym(a)返回的独立变量趋向于a的极限值limit(F)计算a=0时的极限limit(F,x,a,left)或limit(F,x,a,right)分别求左右极限,(2)符号积分。int函
23、数,调用形式为:,int(S)int(S,v)对自变量v的不定积分int(S,a,b)计算从a到b的定积分,a,b为双精度或符号数量int(S,v,a,b)计算对变量v从a到b的定积分,(3)符号合计函数 symsum,调用形式:,symsum(S)计算符号表达式对由findsym函数返回的符号变量的不定和。symsum(S,v)symsum(S,a,b)和symsum(S,v,a,b),(4)符号微分和差分,微分和差分函数 diff,调用形式:diff(S),diff(S,v)或diff(S,sym(v),diff(S,n)梯度函数gradient,调用形式:FX,FY=gradient(F
24、),FX,FY=gradient(F,H),H作为各方向的点间隔,FX,FY=gradient(F,HX,HY),FX,FY,FZ=gradient(F),FX,FY,FZ=gradient(F,HX,HY,HZ)。多元函数的导数。jacobian(f,v),计算数量或向量f对向量v的Jacobi矩阵,当f为数量时函数返回f的梯度。,7、符号代数方程求解,(1)线性方程组的求解,函数linsolve,solve,可以得到方程的精确解(2)非线性方程的符号解法,使用函数fsolve,调用格式有:,X=fsolve(fun,X0)X=fsolve(fun,X0,options)options为选择
25、参数输入向量X=fsolve(fun,X0,options,gradfun),gradfun为输入函数在X处的偏导数X=fsolve(fun,X0,options,gradfun,P1,P2,)P1,P2为问题定性参数X,options=fsolve(fun,X0,)返回使用的优化方法的参数,注:复杂的符号函数可以在M文件中创建,8、符号微分方程求解,带微分方程的符号解,使用函数dsolve,9、符号函数的二维图,(1)符号函数的简易绘图函数ezplot(f),ezplot(f,xmin,xmax),ezplot(f,xmin,xmax,fig),(2)绘制函数图函数fplot,调用格式有:,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 建模 Matlab 基础
链接地址:https://www.31ppt.com/p-6295550.html