MATLAB的符号计算功能.ppt
2023/11/8,第1页,第8章 MATLAB 的符号计算功能,MATLAB R2007基础教程 清华大学出版社,教学目标教学重点教学内容,2023/11/8,第2页,教学目标,掌握基本符号运算掌握符号函数图形绘制掌握符号微积分的运算掌握符号线性代数掌握符号方程的求解方法掌握符号积分变换了解 Maple 函数的调用方法了解符号函数计算器的使用,2023/11/8,第3页,教学重点,符号函数图形绘制符号微积分的运算符号线性代数符号方程的求解方法符号积分变换,2023/11/8,第4页,教学内容,符号运算简介 符号表达式的化简与替换 符号函数图形绘制 符号微积分 符号线性代数 符号方程的求解 符号积分变换 MAPLE 函数的调用 符号函数计算器,2023/11/8,第5页,符号运算简介,符号对象 符号变量、表达式的生成 findsym 函数和 subs 函数 符号和数值之间的转化 任意精度的计算 创建符号方程,2023/11/8,第6页,符号对象,符号对象是符号工具箱中定义的另一种数据类型。符号对象是符号的字符串表示。在符号工具箱中符号对象用于表示符号变量、表达式和方程。下例说明了符号对象和普通的数据对象之间的差别。例 7-1 符号对象和普通数据对象之间的差别在命令窗口中输入如下命令 sqrt(2)ans=1.4142 x=sqrt(sym(2)x=2(1/2),返回数值结果,返回符号结果,2023/11/8,第7页,由上例可以看出,当采用符号运算时,并不计算出表达式的结果,而是给出符号表达。如果可以查看符号 x 所表示的值,在窗口中输入:double(x)ans=1.4142另外,对符号进行的数学运算与对数值进行的数学运算并不相同,看下面的例子例 7-2 符号运算和数值运算之间的差别 sym(2)/sym(5)ans=2/5,2023/11/8,第8页,两个符号进行运算,结果为分数形式。继续输入:2/5+1/3ans=0.7333 sym(2)/sym(5)+sym(1)/sym(3)ans=11/15 double(sym(2)/sym(5)+sym(1)/sym(3)ans=0.7333由上例看出,当进行数值运算时,得到的结果为 double 型数据,采用符号进行运算时,输出的结果为分数形式。,2023/11/8,第9页,符号变量、表达式的生成,MATLAB 中有两个函数用于符号变量、符号表达式的生成,这两个函数为 sym 和syms,分别用于生成一个或多个符号对象。1.sym 函数sym 函数可以用于生成单个的符号变量。在上面一节中已经初步涉及了 sym 函数,本节将要详细介绍该函数。该函数的调用格式为:S=sym(A),如果参数 A 为字符串,则返回的结果为一个符号变量或者一个符号数值;如果 A 是一个数字或矩阵,则返回结果为该参数的符号表示。x=sym(x),该命令创建一个符号变量,该变量的内容为 x,表达为 x。x=sym(x,real),指定符号变量 x 为实数。x=sym(x,unreal),指定 x 为一个纯粹的变量,而不具有其他属性。S=sym(A,flag),其中 参数 flag 可以为 r,d,e,或者 f 中的一个。该函数将数值标量或者矩阵转化为参数形式,该函数的第二个参数用于指定浮点数转化的方法,该函数各个取值的意义如表所示。,2023/11/8,第10页,创建复数符号变量,MATLAB 中一种特殊的符号表达式为复数,创建复数符号变量可以有两种方法:直接创建法间接创建法,2023/11/8,第11页,findsym 函数,findsym 函数该函数用于确定一个表达式中的符号变量。在上面的例子中,表达式 f 中包含有四个符号变量,表达式 g 中包含有 1 个符号变量,其他变量为普通变量。findsym 函数通常由系统自动调用,在进行符号运算时,系统调用该函数确定表达式中的符号变量,执行相应的操作。,2023/11/8,第12页,subs 函数,subs 函数subs 函数可以将符号表达式中的符号变量用数值代替。在对多变量符号表达式使用 subs 函数时,如果不指定变量,则系统选择默认变量进行计算。默认变量的选择规则为:对于只包含一个字符的变量,选择靠近 x 的变量作为默认变量;如果有两个变量和 x 之间的距离相同,则选择字母表后面的的变量作为默认变量。,2023/11/8,第13页,符号和数值之间的转化,在符号变量生成一节中已经介绍了 sym 函数,该函数用于生成符号变量,也可以将数值转化为符号变量。转化的方式由参数“flag”确定。flag 的取值及具体意义在上面的一节中已经叙述过。sym 的另一个重要作用为将数值矩阵转化为符号矩阵。,2023/11/8,第14页,任意精度的计算,符号计算的一个非常显著的特点是:在计算过程中不会出现舍入误差,从而可以得到任意精度的数值解。如果希望计算结果精确,可以用符号计算来获得足够高的计算精度。符号计算相对于数值计算而言,需要更多的计算时间和存储空间。MATLAB 工具箱中有三种不同类型的算术运算:数值型:MATLAB 的浮点数运算;有理数类型:Maple 的精确符号运算;VPA 类型:Maple 的任意精度算术运算。,2023/11/8,第15页,在三种运算中,浮点运算速度最快,所需的内存空间小,但是结果精确度最低。双精度数据的输出位数由 format 命令控制,但是在内部运算时采用的是计算机硬件所提供的八位浮点运算。而且,在浮点运算的每一步,都存在一个舍入误差,如上面的运算中存在三步舍入误差:计算 1/3 的舍入误差,计算 1/2+1/3 的舍入误差,和将最后结果转化为十进制输出时的舍入误差。符号运算中的有理数运算,其时间复杂度和空间复杂度都是最大的,但是,只要时间和空间允许,能够得到任意精度的结果。可变精度的运算运算速度和精确度均位于上面两种运算之间。其具体精度由参数指定,参数越大,精确度越高,运行越慢。,2023/11/8,第16页,创建符号方程(1/2),1创建抽象方程MATLAB 中可以创建抽象方程,即只有方程符号,没有具体表达式的方程。若要创建方程,并计算其一阶微分的方法如下:f=sym(f(x);syms x h;df=(subs(f,x,x+h)-f)/hdf=(f(x+h)-f(x)/h抽象方程在积分变换中有着很多的应用。,2023/11/8,第17页,创建符号方程(2/2),2创建符号方程创建符号方程的方法有两种:利用符号表达式创建先创建符号变量,通过符号变量的运算生成符号函数直接生成符号表达式创建 M 文件利用 M 文件创建的函数,可以接受任何符号变量作为输入,作为生成函数的自变量,2023/11/8,第18页,符号表达式的化简与替换,符号表达式的化简 符号表达式的替换,2023/11/8,第19页,符号表达式的化简,MATLAB中下列函数可以实现符号表达式的化简collectexpandhornerfactorsimplifysimple,2023/11/8,第20页,collect,该函数用于合并同类项,具体调用格式为:R=collect(S),合并同类项。其中 S 可以是数组,数组的每个元素为符号表达式。该命令将 S 中的每个元素进行合并同类项。R=collect(S,v),对指定的变量 v 进行合并,如果不指定,则默认为对 x 进行合并,或者由 findsym 函数返回的结果进行合并。,2023/11/8,第21页,expand,expand 函数用于符号表达式的展开。其操作对象可以是多种类型,如多项式、三角函数、指数函数等。用户可以利用 expand 函数对任意的符号表达式进行展开。,2023/11/8,第22页,horner,horner 函数将函数转化为嵌套格式。嵌套格式在多项式求值中可以降低计算的时间复杂度。该函数的调用格式为:R=horner(P),其中 P 为由符号表达式组成的矩阵,该命令将 P 中的所有元素转化为相应的嵌套形式。,2023/11/8,第23页,factor 和 simplify,factor 函数实现因式分解功能,如果输入的参数为正整数,则返回此数的素数因数。simplify 函数实现表达式的化简,化简所选用的方法为 Maple 中的化简方法。,2023/11/8,第24页,simple,该函数同样实现表达式的化简,并且该函数可以自动选择化简所选择的方法,最后返回表达式的最简单的形式。函数的化简方法包括:simplify、combine(trig)、radsimp、convert(exp)、collect、factor、expand 等。该函数的调用格式为:r=simple(S),该命令尝试多种化简方法,显示全部化简结果,并且返回最简单的结果;如果 S 为矩阵,则返回使矩阵最简单的结果,但是对于每个元素而言,则并不一定是最简单的。r,how=simple(S),该命令在返回化简结果的同时返回化简所使用的方法。,2023/11/8,第25页,符号表达式的替换,MATLAB 中,可以通过符号替换使表达式的形式简化。符号工具箱中提供了两个函数用于表达式的替换:subexpr 和 subs。1subexpr该函数自动将表达式中重复出现的字符串用变量替换,该函数的调用格式为:Y,SIGMA=subexpr(X,SIGMA),指定用符号变量 SIGMA 来代替符号表达式(可以是矩阵)中重复出现的字符串。替换后的结果由 Y 返回,被替换的字符串由 SIGMA 返回;Y,SIGMA=subexpr(X,SIGMA),该命令与上面的命令不同之处在于第二个参数为字符串,该命令用来替换表达式中重复出现的字符串。,2023/11/8,第26页,subs 函数,2subs函数 subs 可以用指定符号替换表达式中的某一特定符号。该函数在第一节中已经有简单介绍,本节介绍该函数的更多功能。该函数的调用格式为:R=subs(S),对于 S 中出现的全部符号变量,如果在调用函数或工作区间中存在相应值,则将值代入,如果没有相应值,则对应的变量保持不变;R=subs(S,new),用新的符号变量替换 S 中的默认变量,即有 findsym 函数返回的变量;R=subs(S,old,new),用新的符号变量替换 S 中的变量,被替换的变量由 old 指定,如果 new 是数字形式的符号,则数值代替原来的符号计算表达式的值,所得结果仍是字符串形式,如果 new 是矩阵,则将 S 中的所有 old 替换为 new,并将 S 中的常数项扩充为与 new 维数相同的常数矩阵。,2023/11/8,第27页,符号函数图形绘制,符号函数曲线的绘制 符号函数曲面网格图及表面图的绘制 等值线的绘制,2023/11/8,第28页,符号函数曲线的绘制,MATLAB 中,ezplot 函数和 ezplot3 函数分别实现符号函数二维和三维曲线的绘制。ezplot 函数可以绘制显函数的图形,可以绘制隐函数的图形,也可以绘制参数方程的图形。对于显函数,其调用格式有:ezplot(f),绘制函数 f 在区间 内的图形。ezplot(f,min,max),绘制函数 f 在指定区间 min,max 内的图形。该函数打开标签为 Figure No.1 的图形窗口,并显示图像。如果已经存在图形窗口,在该函数在标签数最大的窗口中显示图形。ezplot(f,xmin xmax,fign),在指定的窗口 fign 中绘制函数的图像。,2023/11/8,第29页,对于隐函数,ezplot 函数的调用格式有:ezplot(f),绘制函数在区间,的图形;ezplot(f,xmin,xmax,ymin,ymax),绘制函数在 xmin x xmax、ymin y ymax 的图形;ezplot(f,min,max),绘制函数在 min x max、min y max 的图形。对于参数方程,ezplot 函数的调用格式有:ezplot(x,y),绘制参数方程 x=x(t)、y=y(t)在的曲线;ezplot(x,y,tmin,tmax),绘制参数方程 x=x(t)、y=y(t)在的曲线;,2023/11/8,第30页,ezplot3 函数,ezplot3 函数用于绘制三维参数曲线。该函数的调用格式为:ezplot3(x,y,z),在默认区间内绘制参数方程 x=x(t),y=y(t),z=z(t)的图像;ezplot3(x,y,z,tmin,tmax),在区间 tmin t tmax 内绘制参数方程 x=x(t)、y=y(t)、z=z(t)的图像;ezplot3(.,animate),生成空间曲线的动态轨迹。,2023/11/8,第31页,符号函数曲面网格图及表面图的绘制,MATLAB 中,函数 ezmesh、ezmeshc、ezsurf及ezsurfc 实现三维曲面的绘制。1ezmesh、ezsurfezmesh、ezsurf 函数分别用于绘制三维网格图和三维表面图。这两个函数的用法相同,下面以函数 ezmesh 函数为例介绍三维曲面的绘制。该函数的调用格式为:ezmesh(f),绘制函数 f(x,y)的图像;ezmesh(f,domain),在指定区域绘制函数 f(x,y)的图像;ezmesh(x,y,z),在默认区域绘制三维参数方程的图像;ezmesh(x,y,z,smin,smax,tmin,tmax)or ezmesh(x,y,z,min,max),在指定区域绘制三维参数方程的图像。,2023/11/8,第32页,ezmeshc、ezsurfc 函数,2ezmeshc、ezsurfc这两个函数用于在在绘制三维曲面的同时绘制等值线。下面以 ezmeshc 函数为例介绍这两个函数的用法。ezmeshc(f),绘制二元函数在默认区域,的图形。ezmeshc(f,domain),绘制函数在指定区域的图形,绘图区域由 domain 指定,其中 domain 为 41 数组或者 21 数组,如 xmin,xmax,ymin,ymax 表示 min x max,,min y max,min,max 表示 min x max,,min y max。ezmeshc(x,y,z),绘制参数方程 x=x(s,t),y=y(s,t),and z=z(s,t)在默认区域,的图形。ezmeshc(x,y,z,smin,smax,tmin,tmax),ezmeshc(x,y,z,min,max),绘制参数方程在指定区域的图形,指定的方法与 domain 相同。ezmeshc(.,n),指定绘图的网格数,默认值为 60。ezmeshc(.,circ),在以指定区域中心为中心的圆盘上绘制图像。,2023/11/8,第33页,等值线的绘制,在 MATLAB 中,用于绘制符号函数等值线的函数有 ezcontour 和ezcontourf,这两个函数分别用于绘制等值线和带有区域填充的等值线。下面以 ezcontour 函数为例介绍这两个函数的用法。该函数的调用格式为:ezcontour(f),绘制符号二元函数 f(x,y)在默认区域的等值线图;ezcontour(f,domain),绘制符号二元函数 f(x,y)在指定区域的等值线图;ezcontour(.,n),绘制等值线图,并指定等值线的数目。,2023/11/8,第34页,符号微积分,符号表达式求极限 符号微分 符号积分 级数求和 Taylor 级数,2023/11/8,第35页,符号表达式求极限,极限是微积分的基础,微分和积分都是“无穷逼近”时的结果。在 MATLAB 中函数 limit 用于求表达式的极限。该函数的调用格式为:limit(F,x,a),当 x 趋近于 a 时表达式 F 的极限;limit(F,a),当 F 中的自变量趋近于 a 时 F 的极限,自变量由 findsym 函数确定;limit(F),当 F 中的自变量趋近于 0 时 F 的极限,自变量由 findsym 函数确定;limit(F,x,a,right),当 x 从右侧趋近于 a 时 F 的极限;limit(F,x,a,left),当 x 从左侧趋近于 a 时 F 的极限;,2023/11/8,第36页,符号微分,MATLAB 中函数 diff 实现函数求导和求微分,可以实现一元函数求导和多元函数求偏导。该函数在前面的 MATLAB 的数学功能一章已有介绍,用于计算向量或矩阵的差分。当输入参数为符号表达式时,该函数实现符号微分,其调用格式为:diff(S),实现表达式 S 的求导,自变量由函数 findsym 确定;diff(S,v),实现表达式对指定变量 v 的求导,该语句还可以写为 diff(S,sym(v);diff(S,n),求 S 的 n 阶导;diff(S,v,n),求 S 对 v 的 n 阶导,该表达式还可以写为 diff(S,n,v)。,2023/11/8,第37页,上述为利用 diff 函数计算符号函数的微分,另外,微积分中一个非常的重要概念为 Jacobian 矩阵,计算函数向量的微分。如果,其中,则的 Jacobian 矩阵为:MATLAB 中函数 jacobian 用于计算 Jacobian 矩阵。该函数的调用格式为:R=jacobian(f,v),如果 f 是函数向量,v 为自变量向量,则计算 f 的 Jacobian 矩阵;如果 f 是标量,则计算 f 的梯度,如果 v 也是标量,则其结果与 diff 函数相同。,2023/11/8,第38页,符号积分,与微分对应的是积分,在 MATLAB 中,函数 int 用于实现符号微分运算。该函数的调用格式为:R=int(S),求表达式 S 的不定积分,自变量由 findsym 函数确定;R=int(S,v),求表达式 S 对自变量 v 的不定积分;R=int(S,a,b),求表达式 S 在区间上的定积分,自变量由 findsym 函数确定;R=int(S,v,a,b),求表达式 S 在区间上的定积分,自变量为 v。,2023/11/8,第39页,级数求和,symsum 函数用于级数的求和。该函数的调用格式为:r=symsum(s),自变量为 findsym 函数所确定的符号变量,设其为 k,则该表达式计算 s 从 0 到 k-1 的和;r=symsum(s,v),计算表达式 s 从 0 到 v-1 的和;r=symsum(s,a,b),计算自变量从 a 到 b 之间 s 的和;r=symsum(s,v,a,b),计算 v 从 a 到 b 之间的 s 的和。,2023/11/8,第40页,Taylor 级数,函数 taylor 用于实现 Taylor 级数的计算。该函数的调用格式为:r=taylor(f),计算表达式 f 的 Taylor 级数,自变量由 findsym 函数确定,计算 f 的在 0 的 6 阶 Taylor 级数;r=taylor(f,n,v),指定自变量 v 和阶数 n;r=taylor(f,n,v,a),指定自变量 v、结束 n,计算 f 在 a 的级数。,2023/11/8,第41页,符号线性代数,基本代数运算 线性代数运算 矩阵的特征值分解 Jordon 标准型 奇异值分解,2023/11/8,第42页,基本代数运算,基本代数运算包括矩阵的四则运算、乘方、转置等,这些运算与数值矩阵的运算相同。,2023/11/8,第43页,线性代数运算,符号线性代数的运算和数值线性代数的运算基本相同,读者可以首先回顾一下“MATLAB的数学功能”一章中关于线性代数的知识,这样可以有助于本节的学习。本节以 Hilbert 矩阵为例,介绍矩阵的代数运算。首先生成 Hilbert 矩阵。H=hilb(3)H=1.00000000000000 0.50000000000000 0.33333333333333 0.50000000000000 0.33333333333333 0.25000000000000 0.33333333333333 0.25000000000000 0.20000000000000该矩阵为双精度类型(double),下面将其转化为符号矩阵。,2023/11/8,第44页,H=sym(H)H=1,1/2,1/3 1/2,1/3,1/4 1/3,1/4,1/5对该矩阵进行求逆、求行列式等操作:inv(H)ans=9,-36,30-36,192,-180 30,-180,180 det(H)ans=1/2160,2023/11/8,第45页,利用左除符号“”求解线性系统:b=1 1 1;x=Hbx=3-24 30上述运算得到的结果均为精确解,如果对相同的运算采用数值解,则得到的解会存在误差,见下面的代码:digits(16)V=vpa(H),2023/11/8,第46页,V=1.,.5000000000000000,.3333333333333333.5000000000000000,.3333333333333333,.2500000000000000.3333333333333333,.2500000000000000,.2000000000000000 inv(V)ans=9.000000000000179,-36.00000000000080,30.00000000000067-36.00000000000080,192.0000000000042,-180.0000000000040 30.00000000000067,-180.0000000000040,180.0000000000038 det(V)ans=.462962962962953e-3 Vbans=3.000000000000041-24.00000000000021 30.00000000000019,2023/11/8,第47页,上面的 Hilbert 矩阵为非奇异矩阵,下面查看对奇异矩阵的操作。首先,改变矩阵 H 的第一个元素,使其成为奇异矩阵,然后对其进行运算,见下面的代码:H(1,1)=8/9;det(H)ans=0 inv(H)?Error using=sym.invError,(in inverse)singular matrix,2023/11/8,第48页,矩阵的特征值分解,在 MATLAB 中,矩阵的特征值和特征向量由函数 eig 计算。该函数的主要用法为:E=eig(A),计算符号矩阵 A 的符号特征值,返回结果为一个向量,向量的元素为矩阵 A 的特征值;V,E=eig(A),计算符号矩阵 A 的符号特征值和符号特征向量,返回结果为两个矩阵:V 和 E,V 是矩阵 A 的特征向量组成的矩阵,E 为 A 的特征值组成的对角矩阵,得到的结果满足。,2023/11/8,第49页,Jordon 标准型,当利用相似变换将矩阵对角化时会产生 Jordon 标准型。对于给定的矩阵,如果存在非奇异矩阵,使得矩阵 最接近对角形,则矩阵称为的 Jordon 标准型。MATLAB 中函数 jordan 用于计算矩阵的 Jordon 标准型。该函数的调用格式如下:J=jordan(A),计算矩阵的 Jordon 标准型;V,J=jordan(A),返回矩阵的 Jordon 标准型,同时返回相应的变换矩阵。,2023/11/8,第50页,奇异值分解,奇异值分解是矩阵分析中的一个重要内容,在理论分析和实践计算中都有着广泛的应用。在 MATLAB 中,完全的奇异值分解只对可变精度的矩阵可行。进行奇异值分解的函数为 svd,该函数的调用格式为:sigma=svd(A),计算矩阵的奇异值;sigma=svd(vpa(A),采用可变精度计算矩阵的奇异值;U,S,V=svd(A),矩阵奇异值分解,返回矩阵的奇异向量矩阵和奇异值所构成的对角矩阵。U,S,V=svd(vpa(A),采用可变精度计算对矩阵进行奇异值分解。,2023/11/8,第51页,符号方程的求解,代数方程的求解 求解代数方程组 微分方程的求解 微分方程组的求解 复合方程 反方程,2023/11/8,第52页,代数方程的求解,代数方程包括线性方程、非线性方程和超越方程等。在 MATLAB 中函数 solve 用于求解代数方程和方程组,其调用格式如下:g=solve(eq),求解方程 eq 的解,对默认自变量求解,输入的参数 eq 可以是符号表达式或字符串;g=solve(eq,var),求解方程 eq 的解,对指定自变量求解;在上面的语句中,如果输入的表达式中不包含等号,则 MATLAB 求解其等于 0 时的解。例如 g=solve(sym(x2-1)的结果与 g=solve(sym(x2-1=0)相同。对于单个方程的情况,返回结果为一个符号表达式,或是一个符号表达式组成的数组,对于方程组的情况,返回结果为一个结构体,结构体的元素为每个变量对应的表达式,各个变量按照字母顺序排列。,2023/11/8,第53页,求解代数方程组,代数方程组同样由函数 solve 函数进行,其格式为:g=solve(eq1,eq2,.,eqn),求由方程 eq1、eq2、eqn 等组成的系统,自变量为默认自变量;g=solve(eq1,eq2,.,eqn,var1,var2,.,varn),求由方程eq1、eq2、eqn 等组成的系统,自变量为指定的自变量:var1、var2、varn。,2023/11/8,第54页,微分方程的求解,MATLAB 中微分方程的求解通过函数 dsolve 进行,该函数用于求解常微分方程。,2023/11/8,第55页,dsolve函数,该函数的具体调用格式为r=dsolve(eq1,eq2,.,cond1,cond2,.,v)r=dsolve(eq1,eq2,.,cond1,cond2,.,v)其中 eq1、eq2 等表示待求解的方程,默认的自变量为。方程中用 D 表示微分,如 Dy 表示;如果在 D 后面带有数字,则表示多阶导数,如 D2y 表示。cond1、cond2 等表示初始值,通常表示为 y(a)=b 或者 Dy(a)=b。如果不指定初始值,或者初始值方程的个数少于因变量的个数,则最后得到的结果中会包含常数项,表示为 C1、C2 等。dsolve 函数最多接受 12 个输入参数。,2023/11/8,第56页,微分方程组的求解,求解微分方程组通过 dsolve 进行,格式为:r=dsolve(eq1,eq2,.,cond1,cond2,.,v)。该语句求解由参数 eq1、eq2 等指定的方程组成的系统,初值条件为 cond1、cond2 等,v 为自变量。,2023/11/8,第57页,复合方程,复合方程通过函数 compose 进行,该函数的调用格式为:compose(f,g),返回函数 f(g(y),其中 f=f(x),g=g(y),x 是 f 的默认自变量,y 是 g 的默认自变量;compose(f,g,z),返回函数 f(g(z),自变量为 z;compose(f,g,x,z),返回函数 f(g(z),指定 f 的自变量为 x;compose(f,g,x,y,z),返回函数 f(g(z),f 和 g 的自变量分别指定为 x 和 y。,2023/11/8,第58页,反方程,反方程通过函数 finverse 求得,该函数的调用格式为:g=finverse(f),在函数 f 的反函数存在的情况下,返回函数 f 的反函数,自变量为默认自变量;g=finverse(f,v),在函数 f 的反函数存在的情况下,返回函数 f 的反函数,自变量为 v。,2023/11/8,第59页,符号积分变换,符号傅立叶变换 符号拉普拉斯变换 符号 Z 变换,2023/11/8,第60页,傅立叶变换,傅立叶变换由函数 fourier 实现,该函数的调用格式为:F=fourier(f),实现函数 f 的傅立叶变换,如果 f 的默认自变量为 x,则返回 f 的傅立叶变换结果,默认自变量为 w;如果 f 的默认自变量为 w,则返回结果的默认自变量为 t;F=fourier(f,v),返回结果为 v 的函数;F=fourier(f,u,v),f 的自变量为 u,返回结果为 v 的函数。,2023/11/8,第61页,傅立叶逆变换,傅立叶逆变换由函数 ifourier 实现,该函数的调用格式为:f=ifourier(F),实现函数 F 的傅立叶逆变换,如果 F 的默认自变量为 w,则返回结果 f 的默认自变量为 x,如果 F 的自变量为 x,则返回结果 f 的自变量为 t;f=ifourier(F,u),实现函数 F 的傅立叶逆变换,返回结果 f 为 u 的函数;f=ifourier(F,v,u),实现函数 F 的傅立叶逆变换,F 的自变量为 v,返回结果 f 为 u 的函数。,2023/11/8,第62页,符号拉普拉斯变换,laplace 函数实现符号函数的拉普拉斯变换。该函数的调用格式为:laplace(F),实现函数 F 的拉普拉斯变换,如果 F 的默认自变量为 t,返回结果的默认自变量为 s;如果 F 的默认自变量为 s,则返回结果为 t 的函数;laplace(F,t),返回函数的自变量为 t;laplace(F,w,z),指定 F 的自变量为 w,返回结果为 z 的函数;,2023/11/8,第63页,拉普拉斯逆变换,拉普拉斯逆变换由函数 ilaplace 实现,该函数的调用格式为:F=ilaplace(L),实现函数 L 的拉普拉斯逆变换,如果 L 的自变量为 s,则返回结果为 t 的函数,如果 L 的自变量为 t,则返回结果为 x 的函数;F=ilaplace(L,y),返回结果为 y 的函数;F=ilaplace(L,y,x),指定 L 的自变量为 y,返回结果为 x 的函数。,2023/11/8,第64页,符号 Z 变换,Z 变换由函数 ztrans 完成,该函数的用法为:F=ztrans(f),如果 f 的默认自变量为 n,则返回结果为 z 的函数,如果 f 为函数 z 的函数,则返回结果为 w 的函数;F=ztrans(f,w),返回结果为 w 的函数;F=ztrans(f,k,w),f 的自变量为 k,返回结果为 w 的函数。,2023/11/8,第65页,Z 逆变换,Z 逆变换由函数 iztrans 完成,其调用格式为:f=iztrans(F),若 F 的默认自变量为 z,则返回结果为 n 的函数,如果 F 是 n 的函数,则返回结果为 k 的函数;f=iztrans(F,k),指定返回结果为 k 的函数;f=iztrans(F,w,k),指定 F 的自变量为 w,返回结果为 k 的函数。,2023/11/8,第66页,MAPLE 函数的调用,maple 函数的使用 mfun 函数的使用,2023/11/8,第67页,maple 函数的使用,maple 是符号工具箱中的一个通用命令,使用它可以实现对 MAPLE 中大部分函数的调用。其使用格式为:r=maple(statement),其中 statement 为符合 MAPLE 语法的可执行语句的字符串,该命令将 statement 传递给 MAPLE,该命令的输出结果也符合 MAPLE 的语法;r=maple(function,arg1,arg2,.),该函数调用引号中的函数,并接受指定的参数,相当于 MAPLE 语句 function(arg1,arg2,.);r,status=maple(.),返回函数的运行状态,如果函数运行成功,则 status 为 0,r 为运行结果;如果函数运行失败,则 status 为一个正数,r 为相应的错误信息;maple(traceon)或者 maple trace on,输出 MAPLE 函数运行中的所有子表达式和运行结果;maple(traceoff)或 maple trace off,不显示中间过程。,2023/11/8,第68页,mfun 函数的使用,mfun 函数用于对 maple 函数进行数字评估。该函数的调用格式为:Y=mfun(function,par1,par2,par3,par4)。该语句对指定的数学函数进行评估。其中 function 指定待评估的函数,par1、par2 等为 function 的参数,为待评估的数值,其维数有 function 函数的参数类型确定。在该语句中最多可以设置四个参数,最后一个参数可以为矩阵。用户可以通过 help mfunlist 查看 MATLAB 中 mfun 可以调用的函数列表,另外,可以通过 mhelp function 查看指定函数的相关信息。,2023/11/8,第69页,符号函数计算器,单变量符号函数计算器 Taylor 逼近计算器,2023/11/8,第70页,单变量符号函数计算器(1/3),在命令窗口中执行 funtool 即可调出单变量符号函数计算器。单变量符号函数计算器用于对单变量函数进行操作,可以对符号函数进行化简、求导、绘制图形等。该工具的界面如图所示。,函数 f 的图形窗口,函数 g 的图形窗口,控制窗口,2023/11/8,第71页,单变量符号函数计算器(2/3),1输入框的功能如图:,函数 f 的编辑框,函数 g 的编辑框,显示绘制 f 和 g 的图像的 x 区间,用于修改 f 的常数因子,0,函数 f 自身的操作,函数 f 与常数 a 的操作,函数 f 与函数 g 的操作,系统操作,2023/11/8,第72页,单变量符号函数计算器(3/3),单变量符号函数计算器应用示例,在 f 函数输入栏中输入 cos(x3),cos(x3),(1+x2),在 g 函数输入栏中输入(1+x2),点击,2023/11/8,第73页,Taylor 逼近计算器,Taylor 逼近计算器用于实现函数的 taylor 逼近。在命令窗口中输入 taylortool,调出Taylor 逼近计算器,界面及功能如图。,输入待逼近的函数,输入拟合函数的阶数,级数的展开点,默认为 0,输入拟合区间,