Matlab笔记之一 ---- 符号工具箱的应用

合集下载

MatlabRoboticToolbox工具箱学习笔记

MatlabRoboticToolbox工具箱学习笔记

MatlabRoboticToolbox⼯具箱学习笔记Matlab Robotic Toolbox⼯具箱学习笔记(⼀)软件:matlab2013a⼯具箱:Matlab Robotic Toolbox v9.8Matlab Robotic Toolbox⼯具箱学习笔记根据Robot Toolbox demonstrations⽬录,将分三⼤部分阐述:1、General(Rotations,Transformations,Trajectory)2、Arm(Robot,Animation,Forwarw kinematics,Inversekinematics,Jacobians,Inverse dynamics,Forward dynamics,Symbolic,Code generation)3、Mobile(Driving to apose,Quadrotor,Braitenberg,Bug,D*,PRM,SLAM,Particle filter) General/Rotations%绕x轴旋转pi/2得到的旋转矩阵(1)r = rotx(pi/2);%matlab默认的⾓度单位为弧度,这⾥可以⽤度数作为单位(2)R = rotx(30, 'deg') * roty(50, 'deg') * rotz(10, 'deg');%求出R等效的任意旋转变换的旋转轴⽮量vec和转⾓theta(3)[theta,vec] = tr2angvec(R);%旋转矩阵⽤欧拉⾓表⽰,R = rotz(a)*roty(b)*rotz(c)(4)eul = tr2eul(R);%旋转矩阵⽤roll-pitch-yaw⾓表⽰,R = rotx(r)*roty(p)*rotz(y) (5)rpy = tr2rpy(R);%旋转矩阵⽤四元数表⽰(6)q = Quaternion(R);%将四元数转化为旋转矩阵(7)q.R;%界⾯,可以是“rpy”,“eluer”⾓度单位为度。

Matlab功能应用介绍

Matlab功能应用介绍

