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

下载本文档

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

文档简介

MATLAB 入门简介,概 述,Matlab是由美国Mathworks公司推出的一个科技应用软件,它的名字是由矩阵(MATrix)和实验室 ( LABoratory)的头三个字母组成。顾名思义,它相当于把矩阵放在实验室里做实验,Matlab是以矩阵为单位进行处理的,也就是它把一切都当作矩阵,即使是一个数也是。,Matlab是一种高性能的、用于工程计算的编程软件,它把科学计算、结果可视化和编程都集中在一个使用非常方便的环境中。,Matlab是一种广泛应用于工程计算及数值分析领域的新型高级语言,自1984年由美国 MathWorks 公司推向市场以来,历经二十多年的发展与竞争,现已成为国际公认的最优秀的工程应用开发环境。Matlab功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。,在欧美各高等院校,Matlab已经成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,成为大学生、硕士生以及博士生必须掌握的基本技能。,概 述(续),Matlab 语言的首创人是 C. Moler,Matlab = Matrix Laboratry 矩阵实验室,概 述 (续),1984年The MathWorks的公司推出了第一个 Matlab 的商业版本,用 C 语言作了完全的改写。,其后又增添了丰富多彩的图形图像处理、多媒体功能、符号运算和它与其他流行软件的接口功能,使得 Matlab 的功能越来越强大。,到九十年代初期,在国际上 30 几个数学类科技应用软件中, Matlab 在数值计算方面独占鳌头,而 Mathematica 和 Maple 则分居符号计算软件的前两名。,Matlab的发展 1984年,Matlab 1.0版 (DOS版,182K,20来个函数) 1992年,Matlab 4.0版(93年推出Windows版本) 1994年,Matlab 4.2, 1999年,Matlab 5.3 2000年,Matlab 6.0, 2002年,Matlab 6.5 2004年,Matlab 7.0, 2006年,Matlab2006a,目前,Matlab 已经成为国际上最流行的科学与工程计算的软件工具,它已经不仅仅是一个“矩阵实验室”了,而成为了一种具有广泛应用前景的全新的计算机高级编程语言了,有人称它为“第四代”计算机语言。 就影响而言,至今仍然没有一个别的计算软件可与 Matlab 匹敌。,概 述(续),数值计算功能,Matlab是一个交互式软件系统 给出一条命令,立即就可以得出该命令的结果,Matlab 的特点与主要功能,Matlab以矩阵作为基本单位,但无需预先指定维数(动态定维) 按照IEEE的数值计算标准进行计算 提供十分丰富的数值计算函数,方便计算,提高效率 Matlab命令与数学中的符号、公式非常接近,可读性强,容易掌握,符号运算功能,和著名的 Maple 相结合,使得 Matlab 具有强大的符号计算功能,绘图功能,Matlab 提供了丰富的绘图命令,能实现一系列的可视化操作,Matlab 的特点与主要功能,命令窗口,当前工作目录,当前工作空间,输入命令的历史记录,命令 提示符,MATLAB的联机帮助,MATLAB 具有完善的帮助系统,Matlab 语言规则,Matlab 区分大小写,它的命令和函数全是小写的,一行可以输入几个命令,用分号“;” 或逗号“,”隔开,续行符: “”(三个点),如果语句很长,可用续行符将一个语句写成多行。续行符的前最好留一个空格。,注释符: “%”,其后面的内容为注释,对 Matlab 的计算不产生任何影响,Matlab 变量,Matlab中变量名是以字母开头,可以由字母、数字或下划线组成,最多 63 个字符(6.5 版本前为 19 个),变量赋值: 变量表达式,赋值号左边必须是变量!,系统预定义变量:eps, pi, Inf, NaN, i, j,who、whos、clear,save、load,save 将所有变量存入文件 matlab.mat,save mydat / save mydat.mat 将所有变量存入 mydata.mat,save 文件名 变量名列表,数与算术表达式,Matlab 中的数值表示一般采用十进制,可以带小数点和正负号。,(1) Matlab 中的数默认是双精度实数,(2) 浮点运算的相对精度为 eps,Matlab 中eps2.22e-016,即大约保持 16 位有效数字。,(3) Matlab 中数的表示范围为:10308 10308,(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,数据的输入,数据输入,(1) 直接输入: a=1 2 ; 3, 4,(2) 冒号 “:” 运算符:初值 : 步长 : 终值,同一行中各元素之间用“空格”或“,” (英文状态下) 分开; 行与行之间用 “;” 或“回车”分开,a=1:5, b=0:pi/4:pi,(3) 由向量或小矩阵生成:X=a ; b,(5) 交互式输入: input,n=input(Please input n: ),(4) 由 数据文件生成,特殊矩阵生成函数,(6) 一些生成特殊矩阵的函数,矩阵元素的操作,矩阵元素的提取,(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 )=,数据输出格式,Matlab 以双精度执行所有的运算,结果可以在屏幕上输出,同时赋给指定变量,若无指定变量,则系统会自动将结果赋给变量 “ans”,Matlab 中数据的输出格式可以通过 format 命令指定,format 命令只改变变量的输出格式,但不会影响变量的值, format long, format rational, format compact,特殊矩阵生成函数,MATLAB 矩阵运算,矩阵的转置:共轭“”,非共轭“.”,矩阵的翻转和旋转: fliplr、flipud、rot90,矩阵元素重组: reshape(A, m, n),查看矩阵的大小:size(A)、size(A, 1)、size(A, 2),将 A 排成一个m n 的矩阵,满足 m n = #A,数组运算(点运算):.*,./,.,.,矩阵算术: +,-,*,/,,参与 “+, -, .*, ./ , .” 运算的对象必须具有相同的形状,MATLAB 矩阵运算,矩阵的 Kronecker 乘法:kron(A,B),MATLAB 函数取值,Matlab 普通函数取值,设 x 是变量, f 是一个函数,则,(1) 当 x = a 是标量时,f (x) = f (a),(2) 当 x 是向量或矩阵时, f 作用在 x 的每个分量上,结果为一个与 x 具有相同形状的向量或矩阵,Matlab 矩阵函数:expm、sqrtm、logm,,funm,funm(A,cos),MATLAB的三角函数,三角函数,MATLAB的基本数学函数,基本数学函数,取整函数与矩阵相关函数,取整函数,矩阵相关函数,Matlab 程序设计介绍,Matlab 是一种科学计算语言,但同时也具有和 C、 FORTRAN 等高级语言相类似的语言特征,能方便地实现程序控制。利用 Matlab 的程序控制功能,可以将有关Matlab 命令编成程序存储在一个文件中(M文件),然后运行该文件,Matlab 就会自动依次执行文件中的命令,直到全部命令执行完毕。,在 Matlab 程序设计中,要充分利用 Matlab 数据结构的特点,提供编程效率。,M文件,用 Matlab 语言编写的程序称为 M文件,以“.m”为扩展名,M文件根据调用方式的不同可以分为两类:,M文件是由若干 Matlab 命令组合在一起构成的,它可以完成某些操作,也可以实现某种算法,Script file:命令文件/脚本文件,Function file:函数文件,事实上,Matlab 提供的内部函数以及各种工具箱,都是利用Matlab 语言编写的 M文件 用户也可以结合自己的工作需要,开发自己的程序或工具箱,命令文件没有输入参数,也不返回输出参数; 函数文件可以带输入参数,也可以返回输出参数,命令文件对 Matlab 当前工作空间的变量进行操作,文件中所有命令的执行结果也返回到当前工作空间中; 函数文件中定义的变量为局部变量,当函数执行完后,这些变量被清除,命令文件可以直接运行,在 Matlab 命令窗口中输入文件的名字就会顺序执行文件中的命令; 函数文件不能直接运行,要以函数调用的方式来调用,两类M文件的区别,(1) 命令文件:输入以下内容并以文件名 f2cs.m 存盘,clear; %清除当前工作空间中的变量 f=input(Please input Fahrenheit temperature:); c=5*(f-32)/9; fprintf(The Centigrade Temperature is %gn, c);,在Matlab命令窗口中输入 f2cs ,即可执行该命令文件。不用输入参数,也没有输出参数,执行完后,变量 c、f 仍保留在工作空间。(可用whos查看),举例(一),例:分别用命令文件和函数文件将华氏温度转化为摄氏温度。,函数文件:建立函数文件 f2cf.m ,内容如下:,function c=f2cf(f) c=5*(f-32)/9;,在Matlab命令窗口中输入, f2cf(100),调用该函数时,既有输入参数,又有输出参数;函数调用完后,变量 c、f 没有被保留在工作空间。,M文件的建立与打开,M文件是一个文本文件,可以用任何文本编辑器来建立和编辑,而一般使用 Matlab 自带的文本编辑器。,启动Matlab文本编辑器有三种方法:,打开已有的M文件:,1)菜单操作(open) 2)命令操作(edit 文件名) 3)命令按钮(快捷键) 4)双击 M文件,1)菜单操作(New) 2)命令操作(edit) 3)命令按钮(快捷键),关系运算,比较运算:,比较两个变量的大小,结论是“真”则返回 “1” ,结论为“假”则返回 “0” 。,“=”与“=”的区别:= 是比较两个变量,= 是赋值。,关系操作符能用来比较两个同样大小的矩阵,或用来比较一个矩阵和一个标量,在后一种情况,标量和矩阵中的每一个元素相比较。比较结果与矩阵大小一样。,关系运算,逻辑运算:,相关函数:,xor(x,y):异或运算,若 x 为矩阵,则 any 和 all 按列运算,返回一个0-1向量,any(x):若向量 x 中存在非零元素,则返回 1,否则返回 0,all(x): 若向量 x 中所有元素非零,则返回 1,否则返回 0,程序控制结构,程序控制结构有三种:顺序结构、选择结构和循环结构;任何复杂的程序都可以由这三种基本结构构成。,按排列顺序依次执行,直到程序的最后一个语句。 这是最简单的一种程序结构,一般涉及数据的输入、数据的计算或处理、数据的输出等。,顺序结构,数据的输入: input,A=input(提示信息);其中提示信息为字符串,A=input(提示信息,s);允许用户输入字符串,name=input(Whats your name? ,s),顺序结构(续),数据的输出: disp,disp(X); 其中 X 是字符串或矩阵,程序的暂停: pause,pause(n);,若想强行中止程序的运行,可以使用 Ctrl+c,其中 n 是延迟时间,以秒为单位;也可以直接使用pause,则将暂停程序,直到用户按任一键后继续。,pause off: 屏蔽程序中所有 pause 的作用; pause on: 打开 pause 的作用。,根据给定的条件是否成立而分别执行不同的语句,单分支,if expr (条件) statement (语句组) end,if 语句,选择结构,Matlab 用于实现选择结构的语句有 if 和 switch 语句,双分支,if expr (条件) statement1(语句组1) else statement2(语句组2) end,多分支:,if expr1(条件 1) statement1(语句组 1) elseif expr2(条件 2) statement2(语句组 2) . . elseif exprm(条件 m) statementm(语句组 m) else statement(语句组) end,IF 语句,elseif 可以出现多个,但 else 只能有一个!,switch 语句,根据表达式的取值不同,分别执行不同的语句。,switch expr(表达式) case expr1(表达式 1) statement1(语句组 1) case expr2(表达式 2) statement2(语句组 2) . . case exprm(表达式 m) statementm(语句组 m) otherwise statement (语句组) end,当任意一个分支的语句执行完后,直接执行 switch 语句后面的语句。,switch 子句后面的表达式可以是一个标量或字符串;case 子句后面的表达式可以是标量或字符串,也可以是一个单元(cell),此时表达式的值等于该单元中的某个元素时,执行相应的语句组。,switch 语句(续),循环结构,循环结构是按照给定的条件,重复执行指定的语句,for 语句,for variable = expr statement(循环体语句) end,循环变量,expr 可以是行向量,也可以是矩阵。,Matlab 用于实现循环结构的语句有for语句和while语句,在 Matlab 编程中,采用循环会降低程序的执行速度,应尽量避免使用,或用其它方式代替,如向量运算等。,while expr (条件) statement(循环体语句) end,break 和 continue 语句,break 语句用于终止循环的执行。 continue 语句控制跳过循环体内的某些语句,继续下一次循环。 break 和 continue 一般与 if 语句配合使用。,循环语句可以嵌套使用,while 循环:,while 循环,函数文件,function 输出形参表 = 函数名(输入行参表) 注释说明部分(可选) 函数体语句(必须),其中以 function开始的一行为引导行,表示该 M文件是函数文件。,特别提示:添加注释是个良好的编程习惯。,函数文件名与函数名一定要统一,函数名的命名规则与变量名相同(必须以字母开头)。,当输出行参多于一个时,用方括号括起来,函数文件由 function 语句引导,其基本结构为:,几点说明,return 语句,如果在函数文件中插入了 return语句,则执行到该语句时就结束函数的执行,程序流程转至调用该函数的位置。函数文件中可以不含 return语句,这时当被调用函数执行完成后就自动返回。,函数文件内定义的变量仅在函数文件内部起作用, 当函数文件执行完成后,这些内部变量将被清除,函数调用,函数调用的一般格式,函数文件编好后,就可以被其它 M文件调用了。,输出实参表 = 函数名(输入实参表),函数调用时,实参的顺序、个数必须与函数定义时的形参的顺序、个数一致。,函数可以嵌套调用,即一个函数可以被其它函数调用,甚至可以被它自身调用,此时称为递归调用。,举例(一),% 函数文件 factor.m function f=factor(n) if (n=1) f=1; else f=n*factor(n-1); end,% 命令文件 main.m % 计算s=1!+2!+3!+4!+5! s=0; for i=1:5 s=s+factor(i); end fprintf(n s=%g,s),例:利用函数的递归调用计算 n!,局部变量,函数通过输入和输出参数与其它M文件进行数据传递。,当函数调用完毕后,该函数文件中定义的所有局部变量都将被释放。,如果在若干个函数中,都把某个变量定义为全局变量,则这些函数将公共使用这一变量。全局变量的作用域是整个Matlab工作空间,即全程有效,所有函数都可以对它存取和修改。定义全局变量是函数间传递信息的一种手段。,函数文件中的变量都是局部的,即一个函数文件中定义的变量不能被另一个函数文件或其它 M文件使用。,全局变量,变量名列表中的各个变量用空格隔开,不能用逗号!,全局变量给函数间的数据传递带来了方便,但却破坏了函数对变量的封装,降低了程序的可读性,因而在结构化程序设计中,全局变量是不受欢迎的。特别是当程序较大,子程序较多时,全局变量将个程序调试和维护带来不便,故不提倡使用全局变量。,global 变量名列表,全局变量的定义,猜数游戏 首先由计算机随机产生一个 1, 100 之间的一个整数,然后由用户猜测所产生的这个数。根据用户猜测的情况给出不同的提示,如果猜测的数大于产生的数,则显示“High”,小于则显示“Low”,等于则显示“You won!”,同时退出游戏。用户最多有 7 次机会。,举例(二),平面绘图: plot,基本原理:点 线,Matlab 绘图小结,Matlab 绘图小结,例:y=sin(x), 0x2*pi, x=0:0.5:2*pi; y=sin(x); plot(x,y,.),Matlab 绘图小结,例:y=sin(x), 0x2*pi, x=0:0.5:2*pi; y=sin(x); plot(x,y,.-),Matlab 绘图小结,例:y=sin(x), 0x2*pi, x=0:0.1:2*pi; y=sin(x); plot(x,y,.),Matlab 绘图小结,例:y=sin(x), 0x2*pi, x=0:0.1:2*pi; y=sin(x); plot(x,y,.- ),Matlab 绘图小结,例:y=sin(x), 0x2*pi, x=0:0.1:2*pi; y=sin(x); plot(x,y),平面绘图: plot,基本原理:点 线 基本形式: plot(x,y,s) x,y 是相同类型的向量,且长度相等。 s 用于控制图形的属性,可省略。,Matlab 绘图小结,问题:plot(y) 输出结果是什么?,平面绘图: plot,基本原理:点 线 基本形式: plot(x,y,s) x,y 是相同类型的向量,且长度相等。 plot(x1,y1,s1,x2,y2,s2, xn,yn,sn) (x1,y1), ,(xn,yn) 分别满足上面的条件。,Matlab 绘图小结,三维空间绘图:,基本原理:点 线 或 点 线 面,Matlab 绘图小结,三维曲线:plot3 plot3(x,y,z,s) x,y,z 是相同类型的向量,且长度相等。 plot3(x1,y1,z1,s1, , xn,yn,zn,sn) (x1,y1,z1), ,(xn,yn,zn)分别满足上面的条件。,三维曲线方程:,x=x(t), y=y(t), z=z(t), atb t=a:h:b; x=x(t); y=y(t); z=z(t); plot3(x,y,z,s);,Matlab 绘图小结,y=y(x), z=z(x), axb x=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绘图时,空间曲线要用参数方程来表示。,例:三维螺线 y=sin(x),z=cos(x), 0x20,Matlab 绘图小结,Matlab 绘图小结, t=0:0.5:20; y=sin(t); z=cos(t); plot3(t,y,z,.),Matlab 绘图小结, t=0:0.5:20; y=sin(t); z=cos(t); plot3(t,y,z,.-),Matlab 绘图小结, t=0:0.1:20; y=sin(t); z=cos(t); plot3(t,y,z,.-),三维空间绘图:,基本原理:点 线 或 点 线 面 三维曲线:plot3 空间曲面:mesh 和 surf mesh(X,Y,Z,C) 或 surf(X,Y,Z,C) C 用来指定图形的配色,若省略,则取 C=Z。,Matlab 绘图小结,Matlab 绘图小结,点:,线: 分别沿x方向和y方向 连接这些点。,矩阵X,Y,Z的元素分别为点的x-坐标,y-坐标和z-坐标。,矩阵 X,Y 的生成: meshgrid,Matlab 绘图小结,设曲面方程:,X,Y 需要你给定,Z 由曲面函数计算生成。,绘图 区域,矩阵 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 中, 是注释符号,“墨西哥帽子”:,在 -axa, -aya 区域内的曲面图形。,例1. a=8时的曲面图形:, x=-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);,例1. a=8时的曲面图形:,例2. a=20时的曲面图形:,三维空间绘图:,基本原理:点 线 或 点 线 面 三维曲线:plot3 空间曲面:mesh 和 surf 其它曲面绘图函数:meshc、meshz、surfc,Matlab 绘图小结,图形的控制与修饰:,坐标轴的控制:axis axis(xmin,xmax,ymin,ymax,zmin,zmax) axis auto/on/off/equal/square/manual/,Matlab 绘图小结,图形的控制与修饰:,坐标轴的控制:axis,Matlab 绘图小结,网格:grid /on/off,标注:title、xlabel、ylabel、zlabel、text title(text, Property1, PropertyValue1, . ) xlable、ylabel、zlabel 的用法与 title 相同; text(x,y,z,text),图形的控制与修饰:,坐标轴的控制:axis,Matlab 绘图小结,网格:grid /on/off,标注:title、xlabel、ylabel、zlabel、text,配色方案:colormap colormap(r g b) 或 colormap(s),find 命令: find(条件),legend 命令: 图例,利用 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 绘图小结,绘图举例:,Matlab 绘图小结,Matlab 绘图小结,实验一、特殊函数与特殊图形, 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); axis squal; axis off;,教材P51,2:墨西哥帽子的剪裁,实验一、特殊函数与特殊图形,没有剪裁的墨西哥帽子,实验一、特殊函数与特殊图形,剪裁后的墨西哥帽子,符号函数绘图:,平面曲线: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 ),例:,Matlab 绘图小结,ezplot( sin(x) ),ezplot( sin(x), -pi, pi ),ezplot( x2 + y2 -9 ),ezplot(x2 + y2 -9 ,-3,3 ),函数表达式要加单引号。,符号函数绘图:,平面曲线:ezplot 三维曲线:ezplot3,Matlab 绘图小结,ezplot3(x(t),y(t),z(t), a, b),曲线:,ezplot3(x(t),y(t),z(t),曲线:,需将曲线方程化为参数方程。,例:三维螺线 x=t, y=sin(t), z=cos(t),Matlab 绘图小结,ezplot3(t, sin(t), cos(t), 0, 20 ),每个函数表达式都要加单引号。,符号函数绘图:,平面曲线:ezplot 三维曲线:ezplot3 三维曲面:ezmesh、ezsurf,Matlab 绘图小结,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 相同。,符号函数绘图:,平面曲线:ezplot 三维曲线:ezplot3 三维曲面:ezmesh、ezsurf ezmeshc、ezsurfc,Matlab 绘图小结,绘图子区域的划分:subplot,Matlab 绘图小结,subplot(m, n, p),该函数将一个图形窗口分割成 m*n 个子区域, p 表示第 p 个绘图子区域。 绘图子区域编号 按行 从左至右。,Matlab 符号运算介绍,Matlab符号运算是通过符号数学工具箱(Symbolic Math Toolbox)来实现的。,Matlab 符号运算,符号对象的建立:sym 和 syms,例:, syms x y z, x=sym(x); y=sym(y); z=sym(z);,符号对象建立时可以附加属性: real、positive 和 unreal, k=sym(k,positive), x=sym(x,real), x=sym(x,unreal),表明 x 是实的,表明 k 是正的,去掉 x 的附加属性,符号表达式的建立, f2=sym(sin(x)+cos(x), syms x f1=sin(x)+cos(x), f3=sin(x)+cos(x),用这种方法创建的符号表达式对空格很敏感,不要在字符间随意添加空格!,推荐!,符号变量与符号常量, a=sym(a); b=sym(5);, c=sym(5);,b、c有区别吗? hint:help sym,相关函数,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,相关函数,subs:符号替换,subs(f): 用当前工作空间中存在的变量值,替换 f中所有出现的相同的变量,并进行简化计算。 subs(f,x,a):用 a 替换 f 中的 x ;a 是可以是 数/数值变量/表达式 或 符号变量/表达式。 若x与a为相同大小的向量或矩阵,则用a中相应的元素替换x中的元素; 若f,x为标量,而a是向量或矩阵,则f与x将扩展为与a相同形状的向量或矩阵。,例:, syms x y f=2*x+y; x=3,y=4; subs(f) subs(f,x,a), syms x y a b f=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=7 10 13,ans=3*a+b,?,符号矩阵,使用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)?,符号矩阵的基本运算,符号矩阵的基本运算与数值矩阵的基本运算相类似。,1) 基本运算符:+、-、*、/、.*、.、./、.、 、.,2) 三角函数与反三角函数:sin、cos、tan、 ,3) 指数、对数函数:sqrt、exp、log、 ,4) 复数函数:real、imag、conj、 abs,5) 矩阵函数:det、inv、rank、 (没有norm),6) 矩阵元素的抽取:diag、tril、triu,六大常见符号运算,因式分解、展开、合并、简化及通分等,因式分解:factor, syms x f=x6 +1 s=factor(f),s =(1+x2)*(x4-x2+1),factor 也可用于正整数的分解,大整数的分解,展开函数: expand,多项式展开,三角函数展开,该函数经常用于多项式展开,也常用于三角函数、指数函数和对数函数的展开中。,合并同类项: collect,collect(f,v): 按指定变量 v 的次数合并系数; collect(f): 合并 f 中的默认自变量的各项系数。,findsym(f,1),简化函数: simple 和 simplify,simple(f): 对 f 尝试多种不同的算法简化, 返回其中最短的简化形式; R,HOW=simple(f): R为f的最短简化形式, HOW中记录的为简化过程中使用的主要方法。,simple函数示例,simplify(f): 简化函数,注:多次 使用 simple 可以达到最简表达。,例:化简,分式通分: numden,N,D=numden(f): N为通分后的分子,D为通分后的分母,horner多项式:嵌套形式的多项式,例:,六大常见符号运算,因式分解、展开、合并、简化及通分等,Matlab 符号运算(二),计算极限,limit(f,x,a): 计算,limit(f,a): 计算默认自变量趋向于a时f的极限,limit(f): 计算 a=0 时的极限,limit(f,x,a,right):右极限 limit(f,x,a,left):左极限,例:求极限, syms h n x L=limit(log(x+h)-log(x)/h,h,0) M=limit(1-x/n)n,n,inf),L=1/x,M=exp(-x), syms x L=limit(abs(x)/x,x,0,left) R=limit(abs(x)/x,x,0,right),L=-1,M=1,六大常见符号运算,因式分解、展开、合并、简化及通分等,计算极限,计算导数,diff(f): 计算 f 关于默认自变量的导数,diff(f,v): 计算 f 关于变量 v 的导数,diff(f,n),diff(f,v,n),diff(f,n,v): n次求导,例:设 y=sin(ax),求:, syms a x y=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,六大常见符号运算,因式分解、展开、合并、简化及通分等,计算极限,计算导数,计算积分,int(f,v,a,b):计算定积分,int(f,a,b): 计算 f 关于默认自变量 的定积分,int(f,v):计算不定积分,int(f):计算 f 关于默认自变量 的不定积分,例:求积分, syms x f=(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),六大常见符号运算,因式分解、展开、合并、简化及通分等,计算极限,计算导数,计算积分,符号求和,symsum(f,v,a,b): 求和,symsum(f,a,b): 关于默认自变量 求和。,例:求级数 ,以及其前10项的部分和。, syms n S=symsum(1/n2,n,1,inf) S10=symsum(1/n2,n,1,10),S=1/6*pi2,S10=1968329/1270080,例:求函数级数, syms n x S=symsum(x/n2,n,1,inf),S=1/6*x*pi2,六大常见符号运算,因式分解、展开、合并、简化及通分等,计算极限,计算导数,计算积分,符号求和,解代数方程和微分方程,其它运算,复合函数计算:compose,compose(f,g): 返回

温馨提示

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

评论

0/150

提交评论