您好,欢迎来到华佗养生网。
搜索
您的当前位置:首页matlab符号运算函数大全

matlab符号运算函数大全

来源:华佗养生网
3.1 算术符号操作

命令 +、-、*、.*、\\、.\\、/、./、^、.^、’、.’ 功能符号矩阵的算术操作 用法如下:

A+B、A-B 符号阵列的加法与减法.

若A与B为同型阵列时,A+B、A-B分别对对应分量进行加减;若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行加减.

A*B 符号矩阵乘法.

A*B为线性代数中定义的矩阵乘法.按乘法定义要求必须有矩阵A的列数等于矩阵B的行数.即:若

An*k*Bk*m=n*k.*k*m=Cn*m=n*m,则,i=1,2,…,n;j=1,2,…,m.或者至少有一个为标量时,方可进行乘法操作,否则将返回一出错信息.

A.*B 符号数组的乘法.

A.*B为按参量A与B对应的分量进行相乘.A与B必须为同型阵列,或至少有一个为标量.即:An*m.*Bn*m=n*m.*n*m=Cn*m=n*m,则cij= aij* bij,i=1,2,…,n;j=1,2,…,m.

A\\B 矩阵的左除法.

X=A\\B为符号线性方程组A*X=B的解.我们指出的是,A\\B近似地等于inv*B.若X不存在或者不唯一,则产生一警告信息.矩阵A可以是矩形矩阵〔即非正方形矩阵〕,但此时要求方程组必须是相容的.

A.\\B 数组的左除法.

A.\\B为按对应的分量进行相除.若A与B为同型阵列时,An*m.\\Bn*m=n*m.\\n*m=Cn*m=n*m,则cij= aij\\

bij,i=1,2,…,n;j=1,2,…,m.若若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行操作.

A/B 矩阵的右除法.

X=B/A为符号线性方程组X*A=B的解.我们指出的是,B/A粗略地等于B*inv.若X不存在或者不唯一,则产生一警告信息.矩阵A可以是矩形矩阵〔即非正方形矩阵〕,但此时要求方程组必须是相容的.

A./B 数组的右除法.

A./B为按对应的分量进行相除.若A与B为同型阵列时,An*m./Bn*m=n*m./n*m=Cn*m=n*m,则cij=

aij/bij,i=1,2,…,n;j=1,2,…,m.若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行操作.

A^B 矩阵的方幂.

计算矩阵A的整数B次方幂.若A为标量而B为方阵,A^B用方阵B的特征值与特征向量计算数值.若A与B同时为矩阵,则返回一错误信息.

A.^B 数组的方幂.

1 / 38

A.^B为按A与B对应的分量进行方幂计算.若A与B为同型阵列时,An*m..^Bn*m=n*m..^n*m=Cn*m=n*m,则cij=

aij^bij,i=1,2,…,n;j=1,2,…,m.若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行操作.

A' 矩阵的Hermition转置.

若A为复数矩阵,则A'为复数矩阵的共轭转置.即,若A==,则.

A.' 数组转置.

A.'为真正的矩阵转置,其没有进行共轭转置.

例3-1

>>syms a b c d e f g h; >>A = [a b; c d]; >>B = [e f; g h]; >>C1 = A.*B >>C2 = A.^B >>C3 = A*B/A >>C4 = A.*A-A^2

>>syms a11 a12 a21 a22 b1 b2; >>A = [a11 a12; a21 a22]; >>B = [b1 b2];

>>X = B/A; % 求解符号线性方程组X*A=B的解 >>x1 = X<1> >>x2 = X<2>

计算结果为:

C1 =

[ a*e, b*f] [ c*g, d*h] C2 =

[ a^e, b^f] [ c^g, d^h] C3 =

[ -/, /] [ -<-c*e*d+c*d*h+c^2*f-d^2*g>/, /] C4 =

[ -b*c, b^2-a*b-b*d] [ c^2-a*c-d*c, -b*c] x1 =

<-a22*b1+b2*a21>/ x2 =

-<-a12*b1+a11*b2>/

3.2 基本运算

命令1合并同类项

2 / 38

函数collect

格式 R = collect %对于多项式S中的每一函数,collect按缺省变

量x的次数合并系数.

R = collect %对指定的变量v计算,操作同上.

例3-2

>>syms x y;

>>R1 = collect<+x>*> >>R2 = collect<*, y> >>R3 = collect<[*,x+y]>

计算结果为:

R1 =

x^2++2>*x+2*exp R2 =

y^3+x*y^2+*y+x* R3 =

[ *x+y+1, x+y]

命令2 列空间的基 函数colspace

格式 B = colspace %返回矩阵B,其列向量形成由矩阵A的列向量形

成的空间的坐标基,其中A可以是符号或数值矩阵.而

size,2>等于rank.即由A生成的空间维数等于A的秩.

例3-3

>>syms a b c

>>A = sym<[1,a;2,b;3,c]> >>B = colspace

计算结果为:

A =

[ 1, a] [ 2, b] [ 3, c] B =

[ 1, 0] [ 0, 1] [ -<3*b-2*c>/<-b+2*a>, <-c+3*a>/<-b+2*a>]

命令3 复合函数计算 函数compose

格式 compose %返回复合函数f[g],其中f=f,g=g.其中符

号x为函数f中由命令findsym 确定的符号变量,符号y为函数g中由命令findsym 确定的符号变量.

compose %返回复合函数f[g],其中f=f,g=g,符号

x、y为函数f、g中由命令findsym确定的符号变量.

3 / 38

compose %返回复合函数f[g],而令变量x为函数f中的

自变量f=f.令x=g,再将x=g代入函数f中.

compose %返回复合函数f[g].而令变量x为函数f中

的自变量f=f,而令变量y为函数g中的自变量g=g.令x=g,再将x=g代入函数f=f中,得f[g],最后用指定的变量z代替变量y,得f[g].

例3-4

>>syms x y z t u v;

>>f = 1/<1 + x^2*y>; h = x^t; g = sin; p = sqrt<-y/u>;

>>C1 = compose % 令x=g=sin,再替换f中的变量x=findsym. >>C2 = compose % 令x=g=sin,再替换f中的变量x=findsym. >>C3 = compose % 令x=g=sin,再替换h中的变量x. >>C4 = compose % 令t=g=sin,再替换h中的变量t.

>>C5 = compose % 令x=p=sqrt<-y/u>,替换h中的变量x,再将y换成z. >>C6 = compose % 令t=p=sqrt<-y/u>,替换h中的变量t,再将u换成z.

计算结果为:

C1 =

1/<1+sin^2*y> C2 =

1/<1+sin^2*y> C3 =

sin^t C4 =

x^sin C5 =

<<-z/u>^<1/2>>^t C6 =

x^<<-y/z>^<1/2>>

命令4 符号复数的共轭 函数conj

格式 conj %返回符号复数X的共轭复数 例3-5

X=real + i*imag,则conj=real - i*imag

命令5 符号复数的实数部分 函数real

格式 real %返回符号复数z的实数部分 命令6 符号复数的虚数部分 函数imag

格式 imag %返回符号复数z的虚数部分 命令7 余弦函数的整函数

格式 Y = cosint %计算余弦函数在点X处的整函数值.其中X可以是

数值矩阵,或符号矩阵.余弦函数的整函数定义为:,其中为Euler

4 / 38

常数,… i=1,2,…,size.Euler常数可以通过命令vpa<'eulergamma'>获得.

例3-6

>>cosint<7.2> >>cosint<[0:0.1:1]> >>syms x; >>f = cosint; >>diff

计算结果为:

ans =

0.0960 ans =

Columns 1 through 7

Inf -1.7279 -1.0422 -0.92 -0.3788 -0.1778 -0.0223 Columns 8 through 11

0.1005 0.1983 0.2761 0.3374 ans =

1

命令8 设置变量的精度 函数digits

格式 digits %设置当前的可变算术精度的位数为整数d位 d = digits %返回当前的可变算术精度位数给d digits %显示当前可变算术精度的位数 说明设置有意义的十进制数值的、在Maple软件中用于做可变算术精度〔命令为:vpa〕计算的数字位数.其缺省值为32位数字. 例3-7

