




已阅读5页,还剩307页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,1,第1章MATLAB概述MATLAB简介MATLAB启动与退出MATLAB帮助系统,.,2,容易使用2.丰富的内部函数3.强大的图形和符号功能4.与其他软件和语言有良好的对接性,MATLAB全称为MatrixLaboratory,是一种功能强大的科学计算软件。同其他高级语言相比,其具有很多优点:,1.1MATLAB简介,.,3,1、MATLAB允许用户以数学形式的语言编写程序,用户在命令窗口中输入命令即可直接得出结果。,例1:,25=?,25,ans=7,Goback,.,4,2、MATLAB的内部函数库提供了相当丰富的函数,这些函数可以解决许多基本问题,除此以外,MATLAB还有各种工具箱。,MATLAB主工具箱符号数学工具箱SIMULINK仿真工具箱控制系统工具箱信号处理工具箱图象处理工具箱通讯工具箱系统辨识工具箱神经元网络工具箱金融工具箱,Goback,.,5,3、MATLAB具有强大的图形处理功能,它本身带有许多绘图的库函数,可以很轻松地画出各种复杂的二维和多维图形。,例2、绘制在0x6范围内的sin(2x)、sinx2、sin2x,plot(x,y1,x,y2,x,y3),x=linspace(0,6),y1=sin(2*x);y2=sin(x.2);y3=(sin(x).2;,.,6,.,7,1.2MATLAB启动与退出1.2.1MATLAB的启动,方法一:,双击matlab图标,方法二:,“开始”,“程序”,“MATLAB”菜单,“MATLAB”,.,8,MATLAB主体界面,.,9,主窗口,标题栏,菜单栏,工具栏,Goback,.,10,命令窗口(CommandWindow),各种MATLAB操作的最主要窗口,“”,运算提示符,例:x1=2+5,x1=7,Goback,.,11,历史命令窗口(CommandHistory),自动保留自安装起所有用过的命令的历史记录,双击历史命令,清除这些历史记录,Goback,.,12,当前目录窗口(CurrentDirectory),显示或改变当前目录,显示当前目录下的文件,功能,Goback,.,13,工作间管理窗口(Workspace),显示目前内存中所有的MATLAB变量的变量名、取值以及类型,Goback,.,14,1.2.2MATLAB的退出1.利用MATLAB菜单退出单击File菜单,从中选择ExitMATLAB。2.使用quit/exit语句退出在指令窗口直接输入quit/exit即可。3.使用热键退出在MATLAB窗口中同时按下Ctrl+Q即可。4.单击窗口可直接退出,.,15,1.3.1帮助窗口帮助窗口的起动(1)通过“help”菜单(2)单击工具栏上的问号按钮(3)在命令窗口中执行helpwin、helpdesk或doc2.帮助窗口的内容帮助主题(Contents)帮助索引(Index)帮助查询(Search)联机演示(Demos),1.3MATLAB帮助系统,.,16,1.3.2命令窗口查询帮助,2.lookfor+关键字,1.help+函数名,例:helpsin,通过完整的或部分关键字来搜索要查找的内容,lookforsin寻找与正弦相关的所有指令,.,17,第2章MATLAB的基本使用方法基本概念基本运算MATLAB的数据类型常用函数标点符号的使用常用操作命令和键盘技巧,.,18,2.1基本概念在MATLAB中,经常用到标量、向量、矩阵和数组的概念。无论在MATLAB中变量赋何值,在内存中均以矩阵的形式存在。标量:是11矩阵,即只含有一个数的矩阵向量:是1n或n1的矩阵,即只有一行或一列的矩阵矩阵:是一个矩形数组,即二维数组,其中向量和标量都是矩阵的特例,00矩阵为空矩阵数组:有序数据的集合,为矩阵的延伸,其中矩阵和向量都是数组的特例,.,19,2.2基本运算MATLAB最主要的功能便是数值计算,主要有以下基本运算符号:,.,20,1、MATLAB的求值次序:(1)算式从左到右执行;(2)乘方的优先级最高,乘、除次之,最后是加减,括号的优先级别最高;(3)在有多层括号的情况下,从括号的最里面到最外面逐渐扩展。,.,21,2、MATLAB语句有两种常见的形式:(1)表达式,1+2,ans=3,(2)变量=表达式,在第一种情况下,计算结果自动赋给名为ans(answer)的变量;在第二种情况下,结果自动赋给等号左边的变量,“=”代表的是赋值操作。,a=1+2,a=3,.,22,一个命令行输入一条命令,命令行以回车结束,a=2,一个命令行也可以输入若干条命令,各命令之间以逗号或分号分隔。,a=2,b=3;,a=2;b=3;,a=2,a=2,.,23,2.3MATLAB的数据类型1.常量在MATLAB中有一些特定的变量,已被预定义某个特定的值,因此这些变量被称为常量。,.,24,2.变量在程序执行过程中其值可以变化的量为变量,变量在计算机中占有一定的存储单元,在该单元内存放该变量的值。一个变量应该有一个名字,称之为变量名。变量的命名规则:(1)MATLAB不需对变量进行事先说明及指定类型;(2)变量名必须以英文字母开头,可以包含字母、数字和下划线,但不得出现空格和标点符号;(3)变量名最多可包含63个字符;(4)变量名区分大小写;(5)关键字不能作为变量名。,.,25,与变量相关的指令:(1)who和whoswho和whos都用来列出matlab工作区中已驻留的变量清单,而whos还可以列出变量的维数和性质。例:whoYourvariablesare:abwhosNameSizeBytesClassa1x8016408doublearrayb1x8016408doublearrayGrandtotalis1602elementsusing12816bytes,注意:常量用who指令是查看不到的,只可随时调用,.,26,(2)clearclear用来清除工作空间中定义过的所有变量或部分变量。如果只要去除其中某几个变量,应在clear后面指明要删除的变量名称。,a=1,b=2,a=1b=2,?Undefinedfunctionorvariablea.,cleara,a,b,b=2,.,27,永久变量可以修改,通过clear可以恢复原值。,pi=2,例:,pi=2,clear,pi,ans=3.1416,.,28,3.复数MATLAB的每一个元素都可以是复数,实数是复数的特例。MATLAB语言对复数的处理十分简单,在处理复数问题时,不需进行其他任何附加操作。定义复数格式如下:z=a+bi或z=a+bjz=a+b*i或z=a+b*j,.,29,a=2+3ia=2.0000+3.0000ia=2+3ja=2.0000+3.0000ib=2+3*ib=2.0000+3.0000ib=2+3*jb=2.0000+3.0000i,a=2a=2b=3b=3c=a+bi,注意:只有数字才可以与i、j直接相连,表达式或矩阵则不可以,应用*.,?Undefinedfunctionorvariablebi.,.,30,4.数据的输出格式在MATLAB系统中,数据的存储和计算都是以双精度进行的,但是用户可以改变屏幕上显示的格式,所用指令为format。,.,31,1、short:,显示小数点后4位数字,0.0013,0.0013333333333333333,2、long:,显示15位数字。,如果数值为整数,则按原数显示,0.00133333333333,(缺省设置),.,32,3、shorte:,对非整数值都按e方式显示,显示5位有效数字。如果数值为整数,则按原数显示,1.3333e-003,0.0013333333333333333,.,33,4、longe:,对非整数值都按e方式显示,显示15位有效数字。,1.33333333333333e-003,0.0013333333333333333,如果数值为整数,则按原数显示,.,34,5、shortg:,从short和shorte中自动选择最佳记述方式,0.0013333333333333333,6、longg:,0.00133333333333,从long和longe中自动选择最佳记述方式,0.0013333,.,35,7、hex:,十六进制表示,3ff555555555555,0.0013333333333333333,8、+,+,正、负、零分别用+、-、空格表示,显示大矩阵用,.,36,9、bank:,0.00,10、rat:,1/750,0.0013333333333333333,.,37,输出格式的控制,file,法一:,Preferences,CommandWindow,法二:,format命令,formatshorte,例:,NumericFormat,.,38,2.4MATLAB的常用函数MATLAB提供了丰富的函数,只要正确调用,便可获得正确结果。,.,39,1、三角函数,2、指数运算函数,3、复数运算函数,4、取整和求余函数,.,40,sin,三角函数,sinh,asin,cos,cosh,acos,tan,atan,cot,acot,sec,csc,.,41,注意:,小写!,函数应该出现在等式的右边。,后面表达式写在()里,例sin(x),其他对它的运算和数学一样。,三角函数以弧度为单位计算。,sin(1)表示的不是sin1而是sin57.28578,例如:,.,42,指数运算函数,exp,log,log10,log2,power(pow2),sqrt,.,43,设a=5.67,b=7.8,求,exp(a+b)/log10(a+b),ans=6.2677e+005,a=5.67;b=7.8;,例1:,log(b-a)ans=0.7561,.,44,例2:已知a=3,b=4;求:,power(a,b),a=3;b=4;,或者ab,ans=81,.,45,abs,复数运算函数,angle,real,imag,conj,complex,构造复数,角度(弧度),模,实部,虚部,共轭,.,46,ans=1.1071,x=1+2i;,abs(x),ans=2.2361,angle(x),例:,ans=1,ans=2,real(x),imag(x),.,47,y=2.0000+3.0000i,ans=1.0000-2.0000i,conj(x),y=complex(2,3),.,48,fix(舍小留整),取整求余函数,round(四舍五入),floor(向下取整),ceil(向上取整),mod,rem,sign,.,49,ceil(x),x=-9.8;,fix(x),ans=-9,round(x),ans=-10,floor(x),ans=-10,ans=-9,.,50,ans=1,x=9;y=2;,rem(x,y),mod(x,y),ans=1,ans=1,x=9;y=-2;,mod(x,y),ans=-1,rem(x,y),.,51,ans=-1,ans=1,mod(-9,2),rem(-9,2),.,52,rem(x,y)和mod(x,y)要求x,y必须为相同大小的实矩阵或同为标量,注意:,.,53,sign(0),sign(9),ans=-1,ans=1,ans=0,sign(-9),.,54,例:计算下式的结果,其中x=-3.5,y=6.7。,x=-3.5*pi/180;y=6.7*pi/180;sin(abs(x)+abs(y)/sqrt(cos(abs(x+y)ans=0.1772,.,55,2.5MATLAB的标点符号,.,56,1、空格:数组行元素以及输入变量之间的分隔符,a=123456,a=123;456,.,57,2、逗号(,),用于要显示计算结果的命令与其它命令之间的分隔符,a=1,b=2,用于数组行元素之间的分隔符,a=123456,a=1,2,3;4,5,6,.,58,3、点号(.),用于数值中的小数点,2.56,.,59,4、分号(;),用于不显示计算结果命令行的结尾,a=2;,用于不显示计算结果命令与其它命令之间的分隔符,a=1;b=2,用于矩阵元素行之间的分隔符,a=123;456,.,60,5、冒号(:),用于生成等间隔的向量,a=1:1:4,a=1:4,用作矩阵的下标,部分地选择矩阵元素,A=123456,ans=36,A(:,3),.,61,6、百分号(%),注释符,x=1:0.1:10;%给出自变量x的定义域,7、单引号(),用于括住字符串,a=1+2,a=1+2,.,62,8、方括号(),用于构成向量和矩阵,A=1,2,3;4,5,6,9、续行号(),表示一行未完,在下一行继续输入,s=1-1/2+1/3-1/4+1/5-1/6+1/7-1/8+1/9-1/10,.,63,2.6常用操作命令和键盘技巧在使用MATLAB编制程序时,掌握一些常用的操作命令和键盘操作技巧,可以起到事半功倍的效果。,.,64,第3章MATLAB的数值计算矩阵的构建矩阵元素矩阵运算矩阵的关系运算和逻辑运算多项式运算,.,65,3.1矩阵的构建3.1.1直接输入法创建矩阵最简单的方法就是直接输入矩阵元素,输入格式有以下的要求:1.整个矩阵以“”作为首尾;2.每行中的元素用“,”或空格分隔;3.行与行之间用分号“;”或回车键分隔;4.矩阵中的元素可以是数字或者表达式;5.如果矩阵中没有元素,这样的矩阵称为空阵(EmptyMatrix)。,.,66,注意:MATLAB中所有的矩阵事先都不必定义维数大小,系统会根据用户的输入自动配置,并在运算中自动调整矩阵的维数。,.,67,a=123;456;789a=123456789,b=1sin(pi/6)sqrt(9)3+560b=1.00000.50003.00008.00006.00000,a=1+5i2+6i;3+7i4+8i,或a=12;34+i*56;78,.,68,3.1.2利用内部函数产生矩阵利用内部函数可以很容易产生一些常见的特殊矩阵,常用函数如下:,说明:当eye、zeros、ones、rand、randn函数只有一个参数n时,则产生nn的方阵。,.,69,eye(3)ans=100010001,eye(3,4)ans=100001000010,zeros(3)ans=000000000,ones(3,4)ans=111111111111,a=magic(3)a=816357492,diag(a)ans=852,.,70,x=ones(3)x=111111111,tril(x)ans=100110111,triu(x)ans=111011001,tril:产生下三角矩阵triu:产生上三角矩阵,.,71,3.1.3数组的构建在MATLAB中数组可以看作行向量,即只有一行的矩阵,MATLAB创建数组可用以下特殊命令:1.冒号生成法(初值:步长:终值)0:0.4:2ans=00.40000.80001.20001.60002.0000步长若省略,默认间隔1,0:0.3:1.3ans=00.30000.60000.90001.2000,初值=0,终值=2,步长=0.4,.,72,a=1:4;b=1:2:7;c=a;b%利用向量生成矩阵c=12341357d=a910%在a的基础上扩展d=1234910,注意:a,b的长度一样!,.,73,2.linspace函数linspace(a,b,n)差值=(b-a)/(n-1)a=linspace(0,1,4)a=00.33330.66671.0000初值=0,终值=1,元素个数=43.logspace函数logspace(a,b,n)公比=10(b-a)/(n-1)logspace(0,2,5)ans=1.00003.162310.000031.6228100.0000初值=100,终值=102,元素个数=5,公比=100.5,.,74,3.2矩阵的元素3.2.1矩阵元素的下标表示1.全下标表示一个mn矩阵A的第i行,第j列元素表示为A(i,j),即由行下标和列下标表示,行列数从1开始。注意:当给元素赋值时,如果超出矩阵范围,则自动扩充矩阵;当取值时,若超出矩阵范围,则提示错误。,a=12;34;a(1,2)=9;a(2,3)=8;,a(2,4)?Indexexceedsmatrixdimensions.,aa=190348,.,75,2.单下标表示将矩阵的所有列按从左到右的顺序接成“一维长列”,然后对元素进行编号。一个mn矩阵A的元素A(i,j)对应的下标为(j-1)*m+i。,a=123;456;a(1,2)ans=2a(3)ans=2,a(5)=10a=1210456,.,76,3.2.2子矩阵1.全下标表示(1)a(ij,kl):行数为i、j,列数为k、l的元素构成子矩阵;(2)a(i:j,k:l):取行数为ij,列数为kl的元素构成的子矩阵(3)a(i:j,:):取行数为ij,所有列的元素构成的子矩阵(4)a(end,k:j):取行数最大值,列数为kj的元素构成的子矩阵2.单下标表示a(ij;kl):取单下标为i、j、k、l的元素构成子矩阵。,.,77,a=magic(5)a=17241815235714164613202210121921311182529a(12,34)ans=18714a(1:2,3:5)ans=181571416,a(1:2,:)ans=1724181523571416a(end,1:2)ans=1118a(13;45)ans=1741011,.,78,3.2.3矩阵元素的删除删除矩阵元素可以简单的将该元素赋值为空矩阵(用表示)。,a=rand(3,4)a=0.89130.01850.61540.73820.76210.82140.79190.17630.45650.44470.92180.4057a(2)=a=Columns1through80.89130.45650.01850.82140.44470.61540.79190.9218Columns9through110.73820.17630.4057,.,79,3.2.4矩阵元素的数量1.numel函数n=numel(a):计算矩阵a中元素的总数2.size函数d=size(a):d=mn,m为a的行数,n为a的列数mn=size(a):m为a的行数,n为a的列数m=size(a,dim):m为矩阵a的第dim维的大小,a=rand(2,3)a=0.28440.06480.58280.46920.98830.4235,d=size(a)d=23m=size(a,2)m=3,numel(a)ans=6,.,80,3.3矩阵与数组运算,MATLAB算术运算,矩阵算术运算,数组算术运算,矩阵算术运算:按照线性代数运算法则定义数组算术运算:按照元素逐个执行,.,81,3.3.1矩阵的运算+加法-减法*乘法幂左除/右除转置1.矩阵的加减法矩阵的加减法是对应元素的加减法,只有当两个矩阵维数相同或者其中一个为标量时,才可以进行加减法运算。,a=12;34;b=56;78;a+bans=681012,3+aans=4567b-3ans=2345,.,82,2.矩阵的乘法矩阵的乘法使用“*”运算符,两个矩阵要相乘,只有当前一矩阵的列数与后一矩阵行数相等或者其中一个为标量时才能进行。,a=12;34;b=567;8910;a*bans=212427475461,b*a?Errorusing=*Innermatrixdimensionsmustagree.3*aans=36912,.,83,3.矩阵的除法矩阵的除法有左除和右除两种,分别用“”和“/”表示。通常矩阵除法可以用来求未知矩阵。若A*X=B,则X=AB若X*A=B,则X=B/A,注意:若A、B都为矩阵时,这两个结果是不同的,即ABB/A。若A、B中有一个为标量,设A为标量,则这两个结果是相同的,即AB=B/A。,.,84,a=12;34;b=56;89;c=a*bc=21244754,c/aans=-69-1320,acans=5.00006.00008.00009.0000,a=2;,c=a*b,acans=5689,c/aans=5689,c=10121618,.,85,例:求解以下方程,A=132;223;311A=132223311B=1;10;7B=1107,ABans=2-34,.,86,4.矩阵的乘方矩阵的乘方使用“”运算符,如AP,当P为整数时,该指令运算结果可做如下解释:(1)当P0,表示方阵A直接自乘P次;(2)当Pa=12;34a=1234a2ans=7101522,a0ans=1001a(-2)ans=5.5000-2.5000-3.75001.7500,.,87,5.矩阵的转置矩阵的转置使用“”运算符,矩阵的转置就是将第i行第j列的元素和第j行第i列的元素进行互换。对于有复数元素的矩阵A,A为共轭转置,A.为非共轭转置。,a=12;34a=1234aans=1324,a=1+i2+i;3+i4+i;aans=1.0000-1.0000i3.0000-1.0000i2.0000-1.0000i4.0000-1.0000ia.ans=1.0000+1.0000i3.0000+1.0000i2.0000+1.0000i4.0000+1.0000i,.,88,6.矩阵的逆在MATLAB中,使用函数inv计算矩阵的逆矩阵。A是可逆矩阵的充分必要条件是|A|0,即可逆矩阵是非奇异方阵。,a=magic(3)a=816357492inv(a)ans=0.1472-0.14440.0639-0.06110.02220.1056-0.01940.1889-0.1028,a*inv(a)ans=1.00000.0000-0.0000-0.00001.00000.00000.00000.00001.0000a(-2)ans=0.0293-0.0124-0.0124-0.01240.0293-0.0124-0.0124-0.01240.0293inv(a2)ans=0.0293-0.0124-0.0124-0.01240.0293-0.0124-0.0124-0.01240.0293,.,89,7.方阵的行列式在MATLAB中,求方阵的行列式的函数是det,用法:det(a)。a=magic(3)a=816357492det(a)ans=-360,.,90,8.矩阵的特征值如果AX=X存在非零解向量,则称为A的一个特征值,相应的非零解向量X称为与相对应的特征向量。在MATLAB中,以函数eig计算矩阵的特征值。用法一:eig(a),把它的特征值以列向量的形式显示出来。用法二:v,d=eig(a),v为特征向量,,.,91,G=120;25-1;410-1;eig(G)ans=3.73210.26791.0000,v,d=eig(G),v=-0.2440-0.91070.4472-0.33330.3333-0.0000-0.9107-0.24400.8944,d=3.73210000.26790001.0000,.,92,9.矩阵的特征多项式设A为n阶方阵,如果和n维非零列向量X使关系式AX=X成立,那么(A-E)X=0称为矩阵A的特征方程,|A-E|称为方阵A的特征多项式。在MATLAB中,以函数poly计算矩阵的特征多项式。,a=-211;020;-413;poly(a)ans=1-304poly2sym(poly(a)%把系数矩阵转为符号表达式ans=x3-3*x2+4,.,93,10.矩阵的秩设在矩阵A中存在一个不等于0的r阶子式D,且所有(r+1)阶子式全为0,那么称D为方阵A的最高阶非零子式,r为矩阵A的秩。在MATLAB中,以函数rank计算矩阵的秩。,a=magic(4)a=16231351110897612414151,rank(a)ans=3det(a)ans=0,.,94,3.3.2数组的运算数组运算符与矩阵运算符的区别便是多一个小黑点。.+加法.-减法.*乘法.幂.左除./右除.转置数组的运算操作都是对元素逐个进行的。,a=ones(3);b=magic(3)b=816357492a*bans=151515151515151515,a.*bans=816357492b2ans=916767679167676791,b.2ans=641369254916814,.,95,a=123;b=456;a.*bans=41018a.2ans=149a.bans=4.00002.50002.0000,a=1+j2+j3+ja=1.0000+1.0000i2.0000+1.0000i3.0000+1.0000ia.ans=1.0000+1.0000i2.0000+1.0000i3.0000+1.0000i,.,96,3.4矩阵关系运算与逻辑运算说明:(1)表达式输入:非0“逻辑真”,0“逻辑假”(2)表达式输出:1“逻辑真”,0“逻辑假”3.4.1关系运算,两个维数相同的矩阵进行比较:相对应元素进行比较,结果为一个同维数矩阵;矩阵和标量进行比较:标量和矩阵中的每一个元素进行比较,结果为同维数矩阵。,.,97,关系操作符,a=12;34;b=13;44;aabans=0000a=bans=1001,a=2ans=0100a=仅比较实部,而=、=同时比较实部和虚部。,.,98,3.4.2逻辑运算如果A和B是维数相同的矩阵,或者其中一个是标量,则可以对矩阵进行逻辑运算。,a=0101;b=0110;and(a,b)ans=0100ay=3;z=2;X=ones(3);Y=magic(3)Y=816357492Z=zeros(3);a=x2*(X+Y)+za=2275217710215220212725277,b=Ym=max(x)m=8m,n=max(x)m=8n=5x=351;946;max(x)ans=956m,n=max(x),m=956n=212m,n=max(x,1)m=956n=212m,n=max(x,2)m=59n=21,.,103,4、2个向量或矩阵对应元素的比较,y=max(a,b),注意:若a、b(维数相同)都为矩阵,则对应元素分别进行比较,返回一个最大值,结果为一个同维数矩阵;若其中一个为标量,则矩阵中每一个位置的元素和该标量进行比较,返回一个最大值,结果为同维数矩阵。,a=5630;3721;2918a=563037212918b=ones(3,4)*4b=444444444444,y=max(a,b),y=564447444948,y=max(a,4),y=564447444948,.,104,3.6.2查取最小值(min)min函数用来求取数据序列中的最小值,使用方法和max函数相同。3.6.3求中值(median)1.Y=median(X):返回矩阵X各列元素的中值赋予行向量Y;若X为向量,Y为标量。2.Y=median(X,dim):将数组X的第dim维方向的元素求其中值赋予向量Y;若dim=1,按列操作(默认),若dim=2,按行操作。,.,105,x=351;946;243x=351946243,median(x,2)ans=363,a=12342;median(a),ans=2,a=5630;1429;2918;3947;median(a),ans=2.50007.50002.50007.5000,median(x)ans=343,.,106,3.6.4求平均值(mean)1.Y=mean(X):返回矩阵X各列元素的平均值赋予行向量Y;若X为向量,Y为标量。2.Y=mean(X,dim):将数组X的第dim维方向的元素的平均值赋予向量Y;若dim=1,按列操作(默认),若dim=2,按行操作。,a=123;456a=123456mean(a)ans=2.50003.50004.5000,mean(a,2)ans=25,.,107,3.6.5求和(sum)1.Y=sum(X):返回矩阵X各列元素的和赋予行向量Y;若X为向量,Y为标量。2.Y=sum(X,dim):将数组X的第dim维方向的元素的和赋予向量Y;若dim=1,按列操作(默认),若dim=2,按行操作。x=351;946;sum(x)ans=1297sum(ans)ans=28,sum(x,1)ans=1297sum(x,2)ans=919,.,108,3.6.6求积(prod)1.Y=prod(X):返回矩阵X各列元素的积赋予行向量Y;若X为向量,Y为标量。2.Y=prod(X,dim):将数组X的第dim维方向的元素的积赋予向量Y;若dim=1,按列操作(默认),若dim=2,按行操作。,a=123;456a=123456prod(a)ans=41018,prod(a,2)ans=6120,.,109,3.6.7排序(sort)1.Y=sort(X):将矩阵X的各列元素升序排列。2.Y=sort(X,dim):将矩阵X的第dim维元素升序排列;若dim=1,按列操作(默认),若dim=2,按行操作。3.Y=sort(X,dim,mode):按照mode模式对矩阵X进行排列,若mode为ascend表示升序排列,若mode为descend表示降序排列。,x=375;683;042;sort(x)ans=042373685sort(x,2)ans=357368024,sort(x,2,descend)ans=753863420,.,110,3.7多项式运算多项式是形如p(x)=a0 xn+a1xn-1+an-1x+an的式子,在MATLAB中,多项式用行向量表示P=a0a1an-1an。3.7.1多项式的创建1.直接输入系数直接输入向量,MATLAB将按降幂自动将向量的元素分配给多项式各项的系数,该向量可以是行向量或列向量。,P=3501012;y=poly2sym(P)y=3*x5+5*x4+x2+12,.,111,2.由多项式的根逆推多项式若已知某多项式的根,可用poly函数反推出与其相对应的多项式。,roots=12;p=poly(roots)p=1-32poly2sym(p)ans=x2-3*x+2,.,112,3.7.2多项式的运算1.多项式的求值(1)代数多项式求值:polyval函数Y=polyval(P,X)计算向量P为系数的多项式在点X的值,如果X是矩阵或者向量,该命令对X的每个元素都进行计算。(2)矩阵多项式求值:polyvalm函数Y=polyvalm(P,X)计算向量P为系数的多项式在矩阵X的值,X必须为方阵。Y=P(1)Xn+P(2)Xn-1+P(N)X+P(N+1)I,.,113,p=123;poly2sym(p)ans=x2+2*x+3polyval(p,2)ans=11a=12;34;polyval(p,a)ans=6111827,polyvalm(p,a)ans=12142133b=123;456;polyvalm(p,b)?Errorusing=polyvalmMatrixmustbesquare.,.,114,2.多项式的根求多项式的根,即多项式为零的值。设多项式由行向量p表示,其系数按降幂排列,使用roots函数计算多项式的根,格式为roots(p)。例:计算多项式x4+3x2+12x-7的根。,p=10312-7p=10312-7roots(p)ans=0.7876+2.4351i0.7876-2.4351i-2.08720.5121,polyval(p,ans)ans=1.0e-013*-0.0178+0.8793i-0.0178-0.8793i0.19540,.,115,3.多项式的四则运算(1)加法和减法如果两个多项式的向量阶数相同,可直接进行加减法计算;如果向量阶数不同,不能直接进行运算,需要在低阶多项式的前面补0,使其具有相同的阶数。,.,116,a=8228;b=6161;poly2sym(a)ans=8*x3+2*x2+2*x+8poly2sym(b)ans=6*x3+x2+6*x+1c=a+bc=14389poly2sym(c)ans=14*x3+3*x2+8*x+9d=a-bd=21-47,poly2sym(d)ans=2*x3+x2-4*x+7e=245;d+e?Errorusing=plusMatrixdimensionsmustagree.d+0eans=23012poly2sym(ans)ans=2*x3+3*x2+12,.,117,(2)乘法使用conv函数对多项式进行乘法计算,其格式为conv(a,b),例:计算(x3+2x2+3x+4)(5x3+6x2+7x+8)a=1234;b=5678;poly2sym(a)ans=x3+2*x2+3*x+4poly2sym(b)ans=5*x3+6*x2+7*x+8conv(a,b)ans=5163460615232poly2sym(ans)ans=5*x6+16*x5+34*x4+60*x3+61*x2+52*x+32,.,118,(3)除法使用deconv函数对多项式进行除法计算。q,r=deconv(v,u):用多项式v除以多项式u,商赋予q,余数赋予r。deconv是conv的逆运算,v=conv(u,q)+r。,a=1234;b=5678;c=conv(a,b);q,r=deconv(c,a)q=5678r=0000000c=c+0004321;q,r=deconv(c,a)q=56712r=0000-5-10-15,.,119,(4)求导polyderpolyder(P):对多项式P求导,并返回求导结果polyder(P,Q):相当于polyder(P*Q)p,q=polyder(P,Q)求P/Q的导数,导数的分子存入p,分母存入q。,例:计算多项式(3x2-2x+1)(4x2+5x+6)的导数a=3-21;b=456;polyder(a,b)ans=482124-7所以所求结果为:48x3+21x2+24x-7,.,120,例:计算有理分式1/(x2+5)的导数a=1;b=105;p,q=polyder(a,b)p=-20q=1010025所以结果为:-2x/(x4+10 x2+25),.,121,(5)多项式积分polyintpolyint(p,k):表示对多项式p求积分,常数项为k(默认值为0)。,例:计算,a=3-21;polyint(a)ans=1-110polyint(a,3)ans=1-113所以,计算结果为x3-x2+x+k。,.,122,第4章MATLAB的符号计算符号计算基础符号微积分符号积分变换符号表达式的操作符号方程的求解,.,123,4.1符号计算基础4.1.1定义符号常量符号常量是不含变量的符号表达式,通常用sym函数创建符号常量。f=sym(常量)sym命令也可以把数值转换为某种格式的符号常量。sym(常量,参数)参数:d:返回最接近的十进制浮点精确表示;e:返回最接近的带误差估计的有理表示;f:返回十六进制浮点表示;r:返回该符号值最接近的有理表示,缺省设置,可表示为p/q、p*q、10q、pi/q、2q、sqrt(p)形式之一。,.,124,3*sin(3)+pi/2ans=1.9942sym(3*sin(3)+pi/2)ans=3*sin(3)+pi/2sym(3*sin(3)+pi/2)ans=8980881799167258*2(-52)sym(3*sin(3)+pi/2,d)ans=1.9941563509744981708138311660150,.,125,sqrt(2)ans=1.4142a=sqrt(sym(2)a=2(1/2)double(a)ans=1.41422/5+1/3ans=0.7333sym(2)/sym(5)+sym(1)/sym(3)ans=11/15,asin(1)ans=1.5708sym(asin(1)ans=pi/2,.,126,4.1.2定义符号变量1.sym函数arg=sym(arg,参数)说明:参数可以取以下选项positive:限定arg为“正、实”符号变量real:限定arg为“实”符号变量unreal:限定arg为“非实”符号变量例:已知一复数表达式z=x+i*y,试求其实部。,x=sym(x,real);y=sym(y,real);z=x+i*y;real(z)ans=x,x=sym(x,unreal);real(z)ans=1/2*x+1/2*conj(x),.,127,2.syms函数syms函数的功能与sym函数的功能相似。syms函数可以在一个语句中同时定义多个符号变量,格式为:syms(arg1,arg2,参数)symsarg1arg2参数,symsabreal(a+b*j)ans=1/2*a+1/2*i*b+1/2*conj(a+i*b),symsxyrealz=x+i*y;real(z)ans=xsymsxunrealreal(z)ans=1/2*x+1/2*conj(x),.,128,4.1.3定义符号表达式符号表达式由符号变量、函数、算数运算符等组成。符号表达式的定义有以下三种方法:1.单引号创建符号表达式f=exp(x)%创建符号函数f=exp(x)f=a*x3+b*x2+c=0%创建符号代数方程f=a*x3+b*x2+c=0,.,129,3.用syms函数创建符号表达式syms函数只能生成符号函数,不能生成符号方程。,symsxyu;%预定义符号变量f=exp(x*y/u)%创建符号函数f=exp(x*y/u),2.用sym函数创建符号表达式f=sym(a*x3+b*x2+c=0)%创建符号表达式f=a*x3+b*x2+c=0,.,130,4.1.4默认符号变量在数学表达式中,f=ax2+bx+c,一般习惯于使用字母表中排在前面的字母作为变量的系数,而用排在后面的字母表示变量。可以用findsym函数了解函数引用过程中使用的变量个数以及变量名。格式为:findsym(f,n)说明:(1)f为用户定义的符号表达式;(2)n为正整数,表示查询变量的个数;(3)n=i表示查询i个系统默认变量,n值省略表示查询所有的系统默认变量,按字母顺序列出。,.,131,g=sym(a*x2+b*x+1)g=a*x2+b*x+1findsym(g)ans=a,b,xf=a*x2+b*x+1f=a*x2+b*x+1findsym(f)?Functionfindsymisnotdefinedforvaluesofclasschar.,symvar(f)ans=abx,symvar(g)?Functiongeisnotdefinedforvaluesofclasssym.,g=sym(a*x2+b*x+pi)findsym(g)ans=a,b,x,%屏蔽预定义变量,.,132,当字符表达式中含有多于一个的变量时,只有一个变量是独立变量。若未告知MATLAB哪一变量是独立变量,MATLAB将基于以下规则选择一个:(1)缺省的变量是唯一的;(2)若有x,选择x作为独立变量;(3)若无x,选择除i和j的小写字母,字母顺序中最接近x的字母;若与x的距离相同,则x后面的优先;(4)所有小写字母均优先于大写字母为独立变量。,.,133,x,j,t,y,z,t,.,134,例1:查询符号函数f=exp(u*y*t)和g=xn的默认变量。,symsntuxy;f=exp(u*y*t);findsym(f,1)ans=y,g=xn;findsym(g,1)ans=x,默认自变量=findsym(f,1),.,135,1、用字符串直接创建矩阵,A=a,2*b;3*a,0,4.1.5符号矩阵的创建,A=a,2*b3*a,0,.,136,2、用函数sym创建矩阵,A=sym(),A=sym(a,2*b;3*a,0),A=a,2*b3*a,0,3、用函数syms创建矩阵,A=,格式:,symsarg1arg2参数,symsab,A=a,2*b;3*a,0,A=a,2*b3*a,0,.,137,4、将数值矩阵转化成符号矩阵,B=2/3,sqrt(2);5.2,log(3)C=sym(B),能否用sym(B)?,思考?,.,138,4.2符号微积分4.2.1符号极限limit(1)limit(F,x,a):计算符号表达式当xa时,F的极限值;(2)limit(F,a):计算符号函数F的极限值,因未指定F的自变量,用该格式时,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度智能家居设备生产与销售合作协议
- 2025湖南岳阳市物流工程职业学校招聘编外教师24人考试参考题库附答案解析
- 二零二五年电力设施电料采购与安装指导合同
- 2025版电商食品电商平台合作框架协议
- 2025版互联网企业人事外包与网络安全合作协议
- 2025安徽宿州泗县大学生乡村医生专项计划招聘2人笔试模拟试题及答案解析
- 2025江西丰城市从农村小学选调教师岗位调整补充考试模拟试题及答案解析
- 2025年上海师范大学附属外国语中学实习教师招聘笔试参考题库附答案解析
- 2025新疆昌吉市面向社会招聘编制外社区工作者9人笔试备考试题及答案解析
- 2025年烟台海阳市市管企业公开招聘工作人员(23人)笔试参考题库附答案解析
- 2025年江苏省苏豪控股集团有限公司校园招聘笔试备考试题及答案详解(必刷)
- (完整)中小学“学宪法、讲宪法”知识竞赛题库及答案
- 2025年行政执法人员执法证考试必考多选题库及答案(共300题)
- 《工程勘察设计收费标准》(2002年修订本)
- 2024年自投光伏安装合同范本
- 健康中国行动心理健康促进行动
- 小儿呼吸系统生理特点解剖护理课件
- 中音萨克斯名曲经典十首
- 2016室性早搏治疗指南
- 数控折弯机简易数控系统SNC说明书操作手册
- 药品出、入库验收制度
评论
0/150
提交评论