MATLAB入门简介PPT课件_第1页
MATLAB入门简介PPT课件_第2页
MATLAB入门简介PPT课件_第3页
MATLAB入门简介PPT课件_第4页
MATLAB入门简介PPT课件_第5页
已阅读5页,还剩118页未读 继续免费阅读

下载本文档

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

文档简介

MATLAB入门简介,1,.,概述,Matlab是由美国Mathworks公司推出的一个科技应用软件,它的名字是由矩阵(MATrix)和实验室(LABoratory)的头三个字母组成。顾名思义,它相当于把矩阵放在实验室里做实验,Matlab是以矩阵为单位进行处理的,也就是它把一切都当作矩阵,即使是一个数也是。,Matlab是一种高性能的、用于工程计算的编程软件,它把科学计算、结果可视化和编程都集中在一个使用非常方便的环境中。,2,.,Matlab是一种广泛应用于工程计算及数值分析领域的新型高级语言,自1984年由美国MathWorks公司推向市场以来,历经二十多年的发展与竞争,现已成为国际公认的最优秀的工程应用开发环境。Matlab功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。,在欧美各高等院校,Matlab已经成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,成为大学生、硕士生以及博士生必须掌握的基本技能。,概述(续),3,.,Matlab语言的首创人是C.Moler,Matlab=MatrixLaboratry矩阵实验室,概述(续),1984年TheMathWorks的公司推出了第一个Matlab的商业版本,用C语言作了完全的改写。,其后又增添了丰富多彩的图形图像处理、多媒体功能、符号运算和它与其他流行软件的接口功能,使得Matlab的功能越来越强大。,到九十年代初期,在国际上30几个数学类科技应用软件中,Matlab在数值计算方面独占鳌头,而Mathematica和Maple则分居符号计算软件的前两名。,4,.,Matlab的发展1984年,Matlab1.0版(DOS版,182K,20来个函数)1992年,Matlab4.0版(93年推出Windows版本)1994年,Matlab4.2,1999年,Matlab5.32000年,Matlab6.0,2002年,Matlab6.52004年,Matlab7.0,2006年,Matlab2006a,目前,Matlab已经成为国际上最流行的科学与工程计算的软件工具,它已经不仅仅是一个“矩阵实验室”了,而成为了一种具有广泛应用前景的全新的计算机高级编程语言了,有人称它为“第四代”计算机语言。就影响而言,至今仍然没有一个别的计算软件可与Matlab匹敌。,概述(续),5,.,数值计算功能,Matlab是一个交互式软件系统给出一条命令,立即就可以得出该命令的结果,Matlab的特点与主要功能,Matlab以矩阵作为基本单位,但无需预先指定维数(动态定维)按照IEEE的数值计算标准进行计算提供十分丰富的数值计算函数,方便计算,提高效率Matlab命令与数学中的符号、公式非常接近,可读性强,容易掌握,符号运算功能,和著名的Maple相结合,使得Matlab具有强大的符号计算功能,绘图功能,Matlab提供了丰富的绘图命令,能实现一系列的可视化操作,6,.,Matlab的特点与主要功能,7,.,命令窗口,当前工作目录,当前工作空间,输入命令的历史记录,命令提示符,8,.,MATLAB的联机帮助,MATLAB具有完善的帮助系统,9,.,Matlab语言规则,Matlab区分大小写,它的命令和函数全是小写的,一行可以输入几个命令,用分号“;”或逗号“,”隔开,续行符:“”(三个点),如果语句很长,可用续行符将一个语句写成多行。续行符的前最好留一个空格。,注释符:“%”,其后面的内容为注释,对Matlab的计算不产生任何影响,10,.,Matlab变量,Matlab中变量名是以字母开头,可以由字母、数字或下划线组成,最多63个字符(6.5版本前为19个),变量赋值:变量表达式,赋值号左边必须是变量!,系统预定义变量:eps,pi,Inf,NaN,i,j,who、whos、clear,save、load,save将所有变量存入文件matlab.mat,savemydat/savemydat.mat将所有变量存入mydata.mat,save文件名变量名列表,11,.,数与算术表达式,Matlab中的数值表示一般采用十进制,可以带小数点和正负号。,(1)Matlab中的数默认是双精度实数,(2)浮点运算的相对精度为eps,Matlab中eps2.22e-016,即大约保持16位有效数字。,(3)Matlab中数的表示范围为:1030810308,(4)Matlab中的虚部单位:i,j,z=3+4i(4与i之间无空格),z=3+4*i,如:6,+6,-6.6,0.006,6.6e-6,100e60,-0.06e-012,12,.,数据的输入,数据输入,(1)直接输入:a=12;3,4,(2)冒号“:”运算符:初值:步长:终值,同一行中各元素之间用“空格”或“,”(英文状态下)分开;行与行之间用“;”或“回车”分开,a=1:5,b=0:pi/4:pi,(3)由向量或小矩阵生成:X=a;b,(5)交互式输入:input,n=input(Pleaseinputn:),(4)由数据文件生成,13,.,特殊矩阵生成函数,(6)一些生成特殊矩阵的函数,14,.,矩阵元素的操作,矩阵元素的提取,(1)单个元素:A(2,3),(2)整行或整列:A(2,:),A(:,3),=?,=?,(3)子矩阵:A(2:5,4:8),A(1,3,2,4),A(3,2,2,4),A(:,:)与A(:)的区别?,(4)删除矩阵的行列:,A=,A(3,:)=,A(:,2,4)=,15,.,数据输出格式,Matlab以双精度执行所有的运算,结果可以在屏幕上输出,同时赋给指定变量,若无指定变量,则系统会自动将结果赋给变量“ans”,Matlab中数据的输出格式可以通过format命令指定,format命令只改变变量的输出格式,但不会影响变量的值,formatlong,formatrational,formatcompact,16,.,特殊矩阵生成函数,17,.,MATLAB矩阵运算,矩阵的转置:共轭“”,非共轭“.”,矩阵的翻转和旋转:fliplr、flipud、rot90,矩阵元素重组:reshape(A,m,n),查看矩阵的大小:size(A)、size(A,1)、size(A,2),将A排成一个mn的矩阵,满足mn=#A,数组运算(点运算):.*,./,.,.,矩阵算术:+,-,*,/,,参与“+,-,.*,./,.”运算的对象必须具有相同的形状,18,.,MATLAB矩阵运算,矩阵的Kronecker乘法:kron(A,B),19,.,MATLAB函数取值,Matlab普通函数取值,设x是变量,f是一个函数,则,(1)当x=a是标量时,f(x)=f(a),(2)当x是向量或矩阵时,f作用在x的每个分量上,结果为一个与x具有相同形状的向量或矩阵,Matlab矩阵函数:expm、sqrtm、logm,,funm,funm(A,cos),20,.,MATLAB的三角函数,三角函数,21,.,MATLAB的基本数学函数,基本数学函数,22,.,取整函数与矩阵相关函数,取整函数,矩阵相关函数,23,.,Matlab程序设计介绍,Matlab是一种科学计算语言,但同时也具有和C、FORTRAN等高级语言相类似的语言特征,能方便地实现程序控制。利用Matlab的程序控制功能,可以将有关Matlab命令编成程序存储在一个文件中(M文件),然后运行该文件,Matlab就会自动依次执行文件中的命令,直到全部命令执行完毕。,在Matlab程序设计中,要充分利用Matlab数据结构的特点,提供编程效率。,24,.,M文件,用Matlab语言编写的程序称为M文件,以“.m”为扩展名,M文件根据调用方式的不同可以分为两类:,M文件是由若干Matlab命令组合在一起构成的,它可以完成某些操作,也可以实现某种算法,Scriptfile:命令文件/脚本文件,Functionfile:函数文件,事实上,Matlab提供的内部函数以及各种工具箱,都是利用Matlab语言编写的M文件用户也可以结合自己的工作需要,开发自己的程序或工具箱,25,.,命令文件没有输入参数,也不返回输出参数;函数文件可以带输入参数,也可以返回输出参数,命令文件对Matlab当前工作空间的变量进行操作,文件中所有命令的执行结果也返回到当前工作空间中;函数文件中定义的变量为局部变量,当函数执行完后,这些变量被清除,命令文件可以直接运行,在Matlab命令窗口中输入文件的名字就会顺序执行文件中的命令;函数文件不能直接运行,要以函数调用的方式来调用,两类M文件的区别,26,.,(1)命令文件:输入以下内容并以文件名f2cs.m存盘,clear;%清除当前工作空间中的变量f=input(PleaseinputFahrenheittemperature:);c=5*(f-32)/9;fprintf(TheCentigradeTemperatureis%gn,c);,在Matlab命令窗口中输入f2cs,即可执行该命令文件。不用输入参数,也没有输出参数,执行完后,变量c、f仍保留在工作空间。(可用whos查看),举例(一),例:分别用命令文件和函数文件将华氏温度转化为摄氏温度。,27,.,函数文件:建立函数文件f2cf.m,内容如下:,functionc=f2cf(f)c=5*(f-32)/9;,在Matlab命令窗口中输入,f2cf(100),调用该函数时,既有输入参数,又有输出参数;函数调用完后,变量c、f没有被保留在工作空间。,28,.,M文件的建立与打开,M文件是一个文本文件,可以用任何文本编辑器来建立和编辑,而一般使用Matlab自带的文本编辑器。,启动Matlab文本编辑器有三种方法:,打开已有的M文件:,1)菜单操作(open)2)命令操作(edit文件名)3)命令按钮(快捷键)4)双击M文件,1)菜单操作(New)2)命令操作(edit)3)命令按钮(快捷键),29,.,关系运算,比较运算:,比较两个变量的大小,结论是“真”则返回“1”,结论为“假”则返回“0”。,“=”与“=”的区别:=是比较两个变量,=是赋值。,关系操作符能用来比较两个同样大小的矩阵,或用来比较一个矩阵和一个标量,在后一种情况,标量和矩阵中的每一个元素相比较。比较结果与矩阵大小一样。,30,.,关系运算,逻辑运算:,相关函数:,xor(x,y):异或运算,若x为矩阵,则any和all按列运算,返回一个0-1向量,any(x):若向量x中存在非零元素,则返回1,否则返回0,all(x):若向量x中所有元素非零,则返回1,否则返回0,31,.,程序控制结构,程序控制结构有三种:顺序结构、选择结构和循环结构;任何复杂的程序都可以由这三种基本结构构成。,按排列顺序依次执行,直到程序的最后一个语句。这是最简单的一种程序结构,一般涉及数据的输入、数据的计算或处理、数据的输出等。,顺序结构,数据的输入:input,A=input(提示信息);其中提示信息为字符串,A=input(提示信息,s);允许用户输入字符串,name=input(Whatsyourname?,s),32,.,顺序结构(续),数据的输出:disp,disp(X);其中X是字符串或矩阵,程序的暂停:pause,pause(n);,若想强行中止程序的运行,可以使用Ctrl+c,其中n是延迟时间,以秒为单位;也可以直接使用pause,则将暂停程序,直到用户按任一键后继续。,pauseoff:屏蔽程序中所有pause的作用;pauseon:打开pause的作用。,33,.,根据给定的条件是否成立而分别执行不同的语句,单分支,ifexpr(条件)statement(语句组)end,if语句,选择结构,Matlab用于实现选择结构的语句有if和switch语句,双分支,ifexpr(条件)statement1(语句组1)elsestatement2(语句组2)end,34,.,多分支:,ifexpr1(条件1)statement1(语句组1)elseifexpr2(条件2)statement2(语句组2).elseifexprm(条件m)statementm(语句组m)elsestatement(语句组)end,IF语句,elseif可以出现多个,但else只能有一个!,35,.,switch语句,根据表达式的取值不同,分别执行不同的语句。,switchexpr(表达式)caseexpr1(表达式1)statement1(语句组1)caseexpr2(表达式2)statement2(语句组2).caseexprm(表达式m)statementm(语句组m)otherwisestatement(语句组)end,36,.,当任意一个分支的语句执行完后,直接执行switch语句后面的语句。,switch子句后面的表达式可以是一个标量或字符串;case子句后面的表达式可以是标量或字符串,也可以是一个单元(cell),此时表达式的值等于该单元中的某个元素时,执行相应的语句组。,switch语句(续),37,.,循环结构,循环结构是按照给定的条件,重复执行指定的语句,for语句,forvariable=exprstatement(循环体语句)end,循环变量,expr可以是行向量,也可以是矩阵。,Matlab用于实现循环结构的语句有for语句和while语句,在Matlab编程中,采用循环会降低程序的执行速度,应尽量避免使用,或用其它方式代替,如向量运算等。,38,.,whileexpr(条件)statement(循环体语句)end,break和continue语句,break语句用于终止循环的执行。continue语句控制跳过循环体内的某些语句,继续下一次循环。break和continue一般与if语句配合使用。,循环语句可以嵌套使用,while循环:,while循环,39,.,函数文件,function输出形参表=函数名(输入行参表)注释说明部分(可选)函数体语句(必须),其中以function开始的一行为引导行,表示该M文件是函数文件。,特别提示:添加注释是个良好的编程习惯。,函数文件名与函数名一定要统一,函数名的命名规则与变量名相同(必须以字母开头)。,当输出行参多于一个时,用方括号括起来,函数文件由function语句引导,其基本结构为:,40,.,几点说明,return语句,如果在函数文件中插入了return语句,则执行到该语句时就结束函数的执行,程序流程转至调用该函数的位置。函数文件中可以不含return语句,这时当被调用函数执行完成后就自动返回。,函数文件内定义的变量仅在函数文件内部起作用,当函数文件执行完成后,这些内部变量将被清除,41,.,函数调用,函数调用的一般格式,函数文件编好后,就可以被其它M文件调用了。,输出实参表=函数名(输入实参表),函数调用时,实参的顺序、个数必须与函数定义时的形参的顺序、个数一致。,函数可以嵌套调用,即一个函数可以被其它函数调用,甚至可以被它自身调用,此时称为递归调用。,42,.,举例(一),%函数文件factor.mfunctionf=factor(n)if(n=1)f=1;elsef=n*factor(n-1);end,%命令文件main.m%计算s=1!+2!+3!+4!+5!s=0;fori=1:5s=s+factor(i);endfprintf(ns=%g,s),例:利用函数的递归调用计算n!,43,.,局部变量,函数通过输入和输出参数与其它M文件进行数据传递。,当函数调用完毕后,该函数文件中定义的所有局部变量都将被释放。,如果在若干个函数中,都把某个变量定义为全局变量,则这些函数将公共使用这一变量。全局变量的作用域是整个Matlab工作空间,即全程有效,所有函数都可以对它存取和修改。定义全局变量是函数间传递信息的一种手段。,函数文件中的变量都是局部的,即一个函数文件中定义的变量不能被另一个函数文件或其它M文件使用。,44,.,全局变量,变量名列表中的各个变量用空格隔开,不能用逗号!,全局变量给函数间的数据传递带来了方便,但却破坏了函数对变量的封装,降低了程序的可读性,因而在结构化程序设计中,全局变量是不受欢迎的。特别是当程序较大,子程序较多时,全局变量将个程序调试和维护带来不便,故不提倡使用全局变量。,global变量名列表,全局变量的定义,45,.,猜数游戏首先由计算机随机产生一个1,100之间的一个整数,然后由用户猜测所产生的这个数。根据用户猜测的情况给出不同的提示,如果猜测的数大于产生的数,则显示“High”,小于则显示“Low”,等于则显示“Youwon!”,同时退出游戏。用户最多有7次机会。,举例(二),46,.,平面绘图:plot,基本原理:点线,Matlab绘图小结,47,.,Matlab绘图小结,例:y=sin(x),0x=0:0.5:2*pi;y=sin(x);plot(x,y,.),48,.,Matlab绘图小结,例:y=sin(x),0x=0:0.5:2*pi;y=sin(x);plot(x,y,.-),49,.,Matlab绘图小结,例:y=sin(x),0x=0:0.1:2*pi;y=sin(x);plot(x,y,.),50,.,Matlab绘图小结,例:y=sin(x),0x=0:0.1:2*pi;y=sin(x);plot(x,y,.-),51,.,Matlab绘图小结,例:y=sin(x),0x=0:0.1:2*pi;y=sin(x);plot(x,y),52,.,平面绘图:plot,基本原理:点线基本形式:plot(x,y,s)x,y是相同类型的向量,且长度相等。s用于控制图形的属性,可省略。,Matlab绘图小结,问题:plot(y)输出结果是什么?,53,.,54,.,平面绘图:plot,基本原理:点线基本形式:plot(x,y,s)x,y是相同类型的向量,且长度相等。plot(x1,y1,s1,x2,y2,s2,xn,yn,sn)(x1,y1),(xn,yn)分别满足上面的条件。,Matlab绘图小结,55,.,三维空间绘图:,基本原理:点线或点线面,Matlab绘图小结,三维曲线:plot3plot3(x,y,z,s)x,y,z是相同类型的向量,且长度相等。plot3(x1,y1,z1,s1,xn,yn,zn,sn)(x1,y1,z1),(xn,yn,zn)分别满足上面的条件。,56,.,三维曲线方程:,x=x(t),y=y(t),z=z(t),atbt=a:h:b;x=x(t);y=y(t);z=z(t);plot3(x,y,z,s);,Matlab绘图小结,y=y(x),z=z(x),axbx=a:h:b;y=y(t);z=z(t);plot3(x,y,z,s);,两曲面的交线:f(x,y,z)=0,g(x,y,z)=0?,用Matlab绘图时,空间曲线要用参数方程来表示。,57,.,例:三维螺线y=sin(x),z=cos(x),0t=0:0.5:20;y=sin(t);z=cos(t);plot3(t,y,z,.),59,.,Matlab绘图小结,t=0:0.5:20;y=sin(t);z=cos(t);plot3(t,y,z,.-),60,.,Matlab绘图小结,t=0:0.1:20;y=sin(t);z=cos(t);plot3(t,y,z,.-),61,.,三维空间绘图:,基本原理:点线或点线面三维曲线:plot3空间曲面:mesh和surfmesh(X,Y,Z,C)或surf(X,Y,Z,C)C用来指定图形的配色,若省略,则取C=Z。,Matlab绘图小结,62,.,Matlab绘图小结,点:,线:分别沿x方向和y方向连接这些点。,矩阵X,Y,Z的元素分别为点的x-坐标,y-坐标和z-坐标。,63,.,矩阵X,Y的生成:meshgrid,Matlab绘图小结,设曲面方程:,X,Y需要你给定,Z由曲面函数计算生成。,绘图区域,64,.,65,.,66,.,67,.,矩阵X由这些点的横坐标构成,矩阵Y由这些点的纵坐标构成,X,Y的生成具体方法:meshgrid,x=a:h1:b;h1为x方向步长y=c:h2:d;h2为y方向步长X,Y=meshgrid(x,y);,若x=y,则可简写为:X,Y=meshgrid(x);,在Matlab中,是注释符号,68,.,“墨西哥帽子”:,在-axa,-ax=-8:0.5:8;y=-8:0.5:8;X,Y=meshgrid(x,y);r=sqrt(X.2+y.2)+eps;Z=sin(r)./r;mesh(Z),X,Y=meshgrid(-8:0.5:8);,69,.,例1.a=8时的曲面图形:,70,.,例2.a=20时的曲面图形:,71,.,三维空间绘图:,基本原理:点线或点线面三维曲线:plot3空间曲面:mesh和surf其它曲面绘图函数:meshc、meshz、surfc,Matlab绘图小结,72,.,图形的控制与修饰:,坐标轴的控制:axisaxis(xmin,xmax,ymin,ymax,zmin,zmax)axisauto/on/off/equal/square/manual/,Matlab绘图小结,73,.,图形的控制与修饰:,坐标轴的控制:axis,Matlab绘图小结,网格:grid/on/off,标注:title、xlabel、ylabel、zlabel、texttitle(text,Property1,PropertyValue1,.)xlable、ylabel、zlabel的用法与title相同;text(x,y,z,text),74,.,图形的控制与修饰:,坐标轴的控制:axis,Matlab绘图小结,网格:grid/on/off,标注:title、xlabel、ylabel、zlabel、text,配色方案:colormapcolormap(rgb)或colormap(s),find命令:find(条件),legend命令:图例,75,.,利用plot函数在一个坐标系下绘制以下函数的图形,要求采用不同的颜色、线型、符号标记。,x=sin(t);y=cos(t);z=sin(2*t);,plot(t,x,-k*,t,y,-rs,t,z,:bo),t=0:pi/20:2*pi;,legend(sin(t),cos(t),sin(2t),Matlab绘图小结,绘图举例:,76,.,Matlab绘图小结,77,.,Matlab绘图小结,78,.,实验一、特殊函数与特殊图形,X,Y=meshgrid(-12:0.5:12);,R=sqrt(X.2+Y.2)+eps;Z=sin(R)./R;,index=find(R11);Z(index)=NaN;,mesh(Z);axissqual;axisoff;,教材P51,2:墨西哥帽子的剪裁,79,.,实验一、特殊函数与特殊图形,没有剪裁的墨西哥帽子,80,.,实验一、特殊函数与特殊图形,剪裁后的墨西哥帽子,81,.,符号函数绘图:,平面曲线:ezplot,Matlab绘图小结,ezplot(f(x),ezplot(f(x),a,b),ezplot(f(x,y),ezplot(f(x,y),a,b,c,d),ezplot(f(x,y),a,b),82,.,例:,Matlab绘图小结,ezplot(sin(x),ezplot(sin(x),-pi,pi),ezplot(x2+y2-9),ezplot(x2+y2-9,-3,3),函数表达式要加单引号。,83,.,符号函数绘图:,平面曲线:ezplot三维曲线:ezplot3,Matlab绘图小结,ezplot3(x(t),y(t),z(t),a,b),曲线:,ezplot3(x(t),y(t),z(t),曲线:,需将曲线方程化为参数方程。,84,.,例:三维螺线x=t,y=sin(t),z=cos(t),Matlab绘图小结,ezplot3(t,sin(t),cos(t),0,20),每个函数表达式都要加单引号。,85,.,符号函数绘图:,平面曲线:ezplot三维曲线:ezplot3三维曲面:ezmesh、ezsurf,Matlab绘图小结,86,.,Matlab绘图小结,ezmesh(z(x,y),a,b,c,d),ezmesh(x(s,t),y(s,t),z(s,t),a,b,c,d),ezmesh(z(x,y),a,b),ezmesh(z(x,y),ezmesh(x(s,t),y(s,t),z(s,t),a,b),ezmesh(x(s,t),y(s,t),z(s,t),ezsurf的用法与ezmesh相同。,87,.,符号函数绘图:,平面曲线:ezplot三维曲线:ezplot3三维曲面:ezmesh、ezsurfezmeshc、ezsurfc,Matlab绘图小结,88,.,绘图子区域的划分:subplot,Matlab绘图小结,subplot(m,n,p),该函数将一个图形窗口分割成m*n个子区域,p表示第p个绘图子区域。绘图子区域编号按行从左至右。,89,.,Matlab符号运算介绍,Matlab符号运算是通过符号数学工具箱(SymbolicMathToolbox)来实现的。,Matlab符号运算,符号对象的建立:sym和syms,例:,symsxyz,x=sym(x);y=sym(y);z=sym(z);,90,.,符号对象建立时可以附加属性:real、positive和unreal,k=sym(k,positive),x=sym(x,real),x=sym(x,unreal),表明x是实的,表明k是正的,去掉x的附加属性,91,.,符号表达式的建立,f2=sym(sin(x)+cos(x),symsxf1=sin(x)+cos(x),f3=sin(x)+cos(x),用这种方法创建的符号表达式对空格很敏感,不要在字符间随意添加空格!,推荐!,符号变量与符号常量,a=sym(a);b=sym(5);,c=sym(5);,b、c有区别吗?hint:helpsym,92,.,相关函数,findsym:查找符号表达式中的符号变量,findsym(f)按字母顺序列出符号表达式f中的所有自由变量findsym(f,N)列出f中距离x最近的N个自由变量(i,j除外),默认自变量findsym(f,1),a=sym(a);x=sym(x);k=sym(3);f=k*x+a;findsym(f),例:,ans=a,x,93,.,相关函数,subs:符号替换,subs(f):用当前工作空间中存在的变量值,替换f中所有出现的相同的变量,并进行简化计算。subs(f,x,a):用a替换f中的x;a是可以是数/数值变量/表达式或符号变量/表达式。若x与a为相同大小的向量或矩阵,则用a中相应的元素替换x中的元素;若f,x为标量,而a是向量或矩阵,则f与x将扩展为与a相同形状的向量或矩阵。,94,.,例:,symsxyf=2*x+y;x=3,y=4;subs(f)subs(f,x,a),symsxyabf=2*x+y;subs(f,x,y,3,4)subs(f,x,y,3,4)subs(f,x,1:3)subs(f,x,y,1:3,5:7)subs(f,x,y,a+b,a-b)subs(f,x,y,x+y,x-y),ans=10,ans=2*x+y,ans=10,ans=2+y,4+y,6+y,ans=71013,ans=3*a+b,?,95,.,符号矩阵,使用sym函数直接生成,A=sym(1+x,sin(x);5,exp(x),将数值矩阵转化成符号矩阵,B=2/3,sqrt(2);5.2,log(3)C=sym(B),符号矩阵中元素的引用和修改,A=sym(1+x,sin(x);5,exp(x)A(1,2)A(2,2)=sym(cos(x),能否用sym(B)?,96,.,符号矩阵的基本运算,符号矩阵的基本运算与数值矩阵的基本运算相类似。,1)基本运算符:+、-、*、/、.*、.、./、.、.,2)三角函数与反三角函数:sin、cos、tan、,3)指数、对数函数:sqrt、exp、log、,4)复数函数:real、imag、conj、abs,5)矩阵函数:det、inv、rank、(没有norm),6)矩阵元素的抽取:diag、tril、triu,97,.,六大常见符号运算,因式分解、展开、合并、简化及通分等,因式分解:factor,symsxf=x6+1s=factor(f),s=(1+x2)*(x4-x2+1),factor也可用于正整数的分解,98,.,大整数的分解,99,.,展开函数:expand,多项式展开,三角函数展开,该函数经常用于多项式展开,也常用于三角函数、指数函数和对数函数的展开中。,100,.,合并同类项:collect,collect(f,v):按指定变量v的次数合并系数;collect(f):合并f中的默认自变量的各项系数。,findsym(f,1),101,.,简化函数:simple和simplify,simple(f):对f尝试多种不同的算法简化,返回其中最短的简化形式;R,HOW=simple(f):R为f的最短简化形式,HOW中记录的为简化过程中使用的主要方法。,simple函数示例,102,.,simplify(f):简化函数,注:多次使用simple可以达到最简表达。,103,.,例:化简,104,.,分式通分:numden,N,D=numden(f):N为通分后的分子,D为通分后的分母,105,.,horner多项式:嵌套形式的多项式,例:,106,.,六大常见符号运算,因式分解、展开、合并、简化及通分等,Matlab符号运算(二),计算极限,limit(f,x,a):计算,limit(f,a):计算默认自变量趋向于a时f的极限,limit(f):计算a=0时的极限,limit(f,x,a,right):右极限limit(f,x,a,left):左极限,107,.,例:求极限,symshnxL=limit(log(x+h)-log(x)/h,h,0)M=limit(1-x/n)n,n,inf),L=1/x,M=exp(-x),symsxL=limit(abs(x)/x,x,0,left)R=limit(abs(x)/x,x,0,right),L=-1,M=1,108,.,六大常见符号运算,因式分解、展开、合并、简化及通分等,计算极限,计算导数,diff(f):计算f关于默认自变量的导数,diff(f,v):计算f关于变量v的导数,diff(f,n),diff(f,v,n),diff(f,n,v):n次求导,109,.,例:设y=sin(ax),求:,symsaxy=sin(a*x)A=diff(y,x)B=diff(y,a)C=diff(y,x,2)D=diff(y,a,2),A=cos(a*x)*a,B=cos(a*x)*x,C=-sin(a*x)*a2,D=-sin(a*x)*x2,110,.,六大常见符号运算,因式分解、展开、合并、简化及通分等,计算极限,计算导数,计算积分,int(f,v,a,b):计算定积分,int(f,a,b):计算f关于默认自变量的定积分,int(f,v):计算不定积分,int(f):计算f关于默认自变量的不定积分,111,.,例:求积分,symsxf=(x2+1)/(x2-2*x+2)2;I=int(f)g=cos(x)/(sin(x)+cos(x);J=int(g,x,0,pi/2)h=exp(-x2);K=int(h,x,0,inf),I=3/2*atan(x-1)+1/4*(2*x-6)/(x2-2*x+2),J=1/4*pi,K=1/2*pi(1/2),112,.,六大常见符号运算,因式分解、展开、合并、简化及通分等,计算极限,计算导数,计算积分,符号求和,symsum(f,v,a,b):求和,symsum(f,a,b):关于默认自变量求和。,113,.,例:求级数,以及其前10项的部分和。,symsnS=symsum(1/n2,n,1,inf)S10=symsum(1/n2,n,1,10),S=1/6*pi2,S10=1968329/1270080,例:求函数级数,symsnxS=symsum(x/n2,n,1,inf),S=1/6*x*pi2,114,.,六大常见符号运算,因式分解、展开、合并、简化及通分等,计算极限,计算导数,计算积分,符号求和,解代数方程和微分方程,115,.,其它运算,复合函数计算:compose,compose(f,g):返回f(g(y),其中f=f(x),g

温馨提示

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

评论

0/150

提交评论