>>z = 1.0e-16 % z为一很小的数 >>x = 1.0e+2 % x为较大的数 >>digits<14>

>>y1 = vpa % 大数1\"吃掉\"小数x*y >>digits<15>

>>y2 = vpa % 防止\"去掉\"小数x*y

计算结果为:

z =

1.0000e-016 x = 100 y1 =

1.0000000000000 y2 =

1.00000000000001

命令9 将符号转换为MATLAB的数值形式 函数double

5 / 38

格式 R = double %将符号对象S转换为数值对象R.若S为符号常数

或表达式常数,double返回S的双精度浮点数值表示形式;若S为每一元素是符号常数或表达式常数的符号矩阵,double返回S每一元素的双精度浮点数值表示的数值矩阵R.

例3-8

>>gold_ratio = double-1>/2'>> % 计算黄金分割率. >>T = sym> >>R = double

计算结果为:

gold_ratio =

0.6180 T =

[ 1, 1/2, 1/3, 1/4] [ 1/2, 1/3, 1/4, 1/5] [ 1/3, 1/4, 1/5, 1/6] [ 1/4, 1/5, 1/6, 1/7] R =

1.0000 0.5000 0.3333 0.2500 0.5000 0.3333 0.2500 0.2000 0.3333 0.2500 0.2000 0.1667 0.2500 0.2000 0.1667 0.1429

命令10 符号表达式的展开 函数expand

格式 R = expand %对符号表达式S中每个因式的乘积进行展开计算.

该命令通常用于计算多项式函数、三角函数、指数函数与对数函数等表达式的展开式.

例3-9

>>syms x y a b c t

>>E1 = expand<**> >>E2 = expand>

>>E3 = expand^3>> >>E4 = expand>> >>E5 = expand<[sin<2*t>, cos<2*t>]>

计算结果为:

E1 =

x^2*y-x^2*t-6*x*y+6*x*t+8*y-8*t E2 =

cos*cos-sin*sin E3 =

exp*exp^3*exp^3*exp E4 =

log> E5 =

6 / 38

[ 2*sin*cos, 2*cos^2-1]

命令11 符号因式分解 函数factor

格式 factor %参量x可以是正整数、符号表达式阵列或符号整数阵列.

若X为一正整数,则factor返回X的质数分解式.若x为多项式或整数矩阵,则factor分解矩阵的每一元素.若整数阵列中有一元素位数超过16位,用户必须用命令sym生成该元素.

例3-10

>>syms a b x y

>>F1 = factor

>>F2 = factor<[a^2-b^2, x^3+y^3]>

计算结果为:

F1 =

** F2 =

[*, *] F3 =

<2>*<3>^2*<5>*<101>*<3803>*<3607>*<27961>*<3541>

命令12 符号表达式的分子与分母 函数numden

格式 [N,D] = numden

说明将符号或数值矩阵A中的每一元素转换成整系数多项式的有理式形式,其中分子与分母是相对互素的.输出的参量N为分子的符号矩阵,输出的参量D为分母的符号矩阵. 例3-11

>>syms x y a b c d;

>>[n1,d1] = numden>> >>[n2,d2] = numden >>A = [a, 1/b;1/c d]; >>[n3,d3] = numden

计算结果为:

n1 = d1 = n2 =

x^2+y^2 d2 = y*x n3 =

[ a, 1] [ 1, d] d3 =

[ 1, b] [ c, 1]

7 / 38

命令13 搜索符号表达式的最简形式 函数simple

格式 r = simple %该命令试图找出符号表达式S的代数上的简单形式,

显示任意的能使表达式S长度变短的表达式,且返回其中最短的一个.若S为一矩阵,则结果为整个矩阵的最短形式,而非是每一个元素的最简形式.若没有输出参量r,则该命令将显示所有可能使用的算法与表达式,同时返回最短的一个.

[r,how] = simple %没有显示中间的化简结果,但返回能找到的最

短的一个.输出参量r为一符号,how为一字符串,用于表示算法.

例3-12

>>syms x

>>R1 = simple^4+sin^4> >>R2 = simple<2*cos^2-sin^2> >>R3 = simple^2-sin^2>

>>R4 = simple+<-sin^2>^<1/2>> >>R5 = simple+i*sin> >>R6 = simple< *x*> >>R7 = simple >> [R8,how] = simple>>

计算的结果为:

R1 =

1/4*cos<4*x>+3/4 R2 =

3*cos^2-1 R3 =

cos<2*x> R4 =

cos+i*sin R5 =

exp R6 =

x ^3-x R7 =

^3 R8 =

4*x^3-3*x how =

expand

命令14 符号表达式的化简 函数simplify

格式 R = simplify

说明使用Maple软件中的化简规则,将化简符号矩阵S中每一元素.

8 / 38

例3-13

>>syms x a b c

>>R1 = simplify^4 + cos^4> >>R2 = simplify>>> >>S = [/,sqrt<16>]; >>R3 = simplify

计算结果为:

R1 =

2*cos^4+1-2*cos^2 R2 =

^<1/2*c> R3 =

[ x+3, 4]

命令15 符号矩阵的维数 函数size

格式 d = size %若A为m*n阶的符号矩阵,则输出结果d=[m,n]. [m,n] = size %分别返回矩阵A的行数于m,列数于n.

d= size %返回由标量n指定的A的方向的维数:n=1为行

方向,n=2为列方向.

例3-14

>>syms a b c d

>>A = [a b c ; a b d; d c b; c b a]; >>d = size >>r = size

计算结果为:

d =

4 3 r = 3

命令16 代数方程的符号解析解 函数solve

格式 g = solve %输入参量eq可以是符号表达式或字符串.若eq是一

符号表达式x^2 -2*x-1或一没有等号的字符串’x^2-2*x-1’,则solve对方程eq中的缺省变量<由命令findsym确定的变量>求解方程eq=0.若输出参量g为单一变量,则对于有多重解的非线性方程,g为一行向量.

g = solve %对符号表达式或没有等号的字符串eq中指定的

变量var求解方程eq=0.

g = solve %输入参量eq1,eq2,…,eqn可以是符号表

达式或字符串.该命令对方程组eq1,eq2,…,eqn中由命令findsym确定的n个变量如x1,x2,…,xn求解.若g为一单个变量,则g为一包含n个解的结构;若g为有n个变量的向量,则分别返回结果给相应的变量.

9 / 38

g = solve %对方程组

eq1,eq2,…,eqn中指定的n个变量如var1,var2,…,varn求解.

注意:对于单个的方程或方程组,若不存在符号解,则返回方程〔组〕的数值解. 例3-15

>>solve<'a*x^2 + b*x + c'> >>solve<'a*x^2 + b*x + c','b'> >>solve<'x + y = 1','x - 11*y = 5'>

>>A = solve<'a*u^2 + v^2', 'u - v = 1', 'a^2 - 5*a +6'>

计算结果为:

ans =

[ 1/2/a*<-b+^<1/2>>] [ 1/2/a*<-b-^<1/2>>] ans = -/x ans = x: [1x1 sym] y: [1x1 sym] A =

a: [4x1 sym] u: [4x1 sym] v: [4x1 sym]

命令17 以共同的子表达式形式重写一符号表达式 函数subexpr

格式 [Y,SIGMA] = subexpr

[Y,SIGMA] = subexpr

说明找出符号表达式 X中相同的子表达式,再结合命令pretty将X中相同的、比较复杂的子字符串用符号%1,%2,…代替.而用命令pretty将X中相同的、比较复杂的子字符串用符号SIGMA代替. 例3-16

>>t = solve<'a*x^3+b*x^2+c*x+d = 0'>; >> [r,s] = subexpr; >>pretty >>pretty

计算结果为:〔略〕 命令18 特征多项式 函数poly

格式 p = poly或p = poly

说明若A为一数值阵列,则返回矩阵A的特征多项式的系数,且有:命令

poly>近似等于poly2sym>.其近似程度取决于舍入误差的大小.若A为一符号矩阵,则返回矩阵A的变量为x的特征多项式.若带上参量v,则返回变量为v的特征多项式. 例3-17