Matlab用法简介绪论Matlab是“Matrix Laboratory”的缩写,意为“矩阵实验室”,是当今美国很流行的科学计算软件.信息技术、计算机技术发展到今天,科学计算在各个领域得到了广泛的应用.在许多诸如控制论、时间序列分析、系统仿真、图像信号处理等方面产生了大量的矩阵及其相应的计算问题.自己去编写大量的繁复的计算程序,不仅会消耗大量的时间和精力,减缓工作进程,而且往往质量不高.美国Mathwork软件公司推出的Matlab软件就是为了给人们提供一个方便的数值计算平台而设计的.Matlab是一个交互式的系统,它的基本运算单元是不需指定维数的矩阵,按照IEEE的数值计算标准(能正确处理无穷数Inf(Infinity)、无定义数NaN(not-a-number)及其运算)进行计算.系统提供了大量的矩阵及其它运算函数,可以方便地进行一些很复杂的计算,而且运算效率极高.Matlab命令和数学中的符号、公式非常接近,可读性强,容易掌握,还可利用它所提供的编程语言进行编程完成特定的工作.除基本部分外,Matlab还根据各专门领域中的特殊需要提供了许多可选的工具箱,如应用于自动控制领域的Control System工具箱和神经网络中Neural Network工具箱等.第一节Matlab的安装及使用§1.1 Matlab的安装Matlab有各种版本,早期有Matlab 1.0 for 386的DOS版本,后来逐步发展.这里介绍的版本是Matlab 6.x for Windows.因为它使用方便,界面美观,我们选择它作为主要讲解版本.Matlab还有许多附加的部分,最常见的部分称为Simulink,是一个用作系统仿真的软件包,它可以让您定义各种部件,定义各自对某种信号的反应方式及与其它部件的连接方式.最后选择输入信号,系统会仿真运行整个模拟系统,并给出统计数据.Simulink有时是作为Matlab的一部分提供的,称为Matlab with Simulink版本.Matlab还有许多工具箱,它们是根据各个特殊领域的需要,用Matlab自身的语言编写的程序集,使用起来非常§1.2 Matlab基本用法从Windows中双击Matlab图标,会出现Matlab命令窗口(Command Window),在一段提示信息后,出现系统提示符“>>”.Matlab是一个交互系统,您可以在提示符后键入各种命令,通过上下箭头可以调出以前打入的命令,用滚动条可以查看以前的命令及其输出信息.如果对一条命令的用法有疑问的话,可以用Help菜单中的相应选项查询有关信息,也可以用help命令在命令行上查询,您可以试一下help、help help和help eig(求特征值的函数)命令.下面我们先从输入简单的矩阵开始掌握Matlab的功能.§1.2.1输入简单的矩阵输入一个小矩阵的最简单方法是用直接排列的形式.矩阵用方括号括起,元素之间用空格或逗号分隔,矩阵行与行之间用分号分开.例如输入:A=[1 2 3 ; 4 5 6 ; 7 8 0]系统会回答A =1 2 34 5 67 8 0表示系统已经接收并处理了命令,在当前工作区内建立了矩阵A.大的矩阵可以分行输入,用回车键代替分号,如:A=[ 1 2 34 5 67 8 0 ]结果和上式一样,也是A =1 2 34 5 67 8 0§1.2.2矩阵元素Matlab的矩阵元素可以是任何数值表达式.如:x=[ -1.3 sqrt(3) (1+2+3)*4/5]结果:x =-1.3000 1.7321 4.8000在括号中加注下标,可取出单独的矩阵元素.如:x(5)=abs(x(1))结果x =-1.3000 1.7321 4.8000 0 1.3000注:结果中自动产生了向量的第5个元素,中间未定义的元素自动初始为零.大的矩阵可把小的矩阵作为其元素来完成,如:A=[A; [10 11 12]]结果A =1 2 34 5 67 8 010 11 12小矩阵可用“:”从大矩阵中抽取出来,如:A=A(1:3,:);即从A中取前三行和所有的列,重新组成原来的A. (详细介绍参见第二节的相关内容)§1.2.3语句和变量Matlab的表述语句、变量的类型说明由Matlab系统解释和判断.Matlab语句通常形式为:变量=表达式或者使用其简单形式为:表达式表达式由操作符或其它特殊字符、函数和变量名组成.表达式的结果为一个矩阵,显示在屏幕上,同时保存在变量中以留用.如果变量名和“=”省略,则具有ans名(意思指回答)的变量将自动建立.例如:键入1900/81结果为:ans =23.4568需注意的问题有以下几点:●语句结束键入回车键,若语句的最后一个字符是分号,即“;”,则表明不输出当前命令的结果.●如果表达式很长,一行放不下,可以键入“…”(三个点,但前面必须有个空格,目的是避免将形如“数2 …”理解为“数2.”与“..”的连接,从而导致错误),然后回车.●变量和函数名由字母加数字组成,但最多不能超过63个字符,否则系统只承认前63个字符.●Matlab变量字母区分大小写,如A和a不是同一个变量,函数名一般使用小写字母,如inv(A)不能写成INV(A),否则系统认为未定义函数.§1.2.4 who和系统预定义变量输入who命令可检查工作空间中建立的变量,键入:who系统输出为:Your variables are:A ans x这里表明三个变量已由前面的例子产生了.但列表中列出的并不是系统全部的变量,系统还有以下内部变量:eps、pi、Inf、NaN变量eps在决定诸如矩阵的奇异性时,可作为一个容许差,容许差的初值为1.0到1.0以后计算机所能表示的下一个最大浮点数,IEEE在各种计算机、工作站和个人计算机上使用这个算法.用户可将此值置为任何其它值(包括0值).Matlab的内部函数pinc和rank以eps为缺省的容许差.变量pi是 ,它是用imag(log(-1))建立的.Inf表示无穷大.如果您想计算1/0S=1/0结果会是Warning:Divide by zeroS=Inf具有IEEE规则的机器,被零除后,并不引出出错条件或终止程序的运行,而产生一个警告信息和一个特殊值在计算方程中列出来.变量NaN表示它是个不定值.由Inf/Inf或0/0运算产生.要了解当前变量的信息请键入whos,屏幕将显示:Name Size Bytes ClassA 4x3 96 double arrayS 1x1 8 double arrayans 1x1 8 double arrayx 1x5 40 double arrayGrand total is 19 elements using 152 bytes从size及bytes项目可以看出,每一个矩阵实元素需8个字节的内存.4×3的矩阵使用96个字节,全部变量的使用内存总数为152个字节.自由空间的大小决定了系统变量的多少,如计算机上有虚拟内存的话,其可定义的变量个数会大大增加.§1.2.5数和算术表达式Matlab中数的表示方法和一般的编程语言没有区别.如:3 -99 0.00019.63972 1.6021E-20 6.02252e23在计算中使用IEEE浮点算法其舍入误差是eps.浮点数表示范围是10-308~10308.数学运算符有:+ 加- 减* 乘/ 右除\ 左除^ 幂这里1/4和4\1有相同的值都等于0.25(注意比较:1\4=4).只有在矩阵的除法时左除和右除才有区别.§1.2.6复数与矩阵在Matlab中输入复数首先应该建立复数单位:i=sqrt(-1)及j=sqrt(-1)之后复数可由下面语句给出:Z=3+4i (注意:在4与i之间不要留有任何空间!)输入复数矩阵有两个方便的方法,如:A=[1 2; 3 4] + i*[5 6; 7 8]和A=[1+5i 2+6i; 3+7i 4+8i]两式具有相等的结果.但当复数作为矩阵的元素输入时,不要留有任何空间,如1+5i,如在“+”号左右留有空格,就会被认为是两个分开的数.不过实际使用复数时并没有这么麻烦,系统有一个名为startup.m的Matlab命令文件,建立复数单位的语句也放在其中.当Matlab启动时,此文件自动执行,i和j将自动建立.§1.2.7输出格式任何Matlab语句执行结果都可在屏幕上显示,同时赋给指定的变量,没有指定变量时赋给ans.数字显示格式可由format命令来控制(Windows系统下的Matlab系统的数字显示格式可以由Option菜单中的Numerical Format菜单改变).format仅影响矩阵的显示,不影响矩阵的计算与存贮.(Matlab以双精度执行所有的运算)首先,如果矩阵元素是整数则矩阵显示就没有小数,如x=[-1 0 1],结果为:x=-1 0 1x=[4/3 1.2345e-6]在不同的输出格式下的结果为:短格式 1.3333 0.0000短格式e方式 1.3333e+000 1.234e-006长格式 1.333333333333333 0.000001234500000长格式e方式 1.333333333333333e-000 1.23450000000000e-006有理数格式4/3 1/81004516进制格式3ff5555555555555 3eb4b6231abfd271+格式+ +对于短格式,如果矩阵的最大元素比数999999999大,或者比数0.0001小,则在打印时,将加入一个普通的长度因数.如y=1.e20*x,意为x被1020乘,结果为:y=1.0e+020*1.3333 0.0000“+”格式是显示大矩阵的一种紧凑方法,“+”,“-”和空格显示正数、负数和零元素.最后format compact命令压缩显示的矩阵,以允许更多的信息显示在屏幕上.§1.2.8 Help求助命令和联机帮助Help求助命令很有用,它对Matlab大部分命令提供了联机求助信息.您可以从Help 菜单中选择相应的菜单,打开求助信息窗口查询某条命令,也可以直接用help命令.键入help得到help列表文件,键入“help 指定项目”,如:键入help eig则提供特征值函数的使用信息.键入help [显示如何使用方括号等.键入help help显示如何利用help本身的功能.还有,键入lookfor <关键字>:可以从m文件的help中查找有关的关键字.§1.2.9 退出和存入工作空间退出Matlab可键入quit或exit或选择相应的菜单.中止Matlab运行会引起工作空间中变量的丢失,因此在退出前,应键入save命令,保存工作空间中的变量以便以后使用.键入save则将所有变量作为文件存入磁盘Matlab.mat中,下次Matlab启动时,键入load将变量从Matlab.mat中重新调出.save和load后边可以跟文件名或指定的变量名,如仅有save时,则只能存入Matlab.mat 中.如save temp命令,则将当前系统中的变量存入temp.mat中去,命令格式为:save temp x 仅仅存入x变量.save temp X Y Z 则存入X、Y、Z变量.load temp可重新从temp.mat文件中提出变量,load也可读ASCII数据文件.详细语法见联机帮助.第二节向量与矩阵运算Matlab能处理数、向量和矩阵.但一个数事实上是一个1×1的矩阵,1个n维向量也不过是一个1×n或n×1的矩阵.从这个角度上来讲,Matlab处理的所有的数据都是矩阵.Matlab的矩阵处理能力是非常灵活、强大的.以下我们将从矩阵的产生、基本运算、矩阵函数等几个方面来说明.§2.1向量及矩阵的生成除了我们在上节介绍的直接列出矩阵元素的输入方法,矩阵还可以通过几种不同的方式输入到Matlab中.§2.1.1 通过语句和函数产生1. 向量的产生除了直接列出向量元素(即所谓的“穷举法”)外,最常用的用来产生相同增量的向量的方法是利用“:”算符(即所谓的“描述法”).在Matlab中,它是一个很重要的字符.如:z=1:5z =1 2 3 4 5即产生一个1~5的单位增量是1的行向量,此为默认情况.用“:”号也可以产生单位增量不等于1的行向量,语法是把增量放在起始量和结尾量的中间.如:x=0:pi/4:pi即产生一个由0~pi的行向量,单位增量是pi/4=3.1416/4=0.7854.x =0 0.7854 1.5708 2.3562 3.1416也可以产生单位增量为负数的行向量.如:y=6:-1:1y =6 5 4 3 2 12. 矩阵的产生ones(3)ans =1 1 11 1 11 1 1eye(3)ans =1 0 00 1 00 0 1除了以上产生标准矩阵的函数外,Matlab还提供了产生随机(向量)矩阵的函数rand 和randn,及产生均匀级数的函数linspace、产生对数级数的函数logspace和产生网格的函数meshgrid等等.详细使用请查阅随机文档.“: ”冒号可以用来产生简易的表格,为了产生纵向表格形式,首先用冒号“: ”产生行向量,再进行转置,计算函数值的列,然后形成有二列的矩阵.例如命令:x=(0.0:0.2:3.0)';y=exp(-x).*sin(x);[x y]产生结果为:ans =0 00.2000 0.16270.4000 0.26100.6000 0.30990.8000 0.32231.0000 0.30961.2000 0.28071.4000 0.24301.6000 0.20181.8000 0.16102.0000 0.12312.2000 0.08962.4000 0.06132.6000 0.03832.8000 0.02043.0000 0.0070§2.1.2 通过后缀为.m的命令文件产生如有文件data.m,其中包括正文:A=[ 1 2 34 5 67 8 0]则用data命令执行data.m,可以产生名为A的矩阵.§2.2 矩阵操作在Matlab中可以对矩阵进行任意操作,包括改变它的形式,取出子矩阵,扩充矩阵,旋转矩阵等.其中最重要的操作符为“:”,它的作用是取出选定的行与列.例如:A(:,:) 代表A的所有元素;试比较A(:), 将A按列的方向拉成长长的1列(向量);A(:,J) 代表A的第J列;A(J:K) 代表A(J), A(J+1), …, A(K),如同A(:)的第J到第K个元素;A(:,J:K) 代表A(:,J), A(:,J+1), …, A(:,K),如此类推.对矩阵可以进行各种各样的旋转、变形、扩充:Matlab中有内部函数fliplr ( Flip matrix in the left/right direction),它对矩阵进行左右旋转.例x = 1 2 3 fliplr(x)为 3 2 14 5 6 6 5 4同样有flipud:x = 1 4 flipud(x)为 3 62 5 2 53 6 1 4矩阵的转置用符号“' ”表示:如A=[1 2 3; 4 5 6 ; 7 8 0]那么:计算B=A'B =1 4 72 5 83 6 0符号“' ”为矩阵的转置,如果Z为复矩阵,则Z'为它的复数共轭转置,非共轭转置使用Z.' 或conj(Z')求得.reshape改变矩阵的形状,这是什么意思呢?可举一个例子来说明.A=[A;[10 11 12]]A =1 2 34 5 67 8 010 11 12则 reshape(A,2,6)ans =1 72 83 04 105 116 12可见,reshape 是将矩阵元素以列为单位进行重组,原来4×3的矩阵变为了2×6的矩阵.那么以下的语句也不难理解了,它将矩阵A 按列打开(size 函数返回矩阵A 的行数与列数).reshape(A,1,size(A,1)*size(A,2)),它等价于A(:)' .还有函数rot90,它可以将矩阵进行各种90度的旋转;tril 及triu 取出矩阵的下三角及上三角阵等.详细的用法可以在需要使用时查阅手册.第三节 矩阵的基本运算§3.1 加和减如矩阵A 和B 的维数相同,则A+B 与A-B 表示矩阵A 与B 的和与差.如果矩阵A 和B 的维数不匹配,Matlab 会给出相应的错误提示信息.如:A= B=1 2 3 1 4 74 5 6 2 5 87 8 0 3 6 0C =A+B 返回:C =2 6 106 10 1410 14 0如果运算对象是个标量(即1×1矩阵),可和其它矩阵进行加减运算.例如:x= -1 y=x-1= -20 -12 1§3.2矩阵乘法Matlab 中的矩阵乘法有通常意义上的矩阵乘法,也有Kronecker 乘法,以下分别介绍. §3.2.1 矩阵的普通乘法矩阵乘法用“ * ”符号表示,当A 矩阵列数与B 矩阵的行数相等时,二者可以进行乘法运算,否则是错误的.计算方法和线性代数中所介绍的完全相同.如:A=[1 2 ; 3 4]; B=[5 6 ; 7 8]; C=A*B ,结果为C=⎪⎪⎭⎫ ⎝⎛4321×⎪⎪⎭⎫ ⎝⎛8765=⎪⎪⎭⎫ ⎝⎛⨯+⨯⨯+⨯⨯+⨯⨯+⨯8463745382617251=⎪⎪⎭⎫ ⎝⎛50432219 即Matlab 返回:C =19 2243 50如果A 或B 是标量,则A*B 返回标量A (或B )乘上矩阵B (或A )的每一个元素所得的矩阵.§3.2.2 矩阵的Kronecker 乘法对n ×m 阶矩阵A 和p ×q 阶矩阵B ,A 和B 的Kronecher 乘法运算可定义为:⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⊗=B a B a B a B a B a B a B a B a B a B A C nm n n m m (21)2222111211 由上面的式子可以看出,Kronecker 乘积A ⊗B 表示矩阵A 的所有元素与B 之间的乘积组合而成的较大的矩阵,B ⊗A 则完全类似.A ⊗B 和B ⊗A 均为np ×mq 矩阵,但一般情况下A ⊗B ≠B ⊗A .和普通矩阵的乘法不同,Kronecker 乘法并不要求两个被乘矩阵满足任何维数匹配方面的要求.Kronecker 乘法的Matlab 命令为C=kron(A,B),例如给定两个矩阵A 和B :A = B= 则由以下命令可以求出A 和B 的Kronecker 乘积C :A=[1 2; 3 4]; B=[1 3 2; 2 4 6]; C=kron(A,B)C =1 32 2 6 42 4 6 4 8 123 9 64 12 86 12 18 8 16 24作为比较,可以计算B 和A 的Kronecker 乘积D ,可以看出C 、D 是不同的:A=[1 2; 3 4]; B=[1 3 2; 2 4 6]; D=kron(B,A)D =1 2 3 6 2 43 4 9 12 6 82 4 4 8 6 126 8 12 16 18 24§3.3 矩阵除法在Matlab 中有两种矩阵除法符号:“\”即左除和“/”即右除.如果A 矩阵是非奇异方阵,则A\B 是A 的逆矩阵乘B ,即inv(A)*B ;而B/A 是B 乘A 的逆矩阵,即B*inv(A).具体计算时可不用逆矩阵而直接计算.通常:x=A\B 就是A*x=B 的解;x=B/A 就是x*A=B 的解.当B 与A 矩阵行数相等可进行左除.如果A 是方阵,用高斯消元法分解因数.解方程:A*x(:, j)=B(:, j),式中的(:, j)表示B 矩阵的第j 列,返回的结果x 具有与B 矩阵相同的阶数,如果A 是奇异矩阵将给出警告信息.如果A 矩阵不是方阵,可由以列为基准的Householder 正交分解法分解,这种分解法可以解决在最小二乘法中的欠定方程或超定方程,结果是m ×n 的x 矩阵.m 是A 矩阵的列数,n 是B 矩阵的列数.每个矩阵的列向量最多有k 个非零元素,k 是A 的有效秩.右除B/A 可由B/A=(A'\B')'左除来实现.§3.4矩阵乘方A^P 意思是A 的P 次方.如果A 是一个方阵,P 是一个大于1的整数,则A^P 表示A的P次幂,即A自乘P次.如果P不是整数,计算涉及到特征值和特征向量的问题,如已经求得:[V,D]=eig(A),则:A^P=V*D.^P/V(注:这里的.^表示数组乘方,或点乘方,参见后面的有关介绍)如果B是方阵,a是标量,a^B就是一个按特征值与特征向量的升幂排列的B次方程阵.如果a和B都是矩阵,则a^B是错误的.§3.5 矩阵的超越函数在Matlab中解释exp(A)和sqrt(A)时曾涉及到级数运算,此运算定义在A的单个元素上.Matlab可以计算矩阵的超越函数,如矩阵指数、矩阵对数等.一个超越函数可以作为矩阵函数来解释,例如将“m”加在函数名的后边而成expm(A)和sqrtm(A),当Matlab运行时,有下列三种函数定义:expm 矩阵指数logm 矩阵对数sqrtm 矩阵开方所列各项可以加在多种m文件中或使用funm.请见应用库中sqrtm.m,1ogm.m,funm.m 文件和命令手册.§3.6数组运算数组运算由线性代数的矩阵运算符“*”、“/”、“\”、“^”前加一点来表示,即为“.*”、“./”、“.\”、“.^”.注意没有“.+”、“.-”运算.§3.6.1数组的加和减对于数组的加和减运算与矩阵运算相同,所以“+”、“-”既可被矩阵接受又可被数组接受.§3.6.2数组的乘和除数组的乘用符号.*表示,如果A与B矩阵具有相同阶数,则A.*B表示A和B单个元素之间的对应相乘.例如x=[1 2 3]; y=[ 4 5 6];计算z=x.*y结果z=4 10 18数组的左除(.\)与数组的右除(./),由读者自行举例加以体会.§3.6.3 数组乘方数组乘方用符号.^表示.例如:键入:x=[ 1 2 3]y=[ 4 5 6]则z=x.^y=[1^4 2^5 3^6]=[1 32 729](1) 如指数是个标量,例如x.^2,x同上,则:z=x.^2=[1^2 2^2 3^2]=[ 1 4 9](2) 如底是标量,例如2 .^[x y] ,x、y同上,则:z=2 .^[x y]=[2^1 2^2 2^3 2^4 2^5 2^6]=[2 4 8 16 32 64] 从此例可以看出Matlab算法的微妙特性,虽然看上去与其它乘方没什么不同,但在2和“.”之间的空格很重要,如果不这样做,解释程序会把“.”看成是2的小数点.Matlab 看到符号“^”时,就会当做矩阵的幂来运算,这种情况就会出错,因为指数矩阵不是方阵.§3.7 矩阵函数Matlab的数学能力大部分是从它的矩阵函数派生出来的,其中一部分装入Matlab本身处理中,它从外部的Matlab建立的M文件库中得到,还有一些由个别的用户为其自己的特殊的用途加进去的.其它功能函数在求助程序或命令手册中都可找到.手册中备有为Matlab提供数学基础的LINPACK和EISPACK软件包,提供了下面四种情况的分解函数或变换函数:(1)三角分解;(2)正交变换;(3) 特征值变换;(4)奇异值分解.§3.7.1三角分解最基本的分解为“LU”分解,矩阵分解为两个基本三角矩阵形成的方阵,三角矩阵有上三角矩阵和下三角矩阵.计算算法用高斯变量消去法.从lu函数中可以得到分解出的上三角与下三角矩阵,函数inv得到矩阵的逆矩阵,det 得到矩阵的行列式.解线性方程组的结果由方阵的“\”和“/”矩阵除法来得到.例如:A=[ 1 2 34 5 67 8 0]LU分解,用Matlab的多重赋值语句[L,U]=lu(A)得出注:L结果只需计算L*U即可.求逆由下式给出:x=inv(A)x =从LU的值可由下式给出:d=det(A)d =27直接由三角分解计算行列式:d=det(L)*det(U)d =27.0000为什么两种d的显示格式不一样呢? 当Matlab做det(A)运算时,所有A的元素都是整数,所以结果为整数.但是用LU分解计算d时,L、U的元素是实数,所以Matlab产生的d也是实数.例如:线性联立方程取b=[ 135]解Ax=b方程,用Matlab矩阵除得到x=A\b结果x=0.33330.33330.0000由于A=L*U,所以x也可以有以下两个式子计算:y=L\b,x=U\y.得到相同的x值,中间值y为:y =5.00000.28570.0000Matlab中与此相关的函数还有rcond、chol和rref.其基本算法与LU分解密切相关.chol 函数对正定矩阵进行Cholesky分解,产生一个上三角矩阵,以使R'*R=X.rref用具有部分主元的高斯-约当消去法产生矩阵A的化简梯形形式.虽然计算量很少,但它是很有趣的理论线性代数.为了教学的要求,也包括在Matlab中.§3.7.2正交变换“QR”分解用于矩阵的正交-三角分解.它将矩阵分解为实正交矩阵或复酉矩阵与上三角矩阵的积,对方阵和长方阵都很有用.例如A=[ 1 2 34 5 67 8 910 11 12]是一个降秩矩阵,中间列是其它二列的平均,我们对它进行QR分解:[Q,R]=qr(A)R的下三角都给出0,并且R(3,3)=0.0000,说明矩阵R与原来矩阵A都不是满秩的.下面尝试利用QR分解来求超定和降秩的线性方程组的解.例如:b=[ 1357]讨论线性方程组Ax=b,我们可以知道方程组是超定的,采用最小二乘法的最好结果是计算x=A\b.结果为:Warning: Rank deficient, rank = 2 tol = 1.4594e-014x =0.50000.1667我们得到了缺秩的警告.用QR分解法计算此方程组分二个步骤:y=Q'*bx=R\y求出的y值为xWarning: Rank deficient, rank = 2 tol = 1.4594e-014x =0.50000.1667用A*x来验证计算结果,我们会发现在允许的误差范围内结果等于b.这告诉我们虽然联立方程Ax=b是超定和降秩的,但两种求解方法的结果是一致的.显然x向量的解有无穷多个,而“QR”分解仅仅找出了其中之一.§3.7.3奇异值分解在Matlab中三重赋值语句[U,S,V]=svd(A)在奇异值分解中产生三个因数:A=U*S*V 'U矩阵和V矩阵是正交矩阵,S矩阵是对角矩阵,svd(A)函数恰好返回S的对角元素,而且就是A的奇异值(其定义为:矩阵A'*A的特征值的算术平方根).注意到A矩阵可以不是方的矩阵.奇异值分解可被其它几种函数使用,包括广义逆矩阵pinv(A)、秩rank(A)、欧几里德矩阵范数norm(A,2)和条件数cond(A).§3.7.4 特征值分解如果A是n×n矩阵,若λ满足Ax=λx,则称λ为A的特征值,x为相应的特征向量.函数eig(A)返回特征值列向量,如果A是实对称的,特征值为实数.特征值也可能为复数,例如:A=[ 0 1-1 0]eig(A)产生结果ans =0 + 1.0000i0 - 1.0000i如果还要求求出特征向量,则可以用eig(A)函数的第二个返回值得到:[x,D]=eig(A)D的对角元素是特征值.x的列是相应的特征向量,以使A*x=x*D.计算特征值的中间结果有两种形式:Hessenberg形式为hess(A),Schur形式为schur(A).schur形式用来计算矩阵的超越函数,诸如sqrtm(A)和logm(A).如果A和B是方阵,函数eig(A,B)返回一个包含一般特征值的向量来解方程Ax=λBx双赋值获得特征向量[X,D]=eig(A,B)产生特征值为对角矩阵D.满秩矩阵X的列相应于特征向量,使A*X=B*X*D,中间结果由qz(A,B)提供.§3.7.5秩Matlab计算矩阵A的秩的函数为rank(A),与秩的计算相关的函数还有:rref(A)、orth(A)、null(A)和广义逆矩阵pinv(A)等.利用rref(A),A的秩为非0行的个数.rref方法是几个定秩算法中最快的一个,但结果上并不可靠和完善.pinv(A)是基于奇异值的算法.该算法消耗时间多,但比较可靠.其它函数的详细用法可利用Help求助.第四节Matlab中的图形§4.1二维作图绘图命令plot绘制x-y坐标图;loglog命令绘制对数坐标图;semilogx和semilogy命令绘制半对数坐标图;polor命令绘制极坐标图.§4.1.1 基本形式如果y是一个向量,那么plot(y)绘制一个y中元素的线性图.假设我们希望画出y=[0., 0.48, 0.84, 1., 0.91, 6.14 ]则用命令:plot(y)它相当于命令:plot(x, y),其中x=[1,2,…,n]或x=[1;2;…;n],即向量y的下标编号, n为向量y的长度Matlab会产生一个图形窗口,显示如下图形,请注意:坐标x和y 是由计算机自动绘出的.上面的图形没有加上x轴和y轴的标注,也没有标题.用xlabel,ylabel,title命令可以加上.如果x,y是同样长度的向量,plot(x,y)命令可画出相应的x元素与y元素的x-y坐标图.例:x=0:0.05:4*pi; y=sin(x); plot(x,y)grid on, title(' y=sin( x ) 曲线图' )xlabel(' x = 0 : 0.05 : 4Pi ')结果见下图.§4.1.2 多重线在一个单线图上,绘制多重线有三种办法.第一种方法是利用plot的多变量方式绘制:plot(x1,y1,x2,y2,...,xn,yn)x1,y1,x2,y2,...,xn,yn是成对的向量,每一对x, y在图上产生如上方式的单线.多变量方式绘图是允许不同长度的向量显示在同一图形上.第二种方法也是利用plot绘制,但加上hold on/off命令的配合:plot(x1,y1)hold onplot(x2,y2)hold off第三种方法还是利用plot绘制,但代入矩阵:如果plot用于两个变量plot(x,y),并且x,y是矩阵,则有以下情况:(1)如果y是矩阵,x是向量,plot(x,y)用不同的画线形式绘出y的行或列及相应的x 向量,y的行或列的方向与x向量元素的值选择是相同的.(2)如果x是矩阵,y是向量,则除了x向量的线族及相应的y向量外,以上的规则也适用.(3)如果x,y是同样大小的矩阵,plot(x,y)绘制x的列及y相应的列.还有其它一些情况,请参见Matlab的帮助系统.§4.1.3 线型和颜色的控制如果不指定划线方式和颜色,Matlab会自动为您选择点的表示方式及颜色.您也可以用不同的符号指定不同的曲线绘制方式.例如:plot(x,y,'*') 用'*'作为点绘制的图形.plot(x1,y1,':',x2,y2,'+') 用':'画第一条线,用'+'画第二条线.如果你的计算机系统不支持彩色显示,Matlab将把颜色符号解释为线型符号,用不同的线型表示不同的颜色.颜色与线型也可以一起给出,即同时指定曲线的颜色和线型.例如:t=-3.14:0.2:3.14;x=sin(t); y=cos(t);§4.1.4对数图、极坐标图及条形图loglog、semilogx、semilogy和polar的用法和plot相似.这些命令允许数据在不同的graph paper上绘制,例如不同的坐标系统.先介绍的fplot是扩展来的可用于符号作图的函数.●fplot(fname,lims) 绘制fname指定的函数的图形.●polar( theta, rho) 使用相角theta 为极坐标形式绘图,相应半径为rho,其次可使用grid命令画出极坐标网格.●loglog 用log10-log10标度绘图.●semilogx 用半对数坐标绘图,x轴是log10,y是线性的.●semilogy 用半对数坐标绘图,y轴是log10,x是线性的.●bar(x) 显示x向量元素的条形图,bar不接受多变量.●hist 绘制统计频率直方图.●histfit(data,nbins) 绘制统计直方图与其正态分布拟合曲线.fplot函数的绘制区域为lims=[xmin,xmax],也可以用lims=[xmin,xmax,ymin,ymax]指定y 轴的区域.函数表达式可以是一个函数名,如sin,tan等;也可以是带上参数x的函数表达式,如sin(x),diric(x,10);也可以是一个用方括号括起的函数组,如[sin, cos].例1:fplot('sin',[0 4*pi])例2:fplot('sin(1 ./ x)', [0.01 0.1])例3:fplot('abs(exp(-j*x*(0:9))*ones(10,1))',[0 2*pi],'-o')例4:fplot('[sin(x), cos(x) , tan(x)]',[-2*pi 2*pi -2*pi 2*pi]) %%(图4.1.4.1)下面介绍的是其它几个作图函数的应用.例5:半对数坐标绘图t=0.001:0.002:20; y=5 + log(t) + t; semilogx(t,y, 'b') hold onsemilogx(t,t+5, 'r') %% (图4.1.4.2)例6:极坐标绘图t=0:0.01:2*pi;polar(t,sin(6*t)) %% (图4.1.4.3)图4.1.4.3 极坐标绘图 图4.1.4.4正态分布的统计直方图与其正态分布拟合曲线例7:正态分布图我们可以用命令normrnd 生成符合正态分布的随机数. normrnd(u,v,m,n)其中,u 表示生成随机数的期望,v 代表随机数的方差. 运行:a=normrnd(10,2,10000,1); histfit(a) %% (图4.1.4.4)我们可以得到正态分布的统计直方图与其正态分布拟合曲线.例8:比较正态分布(图4.1.4.5(1))与平均分布(图4.1.4.5(2))的分布图:yn=randn(30000,1); %% 正态分布 x=min(yn) : 0.2 : max(yn); subplot(121) hist(yn, x)yu=rand(30000,1); %% 平均分布 subplot(122) hist(yu, 25)-5050500100015002000250000.512004006008001000120014004.1.4.5(1) 4.1.4.5(2)图4.1.4.5 正态分布与平均分布的分布图。

Matlab深度学习工具箱使用方法

Matlab深度学习工具箱使用方法

Matlab深度学习工具箱使用方法深度学习作为一种强大的机器学习技术,已经在许多领域展现了出色的性能和应用潜力。

为了帮助广大研究人员和工程师更好地使用深度学习技术,MathWorks公司推出了Matlab深度学习工具箱。

本文将介绍该工具箱的基本使用方法,并结合实例演示其强大的功能。

一、准备工作在使用Matlab深度学习工具箱之前,我们需要进行一些准备工作。

首先,确保你的电脑已经安装了Matlab软件和深度学习工具箱。

其次,如果你希望使用GPU进行运算加速,还需要确保你的电脑上安装了适当的GPU驱动程序。

二、创建深度学习模型在Matlab深度学习工具箱中,我们可以使用各种各样的函数和工具来创建深度学习模型。

首先,我们需要选择适合我们任务的网络结构。

Matlab深度学习工具箱中提供了许多常见的深度学习网络结构,如卷积神经网络(CNN)、循环神经网络(RNN)和生成对抗网络(GAN)等。

我们可以根据具体的任务需求选择合适的网络结构。

接下来,我们需要定义模型的输入和输出。

在Matlab深度学习工具箱中,我们可以使用图像数据存储对象(ImageDatastore)和标签数据存储对象(Datastore)来管理和预处理我们的数据。

同时,我们还可以使用预处理函数来对数据进行增强和归一化等操作,以提高模型的性能。

最后,我们可以使用trainNetwork函数来训练我们的深度学习模型。

在该函数中,我们需要指定训练数据、验证数据、损失函数和优化器等参数。

训练完成后,我们可以使用classify函数对新的数据进行分类预测,或使用predict函数对数据进行其他类型的预测。

三、模型调优与评估在创建深度学习模型之后,我们通常需要对其进行调优和评估。

在Matlab深度学习工具箱中,我们可以使用HyperparameterTuner对象来进行超参数的自动调优。

通过指定待调优的超参数范围和调优目标,我们可以在指定的训练框架中自动寻找最优的超参数组合。

MATLAB符号运算运用

MATLAB符号运算运用

MATLAB符号运算运用MATLAB 是一种数值计算和编程环境,它可以进行符号运算,即对代数表达式进行操作和计算。

在 MATLAB 中,符号运算的主要工具是符号计算工具箱(Symbolic Math Toolbox),它提供了一系列函数和命令,用于处理和求解符号表达式。

1.创建符号表达式首先,我们可以通过使用符号变量来创建符号表达式。

符号变量可以使用 sym 函数定义。

例如,创建一个符号变量 x:```syms x```然后,可以使用这个符号变量来创建符号表达式。

例如,创建一个简单的二次多项式表达式:```f=x^2+2*x+1;```2.符号表达式运算一旦有了符号表达式,就可以对其进行各种运算,包括求导、积分、求解方程等。

- 求导:使用 diff 函数可以对符号表达式进行求导。

例如,对上述的 f 求导:```df = diff(f, x);```- 积分:使用 int 函数可以对符号表达式进行积分。

例如,对 f 在区间 [0, 1] 上进行积分:```I = int(f, 0, 1);```- 求解方程:使用 solve 函数可以对符号表达式进行求解。

例如,求解方程 f = 0:```sol = solve(f == 0, x);```3.简化符号表达式有时,符号表达式可能过于复杂,可以使用 simplify 函数对其进行简化。

例如,简化一个复杂的三角函数表达式:```syms xf = sin(x)^2 + cos(x)^2;sf = simplify(f);```4.数值近似符号表达式可以通过使用 vpa 函数进行数值近似。

例如,将一个符号表达式近似为 5 位小数:```syms xf = exp(x);f_num = vpa(f, 5);```在MATLAB中,符号运算可以应用于各种数学问题,包括求解方程、微积分、矩阵计算等。

它提供了一种便捷的方式来处理代数表达式,而不需要将其转化为数值形式进行计算。

MATLAB工具箱的使用

MATLAB工具箱的使用

MATLAB工具箱的使用MATLAB®是一种强大的科学计算软件,广泛应用于各个领域的数学建模、数据分析、仿真和算法开发等工作中。

为了满足不同领域的需求,MATLAB提供了许多不同的工具箱。

这些工具箱包含了各种不同领域的函数和工具,可以帮助用户更加高效地进行数据处理、模拟和算法开发等工作。

下面将介绍几个常用的MATLAB工具箱,以及它们的使用方法:1.信号处理工具箱(Signal Processing Toolbox):这个工具箱提供了一系列处理数字信号的函数和工具。

用户可以使用这些函数和工具进行信号滤波、功率谱估计、频谱分析、时间频率分析等操作。

该工具箱还提供了许多基本信号处理算法,如滤波器设计、卷积和相关等。

例如,用户可以使用`filtfilt(`函数对信号进行零相移滤波,以去除噪声。

2.图像处理工具箱(Image Processing Toolbox):图像处理工具箱提供了一系列处理数字图像的函数和工具。

用户可以使用这些函数和工具进行图像的读取、显示、修改、增强和分析等操作。

该工具箱包含了许多常用的图像处理算法,如图像滤波、边缘检测、形态学处理和图像分割等。

例如,用户可以使用`imread(`函数读取图像,然后使用`imshow(`函数显示图像。

3.控制系统工具箱(Control System Toolbox):这个工具箱提供了一系列用于分析和设计控制系统的函数和工具。

用户可以使用这些函数和工具进行控制系统的建模、稳定性分析、根轨迹设计和频域分析等操作。

该工具箱还提供了许多常用的控制系统设计方法,如PID控制器设计和状态空间控制器设计等。

例如,用户可以使用`tf(`函数创建传递函数模型,然后使用`step(`函数绘制系统的阶跃响应。

4.优化工具箱(Optimization Toolbox):优化工具箱提供了一系列用于求解优化问题的函数和工具。

用户可以使用这些函数和工具进行线性规划、非线性规划和整数规划等操作。

MATLAB优化工具箱的用法

MATLAB优化工具箱的用法

MATLAB优化工具箱的用法MATLAB优化工具箱是一个用于求解优化问题的功能强大的工具。

它提供了各种求解优化问题的算法和工具函数,可以用于线性优化、非线性优化、整数优化等不同类型的问题。

下面将详细介绍MATLAB优化工具箱的使用方法。

1.线性优化问题求解线性优化问题是指目标函数和约束条件都是线性的优化问题。

MATLAB 优化工具箱中提供了'linprog'函数来求解线性优化问题。

其基本使用方法如下:[x,fval,exitflag,output,lambda] =linprog(f,A,b,Aeq,beq,lb,ub,options)其中,f是目标函数的系数向量,A和b是不等式约束矩阵和向量,Aeq和beq是等式约束矩阵和向量,lb和ub是变量的下界和上界,options是优化选项。

函数的返回值x是求解得到的优化变量的取值,fval是目标函数的取值,exitflag表示求解的结束状态,output是求解过程的详细信息,lambda是对偶变量。

2.非线性优化问题求解非线性优化问题是指目标函数和约束条件中至少有一个是非线性的优化问题。

MATLAB优化工具箱中提供了'fmincon'函数来求解非线性优化问题。

其基本使用方法如下:[x,fval,exitflag,output,lambda] =fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)其中,fun是目标函数的句柄或函数,x0是优化变量的初始值,A和b是不等式约束矩阵和向量,Aeq和beq是等式约束矩阵和向量,lb和ub 是变量的下界和上界,nonlcon是非线性约束函数句柄或函数,options 是优化选项。

函数的返回值x是求解得到的优化变量的取值,fval是目标函数的取值,exitflag表示求解的结束状态,output是求解过程的详细信息,lambda是对偶变量。

用符号法求解级数的和matlab

用符号法求解级数的和matlab

用符号法求解级数的和matlab符号法求解级数的和级数是数学中的一个重要概念,指的是无限个数的和。

在实际应用中,我们常常需要求解级数的和,以便得到一些重要信息。

符号法是一种常用的方法,可以帮助我们求解级数的和。

在Matlab中,我们可以利用符号法函数symsum()来实现这一目标。

一、什么是符号法?符号法指的是利用符号计算软件来进行代数运算的方法。

在Matlab 中,我们可以使用符号工具箱来进行符号计算。

通过将变量定义为符号变量,就可以使用各种代数运算函数来对其进行操作。

二、如何使用symsum()函数?symsum()函数是Matlab中用于求解级数和的函数之一。

它有以下语法格式:symsum(f,k,a,b)其中f表示被求和函数(即级数项),k表示求和变量(即级数下标),a和b分别表示求和范围(即从a到b进行求和)。

示例:syms xsymsum(1/x^2,x,1,inf)上述代码表示对1/x^2从1到无穷大进行求和。

三、如何处理收敛性问题?在实际应用中,我们常常需要考虑级数是否收敛。

如果一个级数收敛,则可以直接使用symsum()函数求解其和。

如果一个级数发散,则需要进行特殊处理。

以下是一些常用的处理方法:1. 利用收敛判别法判断级数是否收敛。

2. 对级数进行分组,使得每组中的项的和都收敛,然后对每组进行求和。

3. 利用级数的部分和序列来逼近级数的和。

四、如何应用符号法求解级数的和?以下是一些常见的例子,演示了如何使用符号法求解级数的和。

1. 求解调和级数:1+1/2+1/3+...+1/n+...调和级数是一个经典的无穷级数,其前n项和为H(n),其中H(n)表示第n个调和数。

我们可以使用symsum()函数来计算H(n):syms nsymsum(1/n,n,1,inf)该代码会返回一个无穷大(Inf),这表明调和级数发散。

实际上,调和级数是一个发散的无穷级数,在实际应用中需要特殊处理。

MATLAB工具箱的功能及使用方法

MATLAB工具箱的功能及使用方法

MATLAB工具箱的功能及使用方法引言:MATLAB是一种常用的用于数值计算和科学工程计算的高级计算机语言和环境。

它的灵活性和强大的计算能力使得它成为工程师、科学家和研究人员的首选工具之一。

而在MATLAB中,工具箱则提供了各种专业领域的功能扩展,使得用户能够更方便地进行数据分析、信号处理、优化和控制系统设计等任务。

本文将介绍MATLAB工具箱的一些常见功能及使用方法,并探讨其在不同领域中的应用。

一、图像处理工具箱图像处理工具箱(Image Processing Toolbox)是MATLAB的核心工具之一,它提供了一套强大的函数和算法用于处理和分析数字图像。

在图像处理方面,可以使用MATLAB工具箱实现各种操作,如图像增强、降噪、边缘检测、图像分割等。

其中最常用的函数之一是imread,用于读取图像文件,并将其转换为MATLAB中的矩阵形式进行处理。

此外,还有imwrite函数用于将处理后的图像保存为指定的文件格式。

二、信号处理工具箱信号处理工具箱(Signal Processing Toolbox)是用于处理连续时间和离散时间信号的工具箱。

它提供了一系列的函数和工具用于信号的分析、滤波、变换和频谱分析等操作。

在该工具箱中,最常用的函数之一是fft,用于计算信号的快速傅里叶变换,从而获取信号的频谱信息。

此外,还有滤波器设计函数,用于设计和实现各种数字滤波器,如低通滤波器、高通滤波器和带通滤波器等。

三、优化工具箱优化工具箱(Optimization Toolbox)提供了解决各种优化问题的函数和算法。

MATLAB中的优化工具箱支持线性规划、非线性规划、整数规划、二次规划等多种优化问题的求解。

其中最常用的函数之一是fmincon,用于求解无约束和约束的非线性优化问题。

通过传入目标函数和约束条件,该函数可以找到满足最优性和约束条件的最优解。

四、控制系统工具箱控制系统工具箱(Control System Toolbox)用于建模、设计和分析各种控制系统。

Matlab各工具箱功能简介(部分)

Matlab各工具箱功能简介(部分)

Matlab各工具箱功能简介(部分)Toolbo某工具箱序号工具箱备注一、数学、统计与优化1 Symbolic Math Toolbo某符号数学工具箱Symbolic Math Toolbo某? 提供用于求解和推演符号运算表达式以及执行可变精度算术的函数。

您可以通过分析执行微分、积分、化简、转换以及方程求解。

另外,还可以利用符号运算表达式为 MATLAB?、Simulink? 和Simscape? 生成代码。

Symbolic Math Toolbo某包含 MuPAD? 语言,并已针对符号运算表达式的处理和执行进行优化。

该工具箱备有 MuPAD 函数库,其中包括普通数学领域的微积分和线性代数,以及专业领域的数论和组合论。

此外,还可以使用 MuPAD 语言编写自定义的符号函数和符号库。

MuPAD 记事本支持使用嵌入式文本、图形和数学排版格式来记录符号运算推导。

您可以采用 HTML 或 PDF 的格式分享带注释的推导。

2 Partial Differential Euqation Toolbo某偏微分方程工具箱偏微分方程工具箱?提供了用于在2D,3D求解偏微分方程(PDE)以及一次使用有限元分析。

它可以让你指定和网格二维和三维几何形状和制定边界条件和公式。

你能解决静态,时域,频域和特征值问题在几何领域。

功能进行后处理和绘图效果使您能够直观地探索解决方案。

你可以用偏微分方程工具箱,以解决从标准问题,如扩散,传热学,结构力学,静电,静磁学,和AC电源电磁学,以及自定义,偏微分方程的耦合系统偏微分方程。

3 Statistics Toolbo某统计学工具箱Statistics and Machine Learning Toolbo某提供运用统计与机器学习来描述、分析数据和对数据建模的函数和应用程序。

您可以使用用于探查数据分析的描述性统计和绘图,使用概率分布拟合数据,生成用于Monte Carlo 仿真的随机数,以及执行假设检验。

学习笔记-MATLAB

学习笔记-MATLAB

学习笔记-MATLAB⼀,基操1,命令窗⼝中的标点符号:空格:⽤于输⼊变量之间的分隔符以及数组⾏元素之间的分隔符。

逗号:⽤于要显⽰计算结果的命令之间的分隔符;⽤于输⼊变量之间的分隔符;⽤于数组⾏元素之间的分隔符。

点号:⽤于数值中的⼩数点。

分号:⽤于不显⽰计算结果命令⾏的结尾;⽤于不显⽰计算结果命令之间的分隔符;⽤于数组元素⾏之间的分隔符。

冒号:⽤于⽣成⼀维数值数组,表⽰⼀维数组的全部元素或多维数组的某⼀维的全部元素。

百分号:⽤于注释的前⾯,在它后⾯的命令不需要执⾏。

单引号:⽤于括住字符串。

圆括号:⽤于引⽤数组元素;⽤于函数输⼊变量列表;⽤于确定算术运算的先后次序。

⽅括号:⽤于构成向量和矩阵;⽤于函数输出列表。

花括号:⽤于构成元胞数组。

下划线:⽤于⼀个变量、函数或⽂件名中的连字符。

续⾏号:⽤于把后⾯的⾏与该⾏连接以构成⼀个较长的命令。

“At”号:⽤于放在函数名前形成函数句柄;⽤于放在⽬录名前形成⽤户对象类⽬录。

+,-,*,/,Λ:算术运算符。

2,数值计算结果的显⽰格式:命令含义范例format short短格式(默认) 3.1416(⼩数点后4位有效)format short e短格式科学格式 3.1416e+000(5位科学计数)format long长格式 3.141592653589793(15位)format long e长格式科学格式 3.141592653589793e+000format rat有理格式355/113format hex⼗六进制格式400921fb54442d18format bank 银⾏格式 3.14(元⾓分格式)3,命令窗⼝的常⽤控制命令:clc: 清屏。

清除命令窗⼝中的所有已显⽰的内容。

clear: 删除内存中的变量。

what:列出当前⽬录下的M、MAT、MEX⽂件清单。

dir:显⽰当前⽬录或指定当前⽬录下的⽂件。

cd 路径:改变或显⽰当前⼯作⽬录;路径可省略,省略时为显⽰当前⼯作⽬录;cd ..表⽰回到上⼀级⽬录。

MATLAB的常用应用总结

MATLAB的常用应用总结

§7 MATLAB 的应用7.1 MATLAB 在数值分析中的应用插值与拟合是来源于实际、又广泛应用于实际的两种重要方法。

随着计算机的不断发展及计算水平的不断提高,它们已在国民生产和科学研究等方面扮演着越来越重要的角色。

下面对插值中分段线性插值、拟合中的最为重要的最小二乘法拟合加以介绍。

7.1.1 分段线性插值所谓分段线性插值就是通过插值点用折线段连接起来逼近原曲线,这也是计算机绘制图形的基本原理。

实现分段线性插值不需编制函数程序,MA TLAB 自身提供了内部函数interp1其主要用法如下:interp1(x,y,xi) 一维插值◆ yi=interp1(x,y,xi)对一组点(x,y) 进行插值,计算插值点xi 的函数值。

x 为节点向量值,y 为对应的节点函数值。

如果y 为矩阵,则插值对y 的每一列进行,若y 的维数超出x 或 xi 的维数,则返回NaN 。

◆ yi=interp1(y,xi)此格式默认x=1:n ,n 为向量y 的元素个数值,或等于矩阵y 的size(y,1)。

◆ yi=interp1(x,y,xi,’method’)method 用来指定插值的算法。

默认为线性算法。

其值常用的可以是如下的字符串。

● nearest 线性最近项插值。

● linear 线性插值。

● spline 三次样条插值。

● cubic 三次插值。

所有的插值方法要求x 是单调的。

x 也可能并非连续等距的。

正弦曲线的插值示例:>> x=0:0.1:10;>> y=sin(x);>> xi=0:0.25:10;>> yi=interp1(x,y,xi);>> plot(x,y,’0’,xi,yi)则可以得到相应的插值曲线(读者可自己上机实验)。

Matlab 也能够完成二维插值的运算,相应的函数为interp2,使用方法与interpl 基本相同,只是输入和输出的参数为矩阵,对应于二维平面上的数据点,详细的用法见Matlab 联机帮助。

MATLAB常用工具箱及常用函数

MATLAB常用工具箱及常用函数

常用工具箱MATLAB包括拥有数百个内部函数的主包和三十几种工具包。

工具包又可以分为功能性工具包和学科工具包。

功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。

学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。

开放性使MATLAB广受用户欢迎。

除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。

Matlab Main Toolbox——matlab主工具箱Control System Toolbox——控制系统工具箱Communication Toolbox——通讯工具箱Financial Toolbox——财政金融工具箱System Identification Toolbox——系统辨识工具箱FuzzyLogic Toolbox——模糊逻辑工具箱Higher-Order Spectral Analysis Toolbox——高阶谱分析工具箱Image Processing Toolbox——图象处理工具箱computer vision systemtoolbox----计算机视觉工具箱LMI Control Toolbox——线性矩阵不等式工具箱Model predictive Control Toolbox——模型预测控制工具箱μ-Analysis and Synthesis Toolbox——μ分析工具箱Neural Network Toolbox——神经网络工具箱Optimization Toolbox——优化工具箱Partial Differential Toolbox——偏微分方程工具箱Robust Control Toolbox——鲁棒控制工具箱Signal Processing Toolbox——信号处理工具箱 Spline Toolbox——样条工具箱Statistics Toolbox——统计工具箱Symbolic Math Toolbox——符号数学工具箱Simulink Toolbox——动态仿真工具箱Wavele Toolbox——小波工具箱DSP systemtoolbox-----DSP处理工具箱常用函数Matlab内部常数[2]eps:浮点相对精度exp:自然对数的底数ei 或j:基本虚数单位inf 或Inf:无限大, 例如1/0nan或NaN:非数值(Not a number),例如0/0 pi:圆周率p(= 3.1415926...)realmax:系统所能表示的最大数值realmin:系统所能表示的最小数值nargin: 函数的输入引数个数nargout: 函数的输出引数个数lasterr:存放最新的错误信息lastwarn:存放最新的警告信息MATLAB常用基本数学函数abs(x):纯量的绝对值或向量的长度angle(z):复数z的相角(Phase angle)sqrt(x):开平方real(z):复数z的实部imag(z):复数z的虚部conj(z):复数z的共轭复数round(x):四舍五入至最近整数fix(x):无论正负,舍去小数至最近整数floor(x):下取整,即舍去正小数至最近整数ceil(x):上取整,即加入正小数至最近整数rat(x):将实数x化为多项分数展开rats(x):将实数x化为分数表示sign(x):符号函数(Signum function)。

matlab工具箱介绍

matlab工具箱介绍

matlab工具箱介绍MATLAB有三十多个工具箱大致可分为两类:功能型工具箱和领域型工具箱.功能型工具箱主要用来扩充MATLAB的符号计算功能、图形建模仿真功能、文字处理功能以及与硬件实时交互功能,能用于多种学科。

而领域型工具箱是专业性很强的。

如控制系统工具箱(Control System Toolbox)、信号处理工具箱(Signal Processing Toolbox)、财政金融工具箱(Financial Toolbox)等。

下面,将MATLAB工具箱内所包含的主要内容做简要介绍:1)通讯工具箱(Communication Toolbox)。

令提供100多个函数和150多个SIMULINK模块用于通讯系统的仿真和分析——信号编码——调制解调——滤波器和均衡器设计——通道模型——同步可由结构图直接生成可应用的C语言源代码。

2)控制系统工具箱(Control System Toolbox)。