>>A = hilb<4>; >>p = poly

10 / 38

>>q = poly> >>s = poly,z>

计算结果为:

p =

1.0000 -1.6762 0.2652 -0.0017 0.0000 q =

x^4-176/105*x^3+3341/12600*x^2-41/23625*x+1/6048000 s =

-176/105*z^3+3341/12600*z^2-41/23625*z+1/6048000+z^4

命令19 将多项式系数向量转化为带符号变量的多项式 函数poly2sym

格式 r = poly2sym和r = poly2sym

说明将系数在数值向量c中的多项式转化成相应的带符号变量的多项式〔按次数的降幂排列〕.缺省的符号变量为x;

若带上参量v,则符号变量用v显示.poly2sym使用命令sym的缺省转换模式〔有理形式〕将数值型系数转换为符号常数.该模式将数值转换成接近的整数比值的表达式,否则用2的幂指数表示.若x有一数值值,且命令sym能将c的元素精确表示,则eval>的结果与polyval相同. 例3-18

>>r1 = poly2sym<[1 2 3 4]>

>>r2 = poly2sym<[.694228, sqrt<2>, sin]> >>r3 = poly2sym<[1 0 1 -1 2], y>

计算结果为:

r1 =

x^3+2*x^2+3*x+4 r2 = r3 =

y^4+y^2-y+2

命令20 将复杂的符号表达式显示成我们习惯的数学书写形式 函数pretty

格式 pretty %用缺省的线型宽度79显示符号矩阵s中每一元素 pretty %用指定的线型宽度n显示 例3-19

>>A = sym>; >>B = eig

>>pretty % 多看几次结果,会发现该命令显示的特点 >>syms x

>>y=log/sqrt; >>dy = diff >>pretty

计算结果为:

B =

[ 1] [ 4+15^<1/2>]

11 / 38

[ 4 -15^<1/2>] [ 1 ] [ ] [ 1/2] [4 + 15 ] [ ] [ 1/2] [4 - 15 ] dy =

1/x^<3/2>-1/2*log/x^<3/2> 1 log ---- - 1/2 ------- 3/2 3/2 x~ x~

命令21 从一符号表达式中或矩阵中找出符号变量 函数findsym

格式 r = findsym %以字母表的顺序返回表达式S中的所有符号变量

〔注:符号变量为由字母〔除了i与j〕与数字构成的、字母打头的字符串〕.若S中没有任何的符号变量,则findsym返回一空字符串.

r = findsym %返回字母表中接近x的n个符号变量

例3-20

>>syms a x y z t alpha beta

>>1 = findsym> >>S2 = findsym >>S3 = findsym

计算结果为;

S1 =

pi, alpha, beta, t S2 = NaN, x, y, z S3 = a, y

命令22 函数的反函数 函数finverse

格式 g = finverse %返回函数f 的反函数.其中f为单值的一元数学函

数,如f=f.若f的反函数存在,设为g,则有g[f] = x.

g = finverse %若符号函数f中有几个符号变量时,对指定的符号自

变量v计算其反函数.若其反函数存在,设为g,则有g[f] = v.

例3-21

>>syms x p q u v;

>>V1 = finverse<1/<*>> >>V2 = finverse,u>

计算结果为:

12 / 38

Warning: finverse<1//> is not unique. > In D:\\MATLABR12\oolbox\\symbolic\\sym\\finverse.m at line 43 V1 =

1/2/x*2^<1/2>*^<1/2>>>^<1/2> V2 =

2*v+log

命令23 嵌套形式的多项式的表达式 函数horner

格式 R = horner

%若P为一符号多项式的矩阵,该命令将矩阵的每一

元素转换成嵌套形式的表达式R.

例3-22

>>syms x y

>>H1 = horner<2*x^4-6*x^3+9*x^2-6*x-4> >>H2 = horner<[x^2+x*y;y^3-2*y]>

计算结果为:

H1 =

-4+<-6+<9+<-6+2*x>*x>*x>*x H2 =

[ x^2+x*y] [ <-2+y^2>*y]

命令24 符号表达式求和 函数symsum

格式 r = symsum %对符号表达式s中的符号变量k〔由命令

findsym确定的〕从0到k-1求和

r = symsum %对符号表达式s中指定的符号变量v从0到v-1

求和

r = symsum %对符号表达式s中的符号变量k〔由命令

findsym确定的〕从a到b求和

r = symsum %对符号表达式s中指定的符号变量v从a到

b求和 例3-23

>>syms k n x

>>r1 = symsum >>r2 = symsum

>>r3 = symsum/k,0,n> >>r4 = symsum

>>r5 = symsum, k, 0,inf> %为使k!通过MATLAB表达式的检验,必须

把它作为一符号表达式.

计算结果为:

r1 =

1/4*k^4-1/2*k^3+1/4*k^2 r2 =

1/3*k^3-k^2+2/3*k

13 / 38

r3 =

-1/2*sin>/k+1/2*sin/k/-1>*cos>-1/2*sin/k/-1> r4 = 385 r5 = exp

命令25 广义超几何函数 函数hypergeom

格式 hypergeom %该命令为广义超几何函数F,即已知的

Barnes扩展超几何函数,记做jFk,其中j=length,k=length.对于标量a,b与c,hypergeom<[a,b],c, z>为Gauss超几何函数2F1.

说明超几何函数的定义为:,其中 例3-24

>>syms a z n

>>H1 = hypergeom<[],[],z> >>H2 = hypergeom<1,[],z> >>H3 = hypergeom<1,2,'z'> >>H4 = hypergeom<[1,2],[2,3],'z'> >>H5 = hypergeom >>H6 = hypergeom<[],1,-z^2/4>

>>H7 = hypergeom<[-n, n],1/2,<1-z>/2>

计算结果为:

H1 =

exp H2 =

-1/<-1+z> H3 =

-1>/z H4 =

-2*<-exp+1+z>/z^2 H5 =

<1-z>^<-a> H6 =

besselj<0,z> H7 =

hypergeom<[n, -n],[1/2],1/2-1/2*z> 3.2.1 函数计算器

函数funtool

格式 funtool %该命令将生成三个图形窗口,Figure No.1用于显示函数f的

图形,Figure No.2用于显示函数g的图形,Figure No.3为一可视化的、可操作与显示一元函数的计算器界面.在该界

14 / 38

面上由许多按钮,可以显示两个由用户输入的函数的计算结果:加、乘、微分等.funtool还有一函数存储器,允许用户将函数存入,以便后面调用.在开始时,funtool显示两个函数f = x与g = 1在区间[-2*pi, 2*pi]上的图

形.Funtool同时在下面显示一控制面板,允许用户对函数f、g进行保存、更正、重新输入、联合与转换等操作.

输入命令funtool后,生成的界面如下:

图3-1 函数工具funtool界面

图3-2 函数f的图形图3-3 函数g的图形

说明文本输入框区域:控制面板的上面几行,可以输入文本;

f = :显示代表函数f的符号表达式,可在该行输入其他有效的表达式来定义

f,再按回车键即可在Figure No.1中画出图形;

g = :显示代表函数g的符号表达式,可在该行输入其他有效的表达式来定义

g,再按回车键即可在Figure No.2中画出g图形;

x = :显示用于画函数f与g的区间.可在该行输入其他的不同区间,再按回

车键即可改变Figure No.1与Figure No.2中的区间;

a = :显示一用于改变函数f的常量因子<见下面的操作按钮>.可在该行输入

不同的常数.

控制按钮区域:该区域有一些按钮,按下它们将对函数f转换成不同的形式与执行不同的操作.

df/dx:函数f的导数;

int f:函数f的积分<没有常数的一个原函数>,当函数f的原函数不能用初等

函数表示时,操作可能失败;

simple f:化简函数f〔若有可能〕; num f:函数f 的分子; den f:函数f的分母; 1/f:函数f的倒数;

finv:函数f的反函数,若函数f 的反函数不存在,操作可能失败; f+a:用f+a代替函数f; f-a:用f-a代替函数f; f*a:用f+a代替函数f; f/a:用f/a代替函数f; f^a:用f^a代替函数f; f:用f代替函数f; f:用f代替函数f; f+g:用f+g代替函数f; f-g:用f-g代替函数f; f*g:用f*g代替函数f; f/g:用f/g代替函数f; g=f:用函数f代替函数g; swap:函数f与g互换;

Insert:将函数f保存到函数内存列表中的最后; Cycle:用内存函数列表中的第二项代替函数f

15 / 38

Delete:从内存函数列表中删除函数f; Reset:重新设置计算器为初始状态; Help:显示在线的关于计算器的帮助; Demo:运行该计算器的演示程序; Close:关闭计算器的三个窗口. 3.2.2 微积分

命令1 极限 函数limit

格式 limit %计算符号表达式F=F的极限值,当x→a时.

limit %用命令findsym确定F中的自变量,设为变量x,再计

算F的极限值,当x→a时.

limit %用命令findsym确定F中的自变量,设为变量x,再

计算F的极限值,当x→0时.

limit或limit %计算符号函数F的单侧极

限:左极限x→a- 或右极限x→a+.

例3-25

>>syms x a t h n;

>>L1 = limit<-1>/x> >>L2 = limit<1/x^2,x,0,'right'> >>L3 = limit<1/x,x,0,'left'>

>>L4 = limit<-log>/h,h,0> >>v = [<1+a/x>^x, exp<-x>]; >>L5 = limit

>>L6 = limit<<1+2/n>^<3*n>,n,inf>

计算结果为:

L1 = 0 L2 = inf L3 = -inf L4 = 1/x L5 =

[ exp, 0] L6 =

exp<6>

命令2 导数〔包括偏导数〕 函数diff

格式 diff、diff> %对表达式S中指定符号变量v计算S的1阶导数.

diff %对表达式S中的符号变量v计算S的1阶导数,其中v=findsym.

16 / 38

diff %对表达式S中的符号变量v计算S的n阶导数,其中v=findsym.

diff %对表达式S中指定的符号变量v计算S的n阶导数. 例3-26

>>syms x y t

>>D1 = diff*y^2,2> %计算 >>D2 = diff %计算 >>D3 = diff

计算结果为:

D1 =

-4*sin*x^2*y^2+2*cos*y^2 D2 =

-8*sin*x^2*y+4*cos*y D3 = 720

命令3 符号函数的积分 函数int

格式 R = int %对符号表达式S中指定的符号变量v计算不定积分.

注意的是,表达式R只是函数S的一个原函数,后面没有带任意常数C.

R = int %对符号表达式S中的符号变量v计算不定积分,其中

v=findsym.

R = int %对表达式s中指定的符号变量v计算从a到b的

定积分

R = int %对符号表达式s中的符号变量v计算从a到b的

定积分,其中v=findsym.

例3-27

>>syms x z t alpha

>>INT1 = int<-2*x/<1+x^3>^2> >>INT2 = int,z> >>INT3 = int

>>INT4 = int,0,1> >>INT5 = int<2*x, sin, 1>

>>INT6 = int<[exp,exp]>

计算结果为:

INT1 =

-2/9/+2/9*log-1/9*log-2/9*3^<1/2>*atan<1/3*<2*x-1>*… 3^<1/2>>-2/9*<2*x-1>/ INT2 = x*atan INT3 =

1/2*x^2*atan INT4 = 1/4

17 / 38

INT5 =

1-sin^2 INT6 =

[ exp, 1/alpha*exp]

命令4 常微分方程的符号解 函数 dsolve

格式 r = dsolve<'eq1,eq2,…','cond1,cond2,…','v'>

说明 对给定的常微分方程〔组〕eq1,eq2,…中指定的符号自变量v,与给定的边界条件和初始条件cond1,cond2,….求符号解〔即解析解〕r;若没有指定变量v,则缺省变量为t;在微分方程〔组〕的表达式eq中,大写字母D表示对自变量<设为x>的微分算子:D=d/dx,D2=d2/dx2,….微分算子D后面的字母则表示为因变量,即待求解的未知函数.初始和边界条件由字符串表示:y=b,Dy=d,D2y=f,等等,分别表示,,;若边界条件少于方程〔组〕的阶数,则返回的结果r中会出现任意常数C1,C2,…;dsolve命令最多可以接受12个输入参量〔包括方程组与定解条件个数,当然我们可以做到输入的方程个数多于12个,只要将多个方程置于一字符串内即可〕.若没有给定输出参量,则在命令窗口显示解列表.若该命令找不到解析解,则返回一警告信息,同时返回一空的sym对象.这时,用户可以用命令ode23或ode45求解方程组的数值解. 例3-28

>>D1 = dsolve<'D2y – Dy =exp'> >>D2 = dsolve<'t*D2f = Df*log</t>'> >>D3 = dsolve<'^2 + y^2 = 1','s'>

>>D4 = dsolve<'Dy = a*y', 'y<0> = b'> % 带一个定解条件

>>D5 = dsolve<'D2y = -a^2*y', 'y<0> = 1', 'Dy = 0'> % 带两个定解条件 >>[x,y] = dsolve<'Dx = y', 'Dy = -x'> % 求解线性微分方程组 >>[u,v] = dsolve<‘Du=u+v,Dv=u-v’>

计算结果为:

D1 =

-exp*t+C1+C2*exp D2 =

y=Int,`$`>/diff,t>>*t,t>+C1 D3 =

[ -1] [ 1] [ sin] [ -sin] D4 =

b*exp D5 =

cos x =

cos*C1+sin*C2 y =

-sin*C1+cos*C2

18 / 38

u =

1/2*C1*exp<2^<1/2>*t> - 1/4*C1*2^<1/2>*exp<-2^<1/2>*t> + 1/4*C1*2^<1/2> *exp <2^<1/2>*t> + 1/2*C1*exp<-2^<1/2>*t> - 1/4*C2*2^<1/2>*exp<-2^<1/2>*t> + 1/4*C2 *2^<1/2>*exp<2^<1/2>*t> v =

-1/4*C1*2^<1/2>*exp<-2^<1/2>*t>+1/4*C1*2^<1/2>*exp<2^<1/2>*t>+1/2*C2*exp

<2^<1/2>*t>+1/4*C2*2^<1/2>*exp<-2^<1/2>*t>-1/4*C2*2^<1/2>*exp<2^<1/2>*t>+ 1/2*C2*exp<-2^<1/2>*t>

3.2.3 符号函数的作图

命令1 画符号函数的等高线图 函数ezcontour

格式 ezcontour %画出二元符号函数f=f的等高线图.函数f将被