鲁连续系统设计和离散系统设计* 状态空间和传递函数* 模型转换* 频域响应:Bode图、Nyquist图、Nichols图* 时域响应:冲击响应、阶跃响应、斜波响应等* 根轨迹、极点配置、LQG3)财政金融工具箱(FinancialTooLbox)。

* 成本、利润分析,市场灵敏度分析* 业务量分析及优化* 偏差分析* 资金流量估算* 财务报表4)频率域系统辨识工具箱(Frequency Domain System ldentification Toolbox* 辨识具有未知延迟的连续和离散系统* 计算幅值/相位、零点/极点的置信区间* 设计周期激励信号、最小峰值、最优能量诺等5)模糊逻辑工具箱(Fuzzy Logic Toolbox)。

* 友好的交互设计界面* 自适应神经—模糊学习、聚类以及Sugeno推理* 支持SIMULINK动态仿真* 可生成C语言源代码用于实时应用(6)高阶谱分析工具箱(Higher—Order SpectralAnalysis Toolbox* 高阶谱估计* 信号中非线性特征的检测和刻画* 延时估计* 幅值和相位重构* 阵列信号处理* 谐波重构(7)图像处理工具箱(Image Processing Toolbox)。

matlab符号运算合并同类项

matlab符号运算合并同类项

matlab符号运算合并同类项符号运算是数学中的重要概念,它在解决各种数学问题时起到了关键作用。

在符号运算中,合并同类项是一项常见且重要的操作。

本文将介绍如何使用Matlab 进行符号运算,并重点讲解如何合并同类项。

在Matlab中,符号运算可以通过使用Symbolic Math Toolbox来实现。

首先,我们需要定义符号变量。

可以使用以下命令来定义一个符号变量:```syms x y```接下来,我们可以使用这些符号变量进行各种运算。

在合并同类项时,我们通常需要使用到简化表达式的函数。

在Matlab中,可以使用simplify函数来简化一个表达式,它可以将表达式中的同类项合并为一个。

下面我们通过一个简单的例子来说明如何使用Matlab中的符号运算功能来合并同类项。

假设我们有一个表达式:```expr = 3*x^2 + 2*y^2 + 5*x^2 - 4*y^2 + 7*x*y```我们可以使用simplify函数对其进行简化,代码如下:```simplify(expr)```运行以上代码后,Matlab会输出一个简化后的表达式:```8*x^2 - 2*y^2 + 7*x*y```可以看到,符号运算使我们能够根据指定的规则对表达式进行合并同类项的操作。

这在处理复杂的数学问题时非常有用,可以简化计算过程,提高求解效率。

除了使用simplify函数之外,Matlab还提供了一系列其他函数用于符号运算。

例如,factor函数可以将一个表达式进行因式分解,expand函数可以展开一个表达式,collect函数可以将表达式中的同类项进行收集等等。

这些函数的使用方法可以通过Matlab的帮助文档进行学习和查阅。

综上所述,Matlab提供了强大的符号运算功能,可以用于合并同类项等各种数学运算。

通过运用这些功能,我们可以简化复杂的数学问题,提高计算效率。

希望本文对你理解Matlab中的符号运算有所帮助。

8 MATLAB工具箱简介

8 MATLAB工具箱简介

输出模块库 信号源库
线性模块库
仿真连接模块库 其它模块库
离散模块库
非线性模块库
• 选则Fine菜单New选项,出现一个新窗口,
即可绘制结构图。
例:模拟一个微分方程 . x = -2x + u . x
u
x
-2x
• 方框图绘制完毕,一个动态系统模
型也就创建好了。 • 选择File菜单Save保存图形,就自动
2. 符号运算工具箱
• 主要功能以符号为对象的数学。 • 在大学教学中,符号数学是各专业 都能用到的。 • 符号运算无须事先对独立变量赋值, 运算结果以标准的符号形式表达。 • 特点: 运算对象可以是没赋值的符号变量 可以获得任意精度的解
符号运算的功能
• 符号表达式、符号矩阵的创建
• 符号可变精度求解 • 符号线性代数 • 因式分解、展开和简化
• 符号代数方程求解
• 符号微积分
• 符号微分方程
例如: z ='a*t^2+b*t+c'; r =solve(z,‘t’) —— 对缺省变量求解
r=
[1/2/a*(-b+(b^2-4*a*c)^(1/2))]
[1/2/a*(-b-(b^2-4*a*c)^(1/2))]
对任意变量求解 r =solve(z,'b') r= -(a*t^2+c)/t r =solve(z,'c') r= -a*t^2-b*t r =solve(z,'a') r= -(b*t+c)/t^2
各函数库中的函数可用help 函数库名 查询,或type 函数名方法查询
例:help plotxy Two dimensional graphics. Elementary X-Y graphs. plot - Linear plot. loglog - Log-log scale plot. semilogx - Semi-log scale plot. semilogy - Semi-log scale plot. fill - Draw filled 2-D polygons.

MATLAB符号微积分的应用

MATLAB符号微积分的应用

MATLAB符号微积分的应用MATLAB是一种广泛使用的科学计算软件,它提供了许多强大的工具箱用于解决各种科学计算问题。

其中,MATLAB符号微积分工具箱在解决微分、积分、级数等数学问题方面具有重要作用。

本文将介绍MATLAB符号微积分工具箱的基本概念及其在科学计算中的应用。

MATLAB符号微积分工具箱提供了符号计算功能,包括微分、积分、级数等多方面的数学运算。

符号微分可以求解函数的导数,符号积分可以求解函数的定积分或不定积分,而级数则可以对函数进行展开和表示。

这些功能使得MATLAB符号微积分工具箱成为进行数学分析和计算的强大工具。

下面通过几个具体的应用实例来说明如何使用MATLAB符号微积分工具箱进行科学计算。

使用符号微分功能可以求解函数的导数。

例如,对于函数f(x) = x^3,可以使用以下MATLAB代码求解其导数:f = x^3; %定义函数f(x) = x^3df = diff(f, x); %求函数f的导数使用符号积分功能可以求解函数的积分。

例如,对于函数f(x) = x^2,可以使用以下MATLAB代码求解其不定积分:f = x^2; %定义函数f(x) = x^2indefinite_integral = int(f, x); %求函数f的不定积分使用级数功能可以对函数进行展开和表示。

例如,对于函数f(x) = 1/(1-x),可以使用以下MATLAB代码将其展开为级数:f = 1/(1-x); %定义函数f(x) = 1/(1-x)series_expansion = expand(f); %将f展开为级数使用MATLAB符号微积分工具箱进行科学计算具有以下优势:符号计算可以精确地表示数学公式和推导过程,从而提高计算的准确性和精度。

MATLAB符号微积分工具箱提供了丰富的数学函数和算法,可以解决各种复杂的数学问题。

通过使用符号微积分,可以更好地理解和掌握数学概念和原理。

然而,MATLAB符号微积分工具箱也存在一些不足之处:符号计算相比于数值计算通常更加耗时和占用资源,对于大规模的计算任务可能不适用。

Matlab技术高级功能介绍

Matlab技术高级功能介绍

Matlab技术高级功能介绍Matlab是一款广泛应用于科学计算和工程领域的软件,它提供了许多强大的功能和工具,使得用户能够更加高效地进行数据处理、图像处理、算法设计等任务。

本文将介绍Matlab的一些高级功能,包括符号计算、并行计算、仿真和优化等方面。

一、符号计算Matlab提供的符号计算功能是其与其他计算软件的重要区别之一。

符号计算可以让用户处理代数方程、微积分等数学问题,而不仅仅是数值计算。

Matlab中的符号计算工具箱可以通过定义符号变量、表达式和方程式来解决复杂的代数问题。

用户可以进行符号运算、求导、积分等操作,并得到符合数学表达式的解。

符号计算的一个典型应用是解方程。

在Matlab中,用户可以使用solve函数来求解一元或多元方程。

例如,用户可以定义一个一元方程cos(x) - x = 0,并使用solve函数来求解该方程的解。

符号计算功能还可以用于符号化函数的微分和积分操作。

二、并行计算随着计算机硬件性能的提升,多核处理器已经成为现代计算机的标配。

Matlab 提供了并行计算工具箱,使用户能够利用多核处理器来加速计算过程。

并行计算可以将一个任务拆分成多个小任务,并同时在多个处理器上进行处理,从而提高计算效率。

在Matlab中,可以使用parfor循环来实现并行计算。

parfor循环与传统的for 循环类似,但是可以在多个处理器上并行执行迭代。

通过使用parfor循环,可以同时对多个数据进行处理,从而缩短计算时间。

并行计算在大规模数据处理、图像处理以及模拟仿真等领域中有广泛应用。

三、仿真Matlab提供了一系列强大的仿真工具,使用户能够模拟和验证各种系统和过程。

仿真是通过建立数学模型,模拟实际系统在不同条件下的行为。

Matlab的仿真工具箱包括控制系统仿真、通信系统仿真、电力系统仿真等各个领域的仿真工具。

例如,在控制系统仿真中,用户可以建立连续或离散的控制系统模型,然后使用Matlab的仿真工具进行系统响应分析、稳定性分析等。

使用Matlab符号数学工具箱求解微分方程

使用Matlab符号数学工具箱求解微分方程

使用Matlab符号数学工具箱求解微分方程Matlab符号数学工具箱(Symbolic Math Toolbox)中函数dsolve用于计算常系数微分方程(ordinary differential equations)的符号解(Symbolic solution),此处的符号解即解析解。

注意:不是所有的微分方程都能用dsolve函数求出解析解。

1调用形式dsolve函数调用形式有如下两种:r = dsolve('eq1,eq2,...', 'cond1,cond2,...', 'v')r = dsolve('eq1','eq2',...,'cond1','cond2',...,'v')2函数描述dsolve('eq1,eq2,...', 'cond1,cond2,...', 'v')用于计算常系数微分方程(或常系数微分方程组)的符号解,其中参数'eq1,eq2,...'指定微分方程(组),参数'v'指定微分方程(组)中的自变量,参数'cond1,cond2,...'指定微分方程(组)的边界条件及(或)初始条件。

不指定参数'v'时,默认的自变量为t。

输入的方程中使用大写字母D代表微分算符,如单个字母D表示ddt。

大写字母D后跟数字表示多次微分运算。

比如,D2表示22ddt。

紧跟在微分算符后的字符表示因变量。

例如,D3y表示对因变量y的三次微分,其中y是x或t的函数。

初始条件或边界条件由形如y(a) = b或Dy(a) = b的方程给出,其中,y是因变量,b是常量。

如果给出的初始条件的个数小于因变量的个数,则dsolve函数计算的符号解中包含任意常量C1, C2,....。

matlab数学工具箱介绍

matlab数学工具箱介绍

Matlab符号数学工具箱应用简介Matlab符号运算是通过集成在Matlab中的符号数学工具箱(Symbolic Math Toolbox)来实现的。

和别的工具箱有所不同,该工具箱不是基于矩阵的数值分析,而是使用字符串来进行符号分析与运算。

实际上,Matlab中的符号数学工具箱是建立在Maple基础上的,当进行Matlab符号运算时,它就请求Maple软件去计算并将结果返回给Matlab。

Matlab的符号数学工具箱可以完成几乎所有得符号运算功能。

这些功能主要包括:符号表达式的运算,符号表达式的复合、化简,符号矩阵的运算,符号微积分、符号函数画图,符号代数方程求解,符号微分方程求解等。

此外,工具箱还支持可变精度运算,既支持符号运算并以指定的精度返回结果。

在一般的Matlab书籍中都会对Matlab的符号运算做一些介绍,本文将略去这些简单的部分,主要对比较复杂的部分做一些介绍,另外,限于篇幅,和前面几篇一样,在此也仅仅列出函数的名称和功能,至于其参数设置,可借助Matlab的帮助系统一、符号表达式的运算[n,d]=numden(a) 提取符号表达式a的分子和分母,并将其存放在n和d中n=numden(a) 提取符号表达式a的分子和分母,只将分子存放在n中symadd(a,b) 返回符号表达式a和b的和,也可直接用a+bsymsub(a,b) 返回符号表达式a和b的差,也可直接用a-bsymmul(a,b) 返回符号表达式a和b的积,也可直接用a*bsymdiv(a,b) 返回符号表达式a和b的商,也可直接用a/bsympow(a,b) 返回符号表达式a的b次幂,也可直接用a^bcompose(f,g) 返回复合函数f(g(y))compose(f,g,z) 返回自变量为z的复合函数f(g(z))compose(f,g,x,z) 返回复合函数f(g(z)),并使x成为f函数的独立变量。

即,如果f=cos(x/t),则compose(f,g,x,z)返回复合函数cos(g(z)/t),而compose(f,g,t,z)返回cos(x/g(z))compose(f,g,x,y,z) 返回复合函数f(g(z)),并且使x与y分别成为f与g函数的独立变量。

MATLAB符号数学工具

MATLAB符号数学工具

第22章 符号数学工具MATLAB 所具有的符号数学工具箱与其它所有工具不同,它适用于广泛的用途,而不是针对一些特殊专业或专业分支。

另外,MATLAB 符号数学工具箱与其它的工具箱区别还因为它使用字符串来进行符号分析,而不是基于数组的数值分析。

为此,本章包含了该工具箱的教学辅导材料。

22.1 引言符号数学工具箱是操作和解决符号表达式的符号数学工具箱(函数)集合,有复合、简化、微分、积分以及求解代数方程和微分方程的工具。

另外还有一些用于线性代数的工具,求解逆、行列式、正则型式的精确结果,找出符号矩阵的特征值而无由数值计算引入的误差。

工具箱还支持可变精度运算,即支持符号计算并能以指定的精度返回结果。

符号数学工具箱中的工具是建立在功能强大的称作Maple 软件的基础上。

它最初是由加拿大的滑铁卢(Waterloo )大学开发的。

当要求MATLAB 进行符号运算时,它就请求Maple 去计算并将结果返回到MATLAB 命令窗口。

因此,在MATLAB 中的符号运算是MATLAB 处理数字的自然扩展。

22.2 符号表达式符号表达式是代表数字、函数、算子和变量的MATLAB 字符串,或字符串数组。

不要求变量有预先确定的值,符号方程式是含有等号的符号表达式。

符号算术是使用已知的规则和给定符号恒等式求解这些符号方程的实践,它与代数和微积分所学到的求解方法完全一样。

符号矩阵是数组,其元素是符号表达式。

MATLAB 在内部把符号表达式表示成字符串,以与数字变量或运算相区别;否则,这些符号表达式几乎完全象基本的MATLAB 命令。

表22.1列有几则符号表达式例子以及MATLAB 等效表达式。

表22.1符号表达式MATLAB 表达式12xn' 1/(2*x^n) '12y x=y= ' 1/sqrt(2*x) ' cos()sin()x x 22- ' cos(x^2)-sin(2*x) ' M a b cd =⎡⎣⎢⎤⎦⎥ M=sym( ' [a ,b ;c ,d] ' )xxdx ab31-⎰f=int( ' x^3/sqrt(1-x) ' , ' a ' , ' b ' )MATLAB 符号函数可让用户用多种方法来操作这些表达式,比如,>> diff( ' cos(x) ' ) % differentiate cos(x) with respect to x ans= -sin(x)>> M=sym( ' [a ,b ;c ,d] ' ) % create a symbolic matrix M M= [a ,b] [c ,d]>> determ(M) % find the determinant of the symbolic matrix M ans= a*d-b*c请注意,上面的第一个例子的符号表达式是用单引号以隐含方式定义的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ans 计算结果的缺省变量名
eps 机器零阈值
nargin 函数输入宗量数目
nargout 函数输出宗量数目
realmax 最大正实数
realmin 最小正实数
求极限
limit(f, x, a) 若a=0,且是对x求极限,可简写为limit(f)
limit(f, x, a, ’left’) 左趋近于a
limit(f, x, a, ’right’) 右趋近于a
limit(f, a) 求函数f在符号findsym(f)趋于a的极限
syms x
limit((cos(x)-exp(-x^2/2))/x^4)
syms x t
limit((1+t/(2*x))^(4*x),x,inf)
1 diff(f, x) 表示对f(这里f是一个函数表达式)求关于符号变量x的一阶导数。

若x缺省,则表示求f对预设独立变量的一阶导数。

2 diff(f, x, n) 表示对f求关于符号变量x的n阶导数。

若x缺省,则表示求f对预设独立变量的n阶导数。

1 int(f) 返回f对预设独立变量的积分值;
2 int(f,v) 返回f对独立变量v的积分值;
3 int(f,a,b) 返回f对预设独立变量的积分值,积分区间为[a,b],a和b为数值式;
4 int(f,v,a,b) 返回f对独立变量的积分值,积分区间为[a,b],a和b为数值式;
5 int(f,m,n) 返回f对预设变量的积分值,积分区间为[m,n],m和n为符号式;
collect(F) 将表达式F中相同幂次的项合并
expand(F) 将表达式F展开factor(F) 将表达式F因式分解
simplify(F) 利用代数上的函数规则对表达式F进行化简
simple(F) 以尽可能的办法将F表达式再做化简,目的是使表达式以最少的字表示出来
collect(f1)
f1=sym('(a-1)^2+(b+1)^2+a+b')
collect(f1)
expand(f1)
f2=sym('a^3-1')
factor(f2)
f3=sym('1/a^4+2/a^3+3/a^2+4/a+5')
simplify(f3)
simple(f3)
simplify函数利用代数上的函数规则对表达式进行化简,如果其中的F为符号矩阵,则会对逐个元素进行化简。

而simple函数用来求符号表达式或矩阵的最简形式。

该函数会尝试用多种不同化简方法对F进行化简,并显示所有能够化简F的方法,最后返回F的最简形式。

如果F是一个矩阵,则返回的结果是整个矩
阵的最简形式,而不一定是其中某一个元素的最简形式。

从上例可以看出,simple使用了多种方法,能够改善simplify的结果,而simplify返回的不一定是最简结果。

求反函数与复合函数
g=finverse(f,v) 对指定自变量为v的函数f(v),求反函数g(v);
g=finverse(f) 对缺省自变量求反函数g;
fg=compose(f,g) 求f=f(x)和g=g(y)的复合函数fg=f(g(y));
fg=compose(f,g,z) 求f=f(x)和g=g(y)的复合函数fg=f(g(z));
fg=compose(f,g,x,z) 求f=f(x)和g=g(y)的复合函数fg=f(g(z)),其中x是f的自变量;fg=compose(f,g,x,y,z) 求f=f(x)和g=g(y)的复合函数fg=f(g(z)),其中x 是f的自变量,其中y是g的自变量;
syms a x y
g=finverse(1/tan(x))
g=finverse(1/tan(a*x),x)
syms x y z t u
f=1/(1+x^2);
g=sin(y);
h=x^t;
p=exp(-y/u);
compose(f,g)
compose(f,g,t)
compose(h,g,x,z)
compose(h,g,t,z)
compose(h,p,x,y,z)
compose(h,p,t,u,z)
求函数的泰勒(Taylor)展式
taylor(f,n) 求函数f的n阶Maclaurin展式。

如n缺省,则表示求f的5阶展式。

taylor(f,n,a) 求函数f在x=a的n-1阶泰勒展式。

如n缺省,则表示求f在x=a的5阶泰勒展式。

syms x
y=taylor(cos(x),5)
MATLAB软件解常微分方程的函数为:
dsolve(‘equation’,’condition’)
其中,equation代表常微分方程(组),condition为初始条件,如果初始条件没有给出,则给出通解形式。

在函数dsolve所包含的equation中,用字母D来表示求微分,D的数字表示几重微分,D后的变量为因变量,并默认所有这些变量都是对自变量t求导。

如”Dny”表示y的n阶导数。

dsolve('Dy=2*x+y','x')
dsolve('D2y=1+Dy','y(0)=1','Dy(0)=0')
dsolve('2*D2y+Dy=8*sin(2*x)+exp(-x)','y(0)=1,Dy(0)=0','x')
dsolve函数还可以用于求微分方程组的通解或初值解,如
[x,y]=dsolve('Dx=y+x,Dy=2*x')
[x,y]=dsolve('Dx=y+x,Dy=2*x','x(0)=0,y(0)=1')
用于求解方程(组)的函数为solve(f,v) 对指定自变量v解符号方程f。

如v省略,表示对预设变量解符号方程f。

f='a*x^2+bx+c'
solve(f)
解代数方程组的指令是:solve(equa1,equa2,…,equan)
eq1=sym('x+y+z=10')
eq2=sym('x-y+z=0')
eq3=sym('2*x-y-z=-4')
[x,y,z]=solve(eq1,eq2,eq3)
[x,y]=solve('x^2+x*y+y=3','x^2-4*x + 3=0')
求多项式根的指令:
roots(p) 这里p是多项式的系数作成的行向量,MATLAB软件约定系数按降幂的方式排列。

该指令在运行时对次数不超过20的多项式比较可靠。

p=[-2,5.2,-4.8,7,0,2,9.8,1] %p为多项式降序排列的各个系数
roots(p)
求一元函数零点的指令:
fzero(function,x0)
其中function是被用来求零点的函数或者是函数表达式。

x0是一个数或者一个二元向量。

当x0是一个数时,指令将在x0的附近寻找函数function的一个近似零点;当x0是一个二元向量[a,b]时,指令将在区间[a,b]内寻找函数function的一个近似零点。

f='x-exp(-x)'
x0=[0,1]
fzero(f,x0)
MATLAB绘图功能应用示例
ezplot(f,[a,b]) 在区间[a,b]绘制f(a,b)=0的函数图。

当区间缺省时,表示在默认区间-2π<a<2π和2π<b<2π绘制f(a,b)=0的函数图;
ezplot(x,y,[tmin,tmax]) 在区间tmin<t<tmax绘制x(t)=0,y(t)=0的函数图。

当区间缺省时,表示在默认区间2π<t<2π绘制x(t)=0,y(t)=0的函数图;
fplot(fun,lims) 在指定区间lims=[xmin,xmax]绘制字符串fun所指定的函数图。

f=sym('sin(x)')
ezplot(f,[0,2*pi]) % 或ezplot('sin(x)', ,[0,2*pi])
syms t
ezplot(cos(3*t)*cos(t)','cos(3*t)*sin(t)',[0,pi])
syms x
fplot('exp(x)-x',[0,1])。

相关文档
最新文档