显示于缺省的平面区域[-2πezcontour %在指定的定义域domain内画出二元函数

f,参量domain可以是四维向量

[xmin,xmax,ymin,ymax]或二维向量[min,max]〔其中显示区域为:minezcontour<…,n> %用指定n*n个栅格点〔对定义域的一种划分〕,

在缺省〔若没有指定〕的区域内画出函数f的图形.n的缺省值为60.

说明该命令用函数表达式作为标题显示,同时显示坐标轴的恰当的刻度标签. 例3-29

>>syms x y

>>f =

<1-x>^2*exp<--^2>-5**sin<-x^2-y^2>-1/3*exp<-^2-y^2>;

ezcontour

图形结果为图3-4.

命令2 用不同颜色填充的等高线图 函数ezcontourf

格式 ezcontourf %画出二元符号函数f=f的等高线图,且在不同的

等高线之间自动用不同的颜色进行填充.函数f将被显示于缺省的平面区域[-2πezcontourf %在指定的定义域domain内画出二元函数f

的等高线图,且在不同的等高线之间自动用不同的颜色进行填充.定义域domain可以是四维向量

[xmin,xmax,ymin,ymax]或二维向量[min,max]〔其中显示区域为:min19 / 38

ezcontourf<…,n> %用指定n*n个栅格点〔对定义域的一种划分〕,

在缺省〔若没有指定〕的区域内画出函数f的等高线图,且在不同的等高线之间自动用不同的颜色进行填充.n的缺省值为60.

例3-30

>>syms x y >>f =

<1-x>^2*exp<--^2>-5**sin<-x^2-y^2>-1/3*exp<-^2-y^2>;

ezcontourf

图形结果为图3-5.

图3-4 等高线图图3-5 等高线填充图

命令3 符号函数的三维网格图 函数ezmesh

格式 ezmesh %画出二元数学符号函数f=f的网格图.函数f将显

示于缺省的平面区域[-2πezmesh %在指定的定义域domain内画出二元函数f

的网格图,定义域domain可以是四维向量

[xmin,xmax,ymin,ymax]或二维向量[min,max]〔其中显示区域为:minezmesh %在缺省的矩形定义域范围[-2π内画参数形式函数x=x、y=y、z=z的二元函数z=f的网格图.

ezmesh %在指定的矩形定义域范围

[smin、y=y、z=z的二元函数z=f的网格图.

ezmesh %用指定的矩形定义域

[min的网格图.

ezmesh %用指定n*n个栅格点,在缺省〔若没有指定〕的区

域内画出函数f网的图形.n的缺省值为60.

ezmesh<…,'circ'> %在一圆形区域〔圆心位于定义域在中心〕的范围

内画出函数f的网格图形.

例3-31

>>syms x y

>>ezmesh,40,’circ’> >>colormap [0 0 1]

图形结果为:〔图3-6〕

命令4 同时画出曲面网格图与等高线图 函数ezmeshc

格式 ezmeshc %画出二元数学符号函数z=f的网格图形,同时在

xy平面上显示其等高线图.函数f将被显示于缺省的平

20 / 38

面区域[-2πezmeshc %在指定的定义域domain内画出二元函数f

的网格图与其等高线图,domain可以是四维向量

[xmin,xmax,ymin,ymax]或二维向量[min,max]<其中显示区域为:min.

ezmeshc %在缺省的矩形定义域范围[-2π内画出参数形式函数x=x、y=y、z=z的二元函数z=f的网格图形与其等高线图.

ezmeshc %在指定的矩形定义域范围

[smin、y=y、z=z的二元函数z=f的网格图形与其等高线图.

ezsurfc %用指定的定义域[min画出函数z=f的网格图与等高线图.

ezmeshc %用指定n*n个栅格点,在缺省〔若没有指定〕的

区域内画出函数f的网格图形与等高线图.n的缺省值为60.

ezmeshc<…,'circ'> %在一圆形区域〔圆心位于定义域在中心〕的范

围内画出函数f的网格图形与其等高线图.

例3-32

>>syms x y

>>ezmeshc,[-5,5,-2*pi,2*pi],35>

图形结果为图3-7.

图3-6 三维网格图图3-7 网格等高线图

命令5 画符号函数的图形 函数ezplot

格式 ezplot %对于显式函数f=f,在缺省的范围[-πf;对于隐函数f=f,在缺省的平面区域[-2π的图形.

ezplot %在指定的范围[minf=f.若没有图形窗口存在,则该命令先生成标题为Figure No.1的新窗口,再在该窗口中操作;若已经有图形窗口存在,则在标号最高的图形窗口中进行操作.

ezplot %在指定标号fign的窗口中、指定的范围

[xmin xmax]内画出函数f=f的图形.

ezplot %在平面矩形区域[xminymin=0的图形.

ezplot %在缺省的范围0

y=y的图形.

ezplot %在指定的范围[tmin < t < tmax]内画参数形

式函数x=x与y=y的图形.

21 / 38

ezplot<…,figure> %在由参量figure句柄指定的图形窗口中画函数

图形. 例3-33

>>syms x y >>ezplot

图形结果为图3-8. 例3-34

>>syms x

>>ezplot*sin/x> >>grid on

图形结果为图3-9.

命令6 三维参量曲线图

函数ezplot3

格式 ezplot3 %在缺省的范围0x=x、y=y与z=z的图形.

ezplot3 %在指定的范围tmin < t < tmax.内画空间

参数形式的曲线x=x、y=y与z=z的图形.

ezplot3<…,'animate'> %以动画形式画出空间三维曲线.

图3-8 隐函数图图3-9 显函数图

例3-35

>>syms t;

>>ezplot3, t*cos, t,[0,20*pi]>

图形结果为图3-10. 命令7 画极坐标图形 函数ezpolar

格式 ezpolar %在缺省的范围0rho=f的图形.且将函数关系式显示于图形下方.

ezpolar %在指定的范围arho=f的图形.且将函数关系式显示于图形下方.

例3-36

>>syms t

>>ezpolar<1+cos<5*t>>

命令8 三维带颜色的曲面图 函数ezsurf

格式 ezsurf %画出二元数学符号函数z=f的曲面图形.函数f将显

示于缺省的平面区域[-2πezsurf %在指定的定义域domain内画出二元函数f

的曲面图形,domain可以是四维向量[xmin,xmax,ymin,ymax],或者是二维向量[min,max] <其中有min. ezsurf %在缺省的矩形定义域范围-2π画出参数形式函数x=x、y=y与z=z的曲面图形.

22 / 38

ezsurf或ezsurf %用

指定的定义域画出参数形式的曲面图形

ezsurf<…,n> %用指定n*n个栅格点,在缺省〔若没有指定〕的区域

内画出函数f的图形,n的缺省值为60.

ezsurf<…,'circ'> %在一圆形中心位于定义域在中心的范围内画出函

数f的曲面图形

例3-37

>>syms x y

>>ezsurf>>

图形结果为图3-12.

命令9 同时画出曲面图与等高线图 函数ezsurfc

格式 ezsurfc %画出二元数学符号函数z=f的曲面图形与其等高

线图.函数f将显示于缺省的平面区域

[-2πezsurfc %在指定的定义域domain内画出二元函数f

的曲面图形与其等高线图,domain可以是四维向量[xmin,xmax,ymin,ymax]或二维向量[min,max]<其中有min.

ezsurfc %在缺省的矩形定义域范围-2π内画出参数形式函数x=x、y=y与z=z的曲面图形与等高线图.

ezsurfc或ezsurfc %

用指定的定义域画出参数形式的曲面图形与等高线图

ezsurfc<…,n> %用指定n*n个栅格点,在缺省〔若没有指定〕的区域

内画出函数f的曲面图形与等高线图,n的缺省值为60.

ezsurfc<…,'circ'> 在一圆形中心位于定义域的中心范围内画出函数f的

曲面图形与等高线图

例3-38

>>syms x y

>>ezsurfc,[-5,5,-2*pi,2*pi],35,’circ’> 3.2.4 积分变换

命令1 Fourier积分变换 函数fourier

格式 F = fourier

说明对符号单值函数f中的缺省变量x〔由命令findsym确定〕计算Fourier变换形式.缺省的输出结果F是变量w的函数:

若f = f,则fourier返回变量为t的函数:F= F.

F = fourier 对符号单值函数f中的指定变量v计算Fourier变换形式: F = fourier 令符号函数f为变量u的函数,而F为变量v的函数: 例3-39

>>syms x w u v

23 / 38

>>f = sin*exp<-x^2>; F1 = fourier >>g = log>; F2 = fourier >>h = x*exp<-abs>; F3 = fourier >>syms x real

>>k = cosh<-x^2*abs>*sinh/v >>F4 = fourier

计算结果为:

F1 =

-1/2*i*pi^<1/2>*exp<-1/4*^2>+1/2*i*pi^<1/2>*exp<-1/4*^2> F2 =

fourier>,w,t> F3 =

-4*i/<1+u^2>^2*u F4 =

sinh*<1/2*fourier<1/v*exp>,v,u>-i*atan>

命令2 逆Fourier积分变换 函数ifourier

格式 f = ifourier

说明输出参量f = f为缺省变量w的标量符号对象F的逆Fourier积分变换.即:F = F → f = f.若F = F,ifourier返回变量t的函数:即:F = F → f = f.逆Fourier积分变换定义为:

f = ifourier 使函数f为变量u〔u为标量符号对象〕的函数: f = ifourier 使F为变量v的函数,f为变量u的函数: 例3-40

>>syms w v x t >>syms a real

>>f = sqrt>>; >>IF1 = ifourier >>g = exp<-abs>; >>IF2 = ifourier

>>h = sinh<-abs> – 1; >>IF3 = simple> >>syms w real

>>k = exp<-w^2*abs>*sin/v; >>IF4 = ifourier

计算结果为:

IF1 =

ifourier^<1/2>,w,x> IF2 =

1/<1+t^2>/pi IF3 =

-1/2*>,w,t>+pi*ifourier>,w,t>*t^2-…

1+2*pi*Dirac>/<1+t^2>/pi IF4 =

24 / 38

1/2*/w^2>-atan</w^2>>/pi

命令3 Laplace变换 函数 laplace

格式 L = laplace

说明输出参量L = L为有缺省符号自变量t的标量符号对象F的Laplace变换.即:F = F → L = L.若F = F,则fourier返回变量为t的函数L. 即:F = F → L = L.Laplace变换定义为:

laplace 使函数L为变量t〔t为标量符号自变量〕的函数: fourier 使L为变量z的函数,F为变量w的函数: 例3-41

>>syms x s t v >>f1= sqrt; >>L1 = laplace >>f2 = 1/sqrt; >>L2 = laplace >>f3 = exp<-a*t>; >>L3 = laplace >>f4 = 1 - sin; >>L4 = laplace

计算结果为:

L1 =

1/ L2 =

^<1/2> L3 =

1/ L4 =

1/x-t/

命令4 逆Laplace变换 函数 ilaplace

格式 F = ilaplace

说明 输出参量F = F为缺省变量s的标量符号对象L的逆Laplace变换

即:F = F → f = f.若L = L,则ifourier返回变量为x的函数F.即:F = F → f = f.逆Laplace变换定义为:

其中c为使函数L的所有的奇点位于直线s = c左边的实数.

F = ilaplace 使函数F为变量y〔y为标量符号对象〕的函数: F = ilaplace 使F为变量x的函数,L为变量y的函数: 例3-42

>>syms a s t u v x >>f = exp; >>IL1 = ilaplace >>g = 1/^2; >>IL2 = ilaplace >>k = 1/;

25 / 38

>>IL3 = ilaplace >>y = s^3*v/; >>IL4 = ilaplace

计算结果为:

IL1 =

ilaplace,s,t> IL2 =

x*exp IL3 =

1/<-a^2>^<1/2>*sin<<-a^2>^<1/2>*x> IL4 =

s^3*cos<^<1/2>*x>

命令5 Riemann ζ-函数 函数zeta

格式 Y = zeta %计算数值矩阵、或符号矩阵参量x中每一元素的ζ-函数值.ζ-函数定义为:

Y = zeta %返回ζ函数的n阶导数 例3-43

>>syms x y

>>Y1 = zeta<1.5>

>>Y2 = zeta<1.2:0.1:2.1> >>Y3 = zeta<[x 2;4 x+y]> >>DZ = diff,x,3>

计算结果为:

Y1 =

2.6124 Y2 =

Columns 1 through 7

5.5916 3.9319 3.1055 2.6124 2.2858 2.0543 1.8822 Columns 8 through 10

1.7497 1.49 1.5602 Y3 =

[ zeta, zeta<2,2>] [ zeta<4,2>, zeta] DZ =

zeta<3,x>

命令6 z-变换 函数ztrans

格式 F = ztrans %对缺省自变量为n〔就像由命令findsym确定的一样〕

的单值函数f计算z-变换.输出参量F为变量z的函数:f = f → F = F.函数f的z-变换定义为:

若函数f = f ,则ztrans返回一变量为w的函数:f = f → F = F F = ztrans %用符号变量w代替缺省的z作为函数F的自变量

F = ztrans %对函数f中指定的符号变量k计算z-变换:

26 / 38

例3-44

>>syms a k w x n z >>f1 = n^4; >>ZF1 = ztrans >>f2 = a^z; >>ZF2 = ztrans >>f3 = sin; >>ZF3 = ztrans >>f4 = exp*cos; >>ZF4 = ztrans

计算结果为:

ZF1 =

z*/^5 ZF2 =

w/a/ ZF3 =

-w*sin/<-w^2+2*w*cos-1> ZF5 =

-cos>*x/exp/^2-2*x/exp*cos+1>

命令7 逆z-变换 函数iztrans

格式 f = iztrans

说明输出参量f = f为有缺省变量z的单值符号函数F的逆z-变换.即:F = F → f = f.若F = F,则iztrans返回变量为k的函数f. 即:F = F → f = f.逆z-变换定义为:,n =1,2,3,…

其中R为一正实数,它使函数F在圆域之外 |z|≥R是解析的.

f = iztrans 使函数f为变量k〔k为标量符号对象〕的函数

f:,k=1,2,3,…

f = iztrans 使函数F为变量w的函数,f为变量k的函

数:,k=1,2,3,…

例3-45

>>syms a n k x z

>>f1= 2*z/^2; >>IZ1 = iztrans >>f2 = n/; >>IZ2 = iztrans >>f3 = z/sqrt; >>IZ3 = iztrans

>>f4 = exp/>; >>IZ4 = iztrans

计算结果为:

IZ1 =

-1/8*sum<1/_alpha*<1/_alpha>^n,_alpha IZ2 =

27 / 38

<-1>^k IZ3 =

iztrans^<1/2>,z,k> IZ4 =

1/4*<-charfcn[0]-2*charfcn[1]*exp+2^k*exp^k>/exp

3.2.5 Taylor级数

命令1 符号函数的Taylor级数展开式 函数taylor

格式 r = taylor %返回符号表达式f中的、指定的符号自变量v〔若

表达式f中有多个变量时〕的n-1阶的Maclaurin多项式〔即在零点附近v=0〕近似式,其中v可以是字符串或符号变量.

r = taylor %返回符号表达式f中的、符号变量v的6阶的

Maclaurin多项式〔即在零点附近v=0〕近似式,其中v=findsym.

r = taylor %返回符号表达式f中的、指定的符号自变量v的n-1

阶的Taylor级数〔在指定的a点附近v=a〕的展开式.其中a可以是一数值、符号、代表一数字值的字符串或未知变量.我们指出的是,用户可以以任意的次序输入参量n、v与a,命令taylor能从它们的位置与类型确定它们的目的.解析函数f在点x=a的Taylor级数定义为:

例3-46

>>syms x y a pi m m1 m2 >>f = sin; >>T1 = taylor >>T2 = taylor >>T3 = taylor >>T4 = taylor >>T5 = taylor >>T6 = taylor

>>T7 = taylor % 或taylor >>T8 = taylor >>T9 = taylor

计算结果为:

T1 =

1/2*3^<1/2>+1/2*x-1/4*3^<1/2>*x^2-1/12*x^3+1/48*3^<1/2>*x^4+1/240*x^5 T2 =

1/2*3^<1/2>+1/2*x-1/4*3^<1/2>*x^2-1/12*x^3+1/48*3^<1/2>*x^4+1/240*x^5-1/1440*3^<1/2>* x^6-1/10080*x^7+1/800*3^<1/2>*x^8 T3 =

sin+cos*-1/2*sin*^2-1/6*cos* ^3+1/24*sin*^4+1/120*cos*^5 T4 =

28 / 38

sin+cos*-1/2*sin*^2-1/6* cos*^3+1/24*sin*^4+1/120* cos*^5 T5 =

sin+cos*-1/2*sin*^2-1/6*cos* ^3+1/24*sin*^4+1/120*cos*^5 T6 =

sin+cos*-1/2*sin*^2-1/6*cos *^3+1/24*sin*^4+1/120*cos*^5 T7 =

sin+cos*-1/2*sin*^2-1/6*cos *^3+1/24*sin*^4+1/120*cos*^5 T8 =

sin+cos*-1/2*sin*^2-1/6*cos* ^3+1/24*sin*^4+1/120*cos*^5 T9 =

sin+cos*-1/2*sin*^2-1/6*cos* ^3+1/24*sin*^4+1/120*cos*^5

命令2 Taylor级数计算器 函数taylortool

格式 taylortool %该命令生成一图形用户界面,显示缺省函数f=x*cos

在区间[-2*pi,2*pi]内的图形,同时显示函数f的前N=7项的Taylor多项式级数和<在a=0附近的>图形,如图1.通过更改f项可得不同的函数图形.

taylortool<'f'> %对指定的函数f,用图形用户界面显示出Taylor展开

式.〔图3-14〕 例3-47

>>taylortool<'sin>'>

再通过改变相关的参量,可得如图3-15. 3.2.6 其它

命令1 Jacobian矩阵 函数jacobian

格式 R = jacobian

说明计算w对v的Jacobian矩阵.其中w为符号单值函数表达式或符号列向量,v为一符号行向量.输出参量R=〔rij〕的元素rij为:,i=1,2,…,size,j=1,2,…,length 例3-48

>>syms x y z u v w >>w = [x*y*z; y; x+z]; >>v = [x,y,z]; >>R = jacobian >>b = jacobian

计算结果为:

R =

29 / 38

[ y*z, x*z, x*y] [ 0, 1, 0] [ 1, 0, 1] b = [ 1, 0, 0]

命令2 Jordan标准形 函数jordan

格式 J = jordan %计算矩阵A的Jordan标准形.其中A为一确切已知的

符号或数值矩阵.即它的元素必须是整数或小整数的比值.任何的矩阵输入误差将导致不同的Jordan标准形.即Jordan标准形对数据是敏感的.

[V,J] = jordan %返回Jordan标准形矩阵J与相似变换矩阵V,其

中V的列向量为矩阵A的广义特征向量.它们满足:V\\A*V=J.

例3-49

>>A = [1 -3 -2; -1 1 -1; 2 4 5] >> [V,J] = jordan >>V = double;

>>Test = all>

计算结果为:

V =

-1 -1 1 0 -1 0 1 2 0 J =

3 0 0 0 2 1 0 0 2 Test = 1

命令3 Lamber的W函数 函数lambertw

格式 Y = lambertw %计算参量X的每一元素x的Lamber的W函数

值,其中X为一数值或符号矩阵.Lamber的函数W=W为方程的解:wew = x.

例3-50

>>W1 = lambertw<[ -exp<-1>; pi]> >>syms x y

>>W2 = lambertw<[0 x;1 y]>

计算结果为:

W1 =

-1.0000 + 0.0000i 1.0737 W2 =

[ 0, lambertw]

30 / 38

[ lambertw<1>, lambertw]

命令4 符号表达式的LaTex的表示式 函数latex

格式 latex %返回符号表达式S的LaTex格式的表示式.该格式可以使

表达式S在图形窗口中进行显示〔如命令title、text等〕.

例3-51

>>syms x

>>f = taylor>; >>Lat1 = latex

>>M = sym>; >>Lat2 = latex

计算结果为:

Lat1 =

\\sin<1>+\\cos<1>\\mbox {{\t `x~`}}-1/2\\,\\sin<1>{\\mbox {{\t

`x~`}}}^{2}-1/6\\,\\cos<1>{\\mbox {{\t `x~`}}}^{3}+1/24\\,\\sin<1>{\\mbox {{\t `x~`}}}^{4}+{\\frac {1}{120}}\\,\\cos<1>{\\mbox {{\t `x~`}}}^{5} Lat2 =

\\left [\\begin {array}{ccc}

8&1&6\\\\\\noalign{\\medskip}3&5&7\\\\\\noalign{\\medskip}4…

&9&2\\end {array}\\right ]

命令5 调用Maple内核 函数maple

格式 r = maple<'statement'> %将参数命令statement传递给Maple内核,且

返回计算结果.在必要时,可以在参量statement后面加上分号<;>.

r = maple<'function',arg1,arg2,…> %该命令接受任何的带引号的函

数名'function',与相关的输入参量arg1,arg2,….在必要时,要将输入参量转换成符号表达式.若输入参量为syms,则maple返回一sym,否则返回一类型为char的结果.

[r, status] = maple<…> %有条件地返回警告/错误信息.当语句能顺

利执行,则r为计算结果,status为0;若语句不能通过执行,r为相应的警告/错误信息,而status为一正整数.

maple<'traceon'> 、maple traceon、maple trace on %将显示所有的后

面的Maple语句与其相应的结果显示于屏幕上

maple<'traceoff'> 、maple traceoff、maple trace off %将关闭上面的

操作特性 例3-52

>>Pi = maple<'evalf'> >>syms x

>>v = [x^2-1;x^2-4] >>maple traceon >>w = factor

计算结果为:

Pi =

31 / 38

062862098628034825342117068 v = [ x^2-1] [ x^2-4] statement:

map>; result:

Error, invalid arguments statement:

map>; result:

matrix<[[*], [*]]> w =

[ *] [ *]

命令6 初始化Maple内核 函数mapleinit

格式 mapleinit 该命令用于确定包含Maple库的路径,再装载Maple的线性

代数与积分变换包、初始化命令digits、指定几个别名.用户可以编辑mapleinit的M-文件,用于改变到Maple包的路径,只需按如下的方法改变变量initstring的值: 1.若用户已经有一Maple V,Release 5的库在目录

C:\\Maple\\Lib上,在文件mapleinit.m中加入:maplelib = 'C:\\MAPLE\\LIB'

2.从MATLAB中删除旧的Maple包版本.

命令7 Maple数学函数的数值计算 函数mfun

格式 Y = mfun<'function',par1,par2,par3,par4>

说明计算一指定的Maple软件中已知的数学函数function的数值.每一参量par为该函数相应的具体数值.用户可以输入满4个参量.最后指定的参量可以是矩阵,通常对应于x.其他参量的位数取决于该函数规定的范围.用户可以通过下面的命令获得相关参数的信息:help mfunlist;mhelp function;Maple用16位精度计算函数function.函数function中的任何奇异值将返回NaN. 例3-53

>>M1 = mfun<'dilog',5> >>M2 = mfun<'Psi',[3*i 0]>

计算结果为:

M1 =

-2.3699 M2 =

1.1080 + 1.7375i NaN

命令8 列出命令mfun中特定的Maple函数 函数mfunlist 格式 mfunlist

32 / 38

1.列出在使用命令mfun中用到的特殊的数学函数.下表中参量的一些约定:x,y:实数参量;z,z1,z2:复数参量;m,n:整数参量

表3-1 mfun特殊函数

函数名 Bernoulli数 与多项式 生成函数: BesselI, BesselJ:第一类Bessel函Bessel函数 数 BesselK, BesselY:第二类Bessel函数 Beta函数 二项式系数 定义 Mfun名 Bernoulli Bernoulli BesselJ BesselY BesselI BesselK Beta Binomial LegendreKc LegendreEc LegendrePic LegendreKc1 LegendreEc1 LegendrePic1 erfc erfc dawson Psi dilog erf euler euler Ei Ei FresnelC FresnelS GAMMA harmonic Shi Chi v为实数 参量说明 n≥0 0<|t|<2π 第一、二、三类Legendre完全椭圆积分 a为任意实数 -∞0 完全椭圆积分 带余模的完全 与余模相关的第一、二、三类椭圆积分 余差函数 Dawson积分 Legendre完全椭圆积分 Erfc = 与它的累积分 erfc = Ψ-函数 二重对数积分 误差函数 Euler数与多项式 指数积分 Fresnel正弦 与余弦积分 Г-函数 调和函数 双曲正弦 与余弦积分 生成Euler数的函数: x>1 n≥0 |t|<π/2 n≥0 real>0 =Ψ + γ Chi = γ+ln + n>0 广义超几何函数 hypergeom n1,n2,… 为实数 F = 其中 n = [n1,n2,…] d1,d2,… 为非负实数 33 / 38

d = [d1,d2,…] 不完全椭圆积分 第一、二、三类不完全Legendre完全椭圆积分 LegendreF LegendreE LegendrePi GAMMA lnGAMMA Li Psi Ssi 0= Г-函数的对数 lnГ = ln<Г> 对数积分 = Ei> Г多项式函数 其中Ψ为Γ-函数 移位正弦积分 Ssi=Si – π/2 x>1 N≥0 对于上面的特殊函数function,用户可以通过下面的命令得到更多的帮助信息:mhelp function

总的来说,函数的精度跟它的根相比会较低,且当它的参数相对而言较大时,精度也较底.函数的执行时间取决于特定的函数与它的输入参量.总之,其计算将比标准的MATLAB计算慢一些. 2.正交多项式函数:

下面的函数需要Maple正交多项式包,它们仅仅对于MATLAB的扩展符号数学工具箱有用.在使用这些函数之前,用户要用下面的命令初始化Maple正交多项式包:maple<'with','orthopoly'>

表3-2 正交多项式函数

下表参量的约定:n:非负整数;x:任意实数

多项式 Gegenbauer多项式 Hermite多项式 Laguerre多项式 广义Laguerre多项式 Legendre Jacobi 第一、二类Chebyshev多项式 Maple名 G H L L P P TU 理数 参量说明 a为非有理数代数表达式或者是大于-1/2的有 a为非有理数代数表达式或者是大于-1的有理数 a与b为非有理数代数表达式或者是大于-1的有理数 命令9 Maple命令帮助 函数mhelp

格式 mhelp topic、mhelp<'topic'>

说明返回Maple软件中指定的Maple标题topic的在线帮助文档信息. 命令10 交互式计算Riemann和 函数rsums

格式 rsums %交互式地通过Riemann和计算函数f的积

分.rsums显示函数f 的图形.用户可以通过拖动图形下方的滑块来调整Riemann和的项数,有效的项数从2到128.

34 / 38

例3-54

>>rsums sin<-5*x^2>

命令11 在一符号表达式或矩阵中进行符号替换 函数subs

格式 R = subs %用从调用的函数中获得的变量值,或MATLAB的工

作空间中存在的变量值,替换表达式S中所有出现的相同的变量,同时自动进行化简计算;若是数值表达式,则计算出结果.

R = subs %用新值new替换表达式s中的旧值old,参量

old是一符号变量或代表一变量名的字符串,new是一符号/数值变量或表达式.若old与new为有相同大小的阵列,则用new中相应的元素替换old中的元素;若S与old为标量,而new为阵列或单元阵列,则标量S与old将扩展为与new同型的阵列;若new为数值矩阵的单元阵列,则替换按元素的方向执行.若subs没有改变S,则subs被证明是可靠的.这提供了对以前版本的向后兼容性,且不会交换参量的位置.

例3-55

>>a = 980,C1=3;

>>y = dsolve<'Dy = -a*y'> >>syms b >>subs

>>subs

>>subs+sin,{a,b},{sym<'alpha'>,2}> >>subs,'a',-magic<2>>

>>subs

命令12 创建符号数值、变量与对象 函数sym

格式 S = sym %用输入参量A,构造一类型为‘sym’的对象s.若A为字

符串,则S为符号数值或变量;若A为一数值标量或矩阵,则S为代表所给数值的符号表达式.

x = sym<'x'> %创建一名字为‘x’的符号变量,且将结果存于x. pi = sym<'pi'> %创建一符号数值,这可避免了用浮点近似表示π的误

差,pi的这种创建方法将暂时地代替了有相同名字、用于生成无理数π的近似值的内建数值函数pi.m.

x = sym<'x','real'> %创建一实符号变量.若x有了具体的值,则命令

clear x只能清除x的值,而不能改变x的\"属性\".

x = sym<'x','unreal'> %使x变成一纯粹的、没有任何附加属性的符号

变量.

S = sym %将一数值标量或矩阵转换成符号形式.对浮点数

值的转换方法要用第二个参量flag来指定.其中flag可以是'r'、'd'、'e'、'f'. ’f’:代表\"浮点格式\".

’r’:代表\"有理格式\"〔该方式为缺省转换格式〕.

35 / 38

’e’:代表\"估计误差\". ’d’:代表\"十进制格式\".

命令13 创建多个符号对象的快捷命令 函数syms

格式 syms arg1 arg2 … %定义arg1、arg2为符号

syms arg1 arg2 … real %该命令是下列命令的简洁形式: arg1 = sym<'arg1','real'>; arg2 = sym<'arg2','real'>; …

syms arg1 arg2 … unreal %该命令是下列命令的简洁形式: arg1 = sym<'arg1','unreal'>; arg2 = sym<'arg2','unreal'>; … 注:clear x不能清除符号变量x的属性\"real\只能清除变量x.要想清除该属性,要输入:syms x unreal或clear mex或clear all.执行后面的两个命令后,Maple内核将重新装载入MATLAB的工作空间〔这是不可取的,因为花费时间〕. 例3-56

>>syms x beta real %符号对象已经生成,执行下面一些操作: >>whos

将显示工作空间中存在变量的详细信息:

Name Size Bytes Class beta 1x1 132 sym object x 1x1 126 sym object Grand total is 7 elements using 258 bytes y = x + i*beta; clear x; y

通过上面的操作,我们看到,当x被清除掉后,y的值并没有马上改变:

y =

x+i*beta

命令14 将符号多项式转化为数值多项式 函数sym2poly

格式 c = sym2poly %返回符号多项式s的数值系数行向量c.多项式自

变量次数的系数按降幂排列.即行向量c的第一分量c1为多项式s的最高次数项的系数,c2为第二高次数项的系数,如此类推.

例3-57

>>syms x u;

>>c1 = sym2poly<3*x^3 - 2*x^2 – sqrt<5>> >>c2 = sym2poly

计算结果为:

c1 =

3.0000 -2.0000 0 -2.2361 c2 =

1 0 5 0 -3

命令15 可变精度算法 函数vpa

36 / 38

格式 R = vpa %用可变精度算法来计算A中的每一元素,使其成为有

d位精确度的十进制数.其中d为命令digits设置的当前位数.R中的每一元素为一符号表达式.

R = vpa或R = vpa A d %用参量d指定的位数<而非命令digits

设置的位数>来表示A中的每一元素.R中的每一元素为一符号表达式.

例3-58

>>digits<25>

>>q = vpa>> >>p = vpa

>>gold_ratioi = vpa<'-1>/2'> >>vpa pi 75

>>A = vpa,8> >>B = vpa,5>

计算结果为:

q =

.5000000000000000000000000 p =

gold_ratioi = ans = A =

[ -9., 11., -21., 63., -252.] [ 70., -69., 141., -421., 1684.] [ -575., 575., -1149., 3451., -13801.] [ 31., -31., 7782., -23345., 93365.] [ 1024., -1024., 2048., -6144., 24572.] B =

[ 1., .50000, .33333] [ .50000, .33333, .25000] [ .33333, .25000, .20000]

命令16 符号表达式的C语言代码 函数ccode

格式 ccode %返回C语言的、用于计算符号表达式s的语句段落 例3-59

>>syms x

>>s = taylor>; >>ccode

计算结果为:

ans =

t0 = 1.0+x+x*x/2.0+x*x*x/6.0+x*x*x*x/24.0+x*x*x*x*x/120.0; 注:t0为在x=0附近的计算公式〔Taylor展式〕. 命令17 符号表达式的Fortran语言代码 函数fortran

37 / 38

格式 fortan %返回一Fortan语言的、用于计算符号表达式s的语句段落 例3-60

>>syms x

>>f = taylor>; >>F1 = fortran >>H = sym>; >>F2 = fortran>

计算结果为:

F1 =

t0 = x-x**3/6+x**5/120

F2 =

T<1,1> = t T<1,2> = t/2 T<1,3> = t/3 T<2,1> = t/2 T<2,2> = t/3 T<2,3> = t/4 T<3,1> = t/3 T<3,2> = t/4 T<3,3> = t/5 T<4,1> = t/4 T<4,2> = t/5 T<4,3> = t/6 38 / 38

T<1,4> = t/4 T<2,4> = t/5 T<3,4> = t/6 T<4,4> = t/7

Copyright © 2019- huatuo7.cn 版权所有 湘ICP备2022005869号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务