当前位置:文档之家› matlab符号运算函数大全

matlab符号运算函数大全

matlab符号运算函数大全
matlab符号运算函数大全

3.1算术符号操作

命令+、-、*、.*、\、.\、/、./、^、.^、’、.’

功能符号矩阵的算术操作

用法如下:

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

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

A*B 符号矩阵乘法。

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

阵B的行数。即:若A n*k*B k*m=(a ij)n*k.*(b ij)k*m=C n*m=(c ij)n*m,则,i=1,2,…,n;

j=1,2,…,m。或者至少有一个为标量时,方可进行乘法操作,否则将返回一出错信

息。

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

A.*B为按参量A与B对应的分量进行相乘。A与B必须为同型阵列,或至少有一

个为标量。即:A n*m.*B n*m=(a ij)n*m.*(b ij)n*m=C n*m=(c ij)n*m,则c ij= a ij* b ij,i=1,2,…,n;

j=1,2,…,m。

A\B 矩阵的左除法。

X=A\B为符号线性方程组A*X=B的解。我们指出的是,A\B近似地等于inv(A)*B。

若X不存在或者不唯一,则产生一警告信息。矩阵A可以是矩形矩阵(即非正方

形矩阵),但此时要求方程组必须是相容的。

A.\B 数组的左除法。

A.\B为按对应的分量进行相除。若A与B为同型阵列时,

A n*m.\

B n*m=(a ij)n*m.\(b ij)n*m=

C n*m=(c ij)n*m,则c ij= a ij\ b ij,i=1,2,…,n;j=1,2,…,m。若若

A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应

的分量进行操作。

A/B 矩阵的右除法。

X=B/A为符号线性方程组X*A=B的解。我们指出的是,B/A粗略地等于B*inv(A)。

若X不存在或者不唯一,则产生一警告信息。矩阵A可以是矩形矩阵(即非正方

形矩阵),但此时要求方程组必须是相容的。

A./B 数组的右除法。

A./B为按对应的分量进行相除。若A与B为同型阵列时,

A n*m./

B n*m=(a ij)n*m./(b ij)n*m=

C n*m=(c ij)n*m,则c ij= a ij/b ij,i=1,2,…,n;j=1,2,…,m。若A

与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的

分量进行操作。

A^B 矩阵的方幂。

计算矩阵A的整数B次方幂。若A为标量而B为方阵,A^B用方阵B的特征值

与特征向量计算数值。若A与B同时为矩阵,则返回一错误信息。

A.^B 数组的方幂。

A.^B为按A与B对应的分量进行方幂计算。若A与B为同型阵列时,

A n*m..^

B n*m=(a ij)n*m..^(b ij)n*m=

C n*m=(c ij)n*m,则c ij= a ij^b ij,i=1,2,…,n;j=1,2,…,m。若

A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应

的分量进行操作。

A' 矩阵的Hermition转置。

若A为复数矩阵,则A'为复数矩阵的共轭转置。即,若A=(a ij)=(x ij+i*y ij),则。

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 =

[ -(a*c*f+c*b*h-a*e*d-b*d*g)/(a*d-b*c), (a*b*h-b^2*g+a^2*f-b*a*e)/(a*d-b*c)]

[ -(-c*e*d+c*d*h+c^2*f-d^2*g)/(a*d-b*c), (a*d*h+a*c*f-b*c*e-b*d*g)/(a*d-b*c)] C4 =

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

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

x1 =

(-a22*b1+b2*a21)/(a12*a21-a11*a22)

x2 =

-(-a12*b1+a11*b2)/(a12*a21-a11*a22)

?????? 3.2 基本运算

命令1 合并同类项

函数collect

格式R = collect(S) %对于多项式S中的每一函数,collect(S)按缺省变量x的次数合并系

数。

R = collect(S,v) %对指定的变量v计算,操作同上。

例3-2

>>syms x y;

>>R1 = collect((exp(x)+x)*(x+2))

>>R2 = collect((x+y)*(x^2+y^2+1), y)

>>R3 = collect([(x+1)*(y+1),x+y])

计算结果为:

R1 =

x^2+(exp(x)+2)*x+2*exp(x)

R2 =

y^3+x*y^2+(x^2+1)*y+x*(x^2+1)

R3 =

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

命令2 列空间的基

函数colspace

格式 B = colspace(A) %返回矩阵B,其列向量形成由矩阵A的列向量形成的空间的坐标基,其中A可以是符号或数值矩阵。而size(colspace(A),2)等于rank(A)。即由A

生成的空间维数等于A的秩。

例3-3

>>syms a b c

>>A = sym([1,a;2,b;3,c])

>>B = colspace(A)

计算结果为:

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[g(y)],其中f=f(x),g=g(y)。其中符号x为函数f中

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

findsym(g) 确定的符号变量。

compose(f,g,z) %返回复合函数f[g(z)],其中f=f(x),g=g(y),符号x、y为函数f、

g中由命令findsym确定的符号变量。

compose(f,g,x,z) %返回复合函数f[g(z)],而令变量x为函数f中的自变量f=f(x)。

令x=g(z),再将x=g(z)代入函数f中。

compose(f,g,x,y,z) %返回复合函数f[g(z)]。而令变量x为函数f中的自变量f=f(x),

而令变量y为函数g中的自变量g=g(y)。令x=g(y),再将x=g(y)

代入函数f=f(x)中,得f[g(y)],最后用指定的变量z代替变量y,

得f[g(z)]。

例3-4

>>syms x y z t u v;

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

>>C1 = compose(f,g) % 令x=g=sin(y),再替换f中的变量x=findsym(f)。

>>C2 = compose(f,g,t) % 令x=g=sin(t),再替换f中的变量x=findsym(f)。

>>C3 = compose(h,g,x,z) % 令x=g=sin(z),再替换h中的变量x。

>>C4 = compose(h,g,t,z) % 令t=g=sin(z),再替换h中的变量t。

>>C5 = compose(h,p,x,y,z) % 令x=p(y)=sqrt(-y/u),替换h中的变量x,再将y换成z。

>>C6 = compose(h,p,t,u,z) % 令t=p(u)=sqrt(-y/u),替换h中的变量t,再将u换成z。

计算结果为:

C1 =

1/(1+sin(y)^2*y)

C2 =

1/(1+sin(t)^2*y)

C3 =

sin(z)^t

C4 =

x^sin(z)

C5 =

((-z/u)^(1/2))^t

C6 =

x^((-y/z)^(1/2))

命令4 符号复数的共轭

函数conj

格式conj(X) %返回符号复数X的共轭复数

例3-5

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

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

函数real

格式real(Z) %返回符号复数z的实数部分

命令6 符号复数的虚数部分

函数imag

格式imag(Z) %返回符号复数z的虚数部分

命令7 余弦函数的整函数

格式Y = cosint(X) %计算余弦函数在点X处的整函数值。其中X可以是数值矩阵,或符号矩阵。余弦函数的整函数定义为:,其中为Euler常数,…i=1,2,…,size(X)。

Euler常数可以通过命令vpa('eulergamma')获得。

例3-6

>>cosint(7.2)

>>cosint([0:0.1:1])

>>syms x;

>>f = cosint(x);

>>diff(x)

计算结果为:

ans =

0.0960

ans =

Columns 1 through 7

Inf -1.7279 -1.0422 -0.6492 -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位

d = digits %返回当前的可变算术精度位数给d

digits %显示当前可变算术精度的位数

说明设置有意义的十进制数值的、在Maple软件中用于做可变算术精度(命令为:vpa)计算的数字位数。其缺省值为32位数字。

例3-7

>>z = 1.0e-16 % z为一很小的数

>>x = 1.0e+2 % x为较大的数

>>digits(14)

>>y1 = vpa(x*z+1) % 大数1“吃掉”小数x*y

>>digits(15)

>>y2 = vpa(x*z+1) % 防止“去掉”小数x*y

计算结果为:

z =

1.0000e-016

x =

100

y1 =

1.0000000000000

y2 =

1.00000000000001

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

函数double

格式R = double(S) %将符号对象S转换为数值对象R。若S为符号常数或表达式常数,

double返回S的双精度浮点数值表示形式;若S为每一元素是符号

常数或表达式常数的符号矩阵,double返回S每一元素的双精度浮点

数值表示的数值矩阵R。

例3-8

>>gold_ratio = double(sym('(sqrt(5)-1)/2')) % 计算黄金分割率。

>>T = sym(hilb(4))

>>R = double(T)

计算结果为:

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) %对符号表达式S中每个因式的乘积进行展开计算。该命令通常用于计算多项式函数、三角函数、指数函数与对数函数等表达式的展开式。

例3-9

>>syms x y a b c t

>>E1 = expand((x-2)*(x-4)*(y-t))

>>E2 = expand(cos(x+y))

>>E3 = expand(exp((a+b)^3))

>>E4 = expand(log(a*b/sqrt(c)))

>>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(x)*cos(y)-sin(x)*sin(y)

E3 =

exp(a^3)*exp(a^2*b)^3*exp(a*b^2)^3*exp(b^3)

E4 =

log(a*b/c^(1/2))

E5 =

[ 2*sin(t)*cos(t), 2*cos(t)^2-1]

命令11 符号因式分解

函数factor

格式factor(X) %参量x可以是正整数、符号表达式阵列或符号整数阵列。若X为一正整数,则factor(X)返回X的质数分解式。若x为多项式或整数矩阵,则

factor(X)分解矩阵的每一元素。若整数阵列中有一元素位数超过16位,

用户必须用命令sym生成该元素。

例3-10

>>syms a b x y

>>F1 = factor(x^4-y^4)

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

计算结果为:

F1 =

(x-y)*(x+y)*(x^2+y^2)

F2 =

[(a-b)*(a+b), (x+y)*(x^2-x*y+y^2)]

F3 =

(2)*(3)^2*(5)*(101)*(3803)*(3607)*(27961)*(3541)

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

函数numden

格式[N,D] = numden(A)

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

例3-11

>>syms x y a b c d;

>>[n1,d1] = numden(sym(sin(4/5)))

>>[n2,d2] = numden(x/y + y/x)

>>A = [a, 1/b;1/c d];

>>[n3,d3] = numden(A)

计算结果为:

n1 =

d1 =

n2 =

x^2+y^2

d2 =

y*x

n3 =

[ a, 1]

[ 1, d]

d3 =

[ 1, b]

[ c, 1]

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

函数simple

格式r = simple(S) %该命令试图找出符号表达式S的代数上的简单形式,显示任意的能

使表达式S长度变短的表达式,且返回其中最短的一个。若S为一

矩阵,则结果为整个矩阵的最短形式,而非是每一个元素的最简形式。

若没有输出参量r,则该命令将显示所有可能使用的算法与表达式,

同时返回最短的一个。

[r,how] = simple(S) %没有显示中间的化简结果,但返回能找到的最短的一个。输

出参量r为一符号,how为一字符串,用于表示算法。

例3-12

>>syms x

>>R1 = simple(cos(x)^4+sin(x)^4)

>>R2 = simple(2*cos(x)^2-sin(x)^2)

>>R3 = simple(cos(x)^2-sin(x)^2)

>>R4 = simple(cos(x)+(-sin(x)^2)^(1/2))

>>R5 = simple(cos(x)+i*sin(x))

>>R6 = simple( (x+1)*x*(x-1))

>>R7 = simple(x^3+3*x^2+3*x+1)

>> [R8,how] = simple(cos(3*acos(x)))

计算的结果为:

R1 =

1/4*cos(4*x)+3/4

R2 =

3*cos(x)^2-1

R3 =

cos(2*x)

R4 =

cos(x)+i*sin(x)

R5 =

exp(i*x)

R6 =

x ^3-x

R7 =

(x+1)^3

R8 =

4*x^3-3*x

how =

expand

命令14 符号表达式的化简

函数simplify

格式R = simplify(S)

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

例3-13

>>syms x a b c

>>R1 = simplify(sin(x)^4 + cos(x)^4)

>>R2 = simplify(exp(c*log(sqrt(a+b))))

>>S = [(x^2+5*x+6)/(x+2),sqrt(16)];

>>R3 = simplify(S)

计算结果为:

R1 =

2*cos(x)^4+1-2*cos(x)^2

R2 =

(a+b)^(1/2*c)

R3 =

[ x+3, 4]

命令15 符号矩阵的维数

函数size

格式 d = size(A) %若A为m*n阶的符号矩阵,则输出结果d=[m,n]。

[m,n] = size(A) %分别返回矩阵A的行数于m,列数于n。

d= size(A, n) %返回由标量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(A)

>>r = size(A, 2)

计算结果为:

d =

4 3

r =

3

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

函数solve

格式g = solve(eq) %输入参量eq可以是符号表达式或字符串。若eq是一符号表达式x^2 -2*x-1或一没有等号的字符串’x^2-2*x-1’,则solve(eq)对方程eq中的缺省变量(由

命令findsym(eq)确定的变量)求解方程eq=0。若输出参量g为单一变量,则对于

有多重解的非线性方程,g为一行向量。

g = solve(eq,var) %对符号表达式或没有等号的字符串eq中指定的变量var求解方

程eq(var)=0。

g = solve(eq1,eq2,…,eqn) %输入参量eq1,eq2,…,eqn可以是符号表达式或字符串。

该命令对方程组eq1,eq2,...,eqn中由命令findsym确定的n个变量如x1,x2, (x)

求解。若g为一单个变量,则g为一包含n个解的结构;若g为有n个变量的向

量,则分别返回结果给相应的变量。

g = solve(eq1,eq2,…,eqn,var1,var2,…,varn) %对方程组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+(b^2-4*a*c)^(1/2))]

[ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]

ans =

-(a*x^2+c)/x

ans =

x: [1x1 sym]

y: [1x1 sym]

A =

a: [4x1 sym]

u: [4x1 sym]

v: [4x1 sym]

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

函数subexpr

格式[Y,SIGMA] = subexpr(X,SIGMA)

[Y,SIGMA] = subexpr(X,'SIGMA')

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

例3-16

>>t = solve('a*x^3+b*x^2+c*x+d = 0');

>> [r,s] = subexpr(t,'s');

>>pretty(t)

>>pretty(r)

计算结果为:(略)

命令18 特征多项式

函数poly

格式p = poly(A)或p = poly(A, v)

说明若A为一数值阵列,则返回矩阵A的特征多项式的系数,且有:命令poly(sym(A))近似等于poly2sym(poly(A))。其近似程度取决于舍入误差的大小。若A为一符号矩阵,则返回矩阵A 的变量为x的特征多项式。若带上参量v,则返回变量为v的特征多项式。

例3-17

>>A = hilb(4);

>>p = poly(A)

>>q = poly(sym(A))

>>s = poly(sym(A),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(c)和r = poly2sym(c, v)

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

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

例3-18

>>r1 = poly2sym([1 2 3 4])

>>r2 = poly2sym([.694228, sqrt(2), sin(pi/3)])

>>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(S) %用缺省的线型宽度79显示符号矩阵s中每一元素

pretty(S,n) %用指定的线型宽度n显示

例3-19

>>A = sym(pascal(3));

>>B = eig(A)

>>pretty(B,50) % 多看几次结果,会发现该命令显示的特点

>>syms x

>>y=log(x)/sqrt(x);

>>dy = diff(y)

>>pretty(dy)

计算结果为:

B =

[ 1]

[ 4+15^(1/2)]

[ 4 -15^(1/2)]

[ 1 ]

[ ]

[ 1/2]

[4 + 15 ]

[ ]

[ 1/2]

[4 - 15 ]

dy =

1/x^(3/2)-1/2*log(x)/x^(3/2)

1 log(x~)

---- - 1/2 -------

3/2 3/2

x~ x~

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

函数findsym

格式r = findsym(S) %以字母表的顺序返回表达式S中的所有符号变量(注:符号变量为由字母(除了i与j)与数字构成的、字母打头的字符串)。若S中没有任何的

符号变量,则findsym返回一空字符串。

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

例3-20

>>syms a x y z t alpha beta

>>1 = findsym(sin(pi*t*alpha+beta))

>>S2 = findsym(x+i*y-j*z+eps-nan)

>>S3 = findsym(a+y,pi)

计算结果为;

S1 =

pi, alpha, beta, t

S2 =

NaN, x, y, z

S3 =

a, y

命令22 函数的反函数

函数finverse

格式g = finverse(f) %返回函数f 的反函数。其中f为单值的一元数学函数,如f=f(x)。

若f的反函数存在,设为g,则有g[f(x)] = x。

g = finverse(f,u) %若符号函数f中有几个符号变量时,对指定的符号自变量v计算其

反函数。若其反函数存在,设为g,则有g[f(v)] = v。

例3-21

>>syms x p q u v;

>>V1 = finverse(1/((x^2+p)*(x^2+q)))

>>V2 = finverse(exp(u-2*v),u)

计算结果为:

Warning: finverse(1/(x^2+p)/(x^2+q)) is not unique.

> In D:\MATLABR12\toolbox\symbolic\@sym\finverse.m at line 43

V1 =

1/2/x*2^(1/2)*(x*(-x*q-x*p+(x^2*q^2-2*x^2*q*p+x^2*p^2+4*x)^(1/2)))^(1/2) V2 =

2*v+log(u)

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

函数horner

格式R = horner(P) %若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) %对符号表达式s中的符号变量k(由命令findsym(s)确定的)从0

到k-1求和

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

r = symsum(s,a,b) %对符号表达式s中的符号变量k(由命令findsym(s)确定的)从

a到b求和

r = symsum(s,v,a,b) %对符号表达式s中指定的符号变量v从a到b求和

例3-23

>>syms k n x

>>r1 = symsum(k^3)

>>r2 = symsum(k^2-k)

>>r3 = symsum(sin(k*pi)/k,0,n)

>>r4 = symsum(k^2,0,10)

>>r5 = symsum(x^k/sym('k!'), 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

r3 =

-1/2*sin(k*(n+1))/k+1/2*sin(k)/k/(cos(k)-1)*cos(k*(n+1))-1/2*sin(k)/k/(cos(k)-1) r4 =

385

r5 =

exp(x)

命令25 广义超几何函数

函数hypergeom

格式hypergeom(n, d, z) %该命令为广义超几何函数F(n,d,z),即已知的Barnes扩展超几

何函数,记做j F k,其中j=length(n),k=length(d)。对于标量a,b

与c,hypergeom([a,b],c, z)为Gauss超几何函数2F1(a,b;c,z)。

说明超几何函数的定义为:,其中

例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(a,[],z)

>>H6 = hypergeom([],1,-z^2/4)

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

计算结果为:

H1 =

exp(z)

H2 =

-1/(-1+z)

H3 =

(exp(z)-1)/z

H4 =

-2*(-exp(z)+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为一可视化的、可操作与显示

一元函数的计算器界面。在该界面上由许多按钮,可以显示两个由用户输

入的函数的计算结果:加、乘、微分等。funtool还有一函数存储器,允

许用户将函数存入,以便后面调用。在开始时,funtool显示两个函数f(x)

= x与g(x) = 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(x)+a代替函数f(x);

f-a:用f(x)-a代替函数f(x);

f*a:用f(x)+a代替函数f(x);

f/a:用f(x)/a代替函数f(x);

f^a:用f(x)^a代替函数f(x);

f(x+a):用f(x+a)代替函数f(x);

f(x*a):用f(x-a)代替函数f(x);

f+g:用f(x)+g(x)代替函数f(x);

f-g:用f(x)-g(x)代替函数f(x);

f*g:用f(x)*g(x)代替函数f(x);

f/g:用f(x)/g(x)代替函数f(x);

g=f:用函数f(x)代替函数g(x);

swap:函数f(x)与g(x)互换;

Insert:将函数f(x)保存到函数内存列表中的最后;

Cycle:用内存函数列表中的第二项代替函数f(x);

Delete:从内存函数列表中删除函数f(x);

Reset:重新设置计算器为初始状态;

Help:显示在线的关于计算器的帮助;

Demo:运行该计算器的演示程序;

Close:关闭计算器的三个窗口。

3.2.2 微积分

命令1 极限

函数limit

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

limit(F,a) %用命令findsym(F)确定F中的自变量,设为变量x,再计算F的极限值,

当x→a时。

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

值,当x→0时。

limit(F,x,a,'right')或limit(F,x,a,'left') %计算符号函数F的单侧极限:左极限x→a- 或

右极限x→a+。

例3-25

>>syms x a t h n;

>>L1 = limit((cos(x)-1)/x)

>>L2 = limit(1/x^2,x,0,'right')

>>L3 = limit(1/x,x,0,'left')

>>L4 = limit((log(x+h)-log(x))/h,h,0)

>>v = [(1+a/x)^x, exp(-x)];

>>L5 = limit(v,x,inf,'left')

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

计算结果为:

L1 =

L2 =

inf

L3 =

-inf

L4 =

1/x

L5 =

[ exp(a), 0]

L6 =

exp(6)

命令2 导数(包括偏导数)

函数diff

格式diff(S,'v')、diff(S,sym('v')) %对表达式S中指定符号变量v计算S的1阶导数。

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

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

diff(S,'v',n) %对表达式S中指定的符号变量v计算S的n阶导数。

例3-26

>>syms x y t

>>D1 = diff(sin(x^2)*y^2,2) %计算

>>D2 = diff(D1,y) %计算

>>D3 = diff(t^6,6)

计算结果为:

D1 =

-4*sin(x^2)*x^2*y^2+2*cos(x^2)*y^2

D2 =

-8*sin(x^2)*x^2*y+4*cos(x^2)*y

D3 =

720

命令3 符号函数的积分

函数int

格式R = int(S,v) %对符号表达式S中指定的符号变量v计算不定积分。注意的是,表达

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

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

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

R = int(S,a,b) %对符号表达式s中的符号变量v计算从a到b的定积分,其中

v=findsym(S)。

例3-27

>>syms x z t alpha

>>INT1 = int(-2*x/(1+x^3)^2)

>>INT2 = int(x/(1+z^2),z)

>>INT3 = int(INT2,x)

>>INT4 = int(x*log(1+x),0,1)

>>INT5 = int(2*x, sin(t), 1)

>>INT6 = int([exp(t),exp(alpha*t)])

计算结果为:

INT1 =

-2/9/(x+1)+2/9*log(x+1)-1/9*log(x^2-x+1)-2/9*3^(1/2)*atan(1/3*(2*x-1)*…

3^(1/2))-2/9*(2*x-1)/(x^2-x+1)

INT2 =

x*atan(z)

INT3 =

1/2*x^2*atan(z)

INT4 =

1/4

INT5 =

1-sin(t)^2

INT6 =

[ exp(t), 1/alpha*exp(alpha*t)]

命令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(a)=b,Dy(c)=d,D2y(e)=f,等等,分别表示,,;若边界条件少于方程(组)的阶数,则返回的结果r中会出现任意常数C1,C2,…;dsolve命令最多可以接受12个输入参量(包括方程组与定解条件个数,当然我们可以做到输入的方程个数多于12个,只要将多个方程置于一字符串内即可)。若没有给定输出参量,则在命令窗口显示解列表。若该命令找不到解析解,则返回一警告信息,同时返回一空的sym对象。这时,用户可以用命令ode23或ode45求解方程组的数值解。

例3-28

>>D1 = dsolve('D2y – Dy =exp(x)')

>>D2 = dsolve('t*D2f = Df*log((Dy)/t)')

>>D3 = dsolve('(Dy)^2 + y^2 = 1','s')

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

>>D5 = dsolve('D2y = -a^2*y', 'y(0) = 1', 'Dy(pi/a) = 0') % 带两个定解条件

>>[x,y] = dsolve('Dx = y', 'Dy = -x') % 求解线性微分方程组

>>[u,v] = dsolve(‘Du=u+v,Dv=u-v’)

计算结果为:

D1 =

-exp(x)*t+C1+C2*exp(t)

D2 =

y(t)=Int(exp(t*diff(f(t),`$`(t,2))/diff(f(t),t))*t,t)+C1

D3 =

[ -1]

[ 1]

[ sin(s-C1)]

[ -sin(s-C1)]

D4 =

b*exp(a*t)

D5 =

cos(a*t)

x =

cos(t)*C1+sin(t)*C2

y =

-sin(t)*C1+cos(t)*C2

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(x,y)的等高线图。函数f将被显示于缺省的平面

区域[-2π

选择相应的计算栅格。若函数f在某些栅格点上没有定义,则这些点

将不显示。

ezcontour(f,domain) %在指定的定义域domain内画出二元函数f(x,y),参量domain

可以是四维向量[xmin,xmax,ymin,ymax]或二维向量[min,max]

(其中显示区域为:min

ezcontour(…,n) %用指定n*n个栅格点(对定义域的一种划分),在缺省(若没有

指定)的区域内画出函数f的图形。n的缺省值为60。

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

例3-29

>>syms x y

>>f = (1-x)^2*exp(-(x^2)-(y+1)^2)-5*(x/5-x^3-y^5)*sin(-x^2-y^2)-1/3*exp(-(x+1)^2-y^2);

ezcontour(f,[-3,3],49)

图形结果为图3-4。

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

函数ezcontourf

格式ezcontourf(f) %画出二元符号函数f=f(x,y)的等高线图,且在不同的等高线之间自动用不同的颜色进行填充。函数f将被显示于缺省的平面区域

[-2π

算栅格。若函数f在某些栅格点上没有定义,则这些点将不显示。

ezcontourf(f,domain) %在指定的定义域domain内画出二元函数f(x,y)的等高线图,且在不同的等高线之间自动用不同的颜色进行填充。定义域domain可以是

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

min

ezcontourf(…,n) %用指定n*n个栅格点(对定义域的一种划分),在缺省(若没有指定)的区域内画出函数f的等高线图,且在不同的等高线之间自动用不

同的颜色进行填充。n的缺省值为60。

例3-30

>>syms x y

>>f = (1-x)^2*exp(-(x^2)-(y+1)^2)-5*(x/5-x^3-y^5)*sin(-x^2-y^2)-1/3*exp(-(x+1)^2-y^2);

ezcontourf(f,[-3,3],64)

图形结果为图3-5。

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

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

函数ezmesh

格式ezmesh(f) %画出二元数学符号函数f=f(x,y)的网格图。函数f将显示于缺省的平面

区域[-2π

择相应的计算栅格。若函数f在某些栅格点上没有定义,则这些点将不

显示。

ezmesh(f,domain) %在指定的定义域domain内画出二元函数f(x,y)的网格图,定义

域domain可以是四维向量[xmin,xmax,ymin,ymax]或二维向量[min,max]

(其中显示区域为:min

ezmesh(x,y,z) %在缺省的矩形定义域范围[-2π

x=x(s,t)、y=y(s,t)、z=z(s,t)的二元函数z=f(x,y)的网格图。

ezmesh(x,y,z,[smin,smax,tmin,tmax]) %在指定的矩形定义域范围[smin

min

z=f(x,y)的网格图。

ezmesh(x,y,z,[min,max]) %用指定的矩形定义域[min

z=f(x,y)的网格图。

ezmesh(f,…,n) %用指定n*n个栅格点,在缺省(若没有指定)的区域内画出函数

f网的图形。n的缺省值为60。

ezmesh(…,'circ') %在一圆形区域(圆心位于定义域在中心)的范围内画出函数f

的网格图形。

例3-31

>>syms x y

>>ezmesh(x*sin(-x^2-y^2),40,’circ’)

>>colormap [0 0 1]

图形结果为:(图3-6)

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

函数ezmeshc

格式ezmeshc(f) %画出二元数学符号函数z=f(x,y)的网格图形,同时在xy平面上显示其

等高线图。函数f将被显示于缺省的平面区域[-2π

系统将根据函数变动的激烈程度自动选择相应的计算栅格。若函数f

在某些栅格点上没有定义,则这些点将不显示。

ezmeshc(f,domain) %在指定的定义域domain内画出二元函数f(x,y)的网格图及其等高

线图,domain可以是四维向量[xmin,xmax,ymin,ymax]或二维向量

[min,max](其中显示区域为:min

ezmeshc(x,y,z) %在缺省的矩形定义域范围[-2π

数x=x(s,t)、y=y(s,t)、z=z(s,t)的二元函数z=f(x,y)的网格图形与其等高

线图。

ezmeshc(x,y,z,[smin,smax,tmin,tmax]) %在指定的矩形定义域范围[smin

tmin

数z=f(x,y)的网格图形与其等高线图。

ezsurfc(x,y,z,[min,max]) %用指定的定义域[min

z=f(x,y)的网格图与等高线图。

ezmeshc(f,…,n) %用指定n*n个栅格点,在缺省(若没有指定)的区域内画出函数

f的网格图形与等高线图。n的缺省值为60。

ezmeshc(…,'circ') %在一圆形区域(圆心位于定义域在中心)的范围内画出函数f

的网格图形及其等高线图。

例3-32

>>syms x y

>>ezmeshc(x*y/(1 + x^2 + y^2),[-5,5,-2*pi,2*pi],35)

图形结果为图3-7。

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

命令5 画符号函数的图形

函数ezplot

格式ezplot(f) %对于显式函数f=f(x),在缺省的范围[-π

ezplot(f,[min,max]) %在指定的范围[min

中操作;若已经有图形窗口存在,则在标号最高的图形窗口中进行操作。

ezplot(f,[xmin xmax],fign) %在指定标号fign的窗口中、指定的范围[xmin xmax]内画出函数f=f(x)的图形。

ezplot(f,[xmin,xmax,ymin,ymax]) %在平面矩形区域[xmin

上画出函数f(x,y)=0的图形。

ezplot(x,y) %在缺省的范围0

ezplot(x,y,[tmin,tmax]) %在指定的范围[tmin < t < tmax]内画参数形式函数x=x(t)与y=y(t)的图形。

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

例3-33

>>syms x y

>>ezplot(x^6-y^2)

图形结果为图3-8。

例3-34

>>syms x

>>ezplot(exp(x)*sin(x)/x)

>>grid on

图形结果为图3-9。

命令6 三维参量曲线图

函数ezplot3

格式ezplot3(x,y,z) %在缺省的范围0

的图形。

ezplot3(x,y,z,[tmin,tmax]) %在指定的范围tmin < t < tmax.内画空间参数形式的曲线

x=x(t)、y=y(t)与z=z(t)的图形。

ezplot3(…,'animate') %以动画形式画出空间三维曲线。

实验四 MATLAB符号运算

实验四 MATLAB 符号运算 一、实验目的 掌握符号变量和符号表达式的创建,掌握MATLAB 的symbol 工具箱的一些基本应用。 二、实验内容 (1) 符号变量、表达式、方程及函数的表示。 (2) 符号微积分运算。 (3) 符号表达式的操作和转换。 (4) 符号微分方程求解。 三、实验步骤 1. 符号运算的引入 在数值运算中如果求x x x πsin lim 0→,则可以不断地让x 接近于0,以求得表达式接近什么数,但是终究不能令0=x ,因为在数值运算中0是不能作除数的。MATLAB 的符号运算能解决这类问题。输入如下命令: >>f=sym('sin(pi*x)/x') >>limit(f,'x',0) >> f=sym('sin(pi*x)/x') f = sin(pi*x)/x >> limit(f,'x',0) ans = Pi 2. 符号常量、符号变量、符号表达式的创建 1) 使用sym( )创建 输入以下命令,观察Workspace 中A 、B 、f 是什么类型的数据,占用多少字节的内存空间。 >> A=sym('1') >> B=sym('x') >> f=sym('2*x^2+3*y-1') >> clear >> f1=sym('1+2') >> f2=sym(1+2) >> f3=sym('2*x+3') >> f4=sym(2*x+3) >> x=1 >> f4=sym(2*x+3) > A=sym('1') A = 1

>> B=sym('x') B = x >> f=sym('2*x^2+3*y-1') f = 2*x^2+3*y-1 >> clear >> f1=sym('1+2') f1 = 1+2 >> f2=sym(1+2) f2 = 3 >> f3=sym('2*x+3') f3 = 2*x+3 >> f4=sym(2*x+3) ??? Undefined function or variable 'x'. >> x=1 x = >> f4=sym(2*x+3) f4 =

(完整版)MATLAB常用函数大全

一、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)。 当x<0时,sign(x)=-1; 当x=0时,sign(x)=0; 当x>0时,sign(x)=1。 rem(x,y):求x除以y的馀数 gcd(x,y):整数x和y的最大公因数 lcm(x,y):整数x和y的最小公倍数 exp(x):自然指数 pow2(x):2的指数 log(x):以e为底的对数,即自然对数或 log2(x):以2为底的对数 log10(x):以10为底的对数 二、MATLAB常用的三角函数 sin(x):正弦函数 cos(x):余弦函数

tan(x):正切函数 asin(x):反正弦函数 acos(x):反馀弦函数 atan(x):反正切函数 atan2(x,y):四象限的反正切函数 sinh(x):超越正弦函数 cosh(x):超越馀弦函数 tanh(x):超越正切函数 asinh(x):反超越正弦函数 acosh(x):反超越馀弦函数 atanh(x):反超越正切函数 三、适用於向量的常用函数有: min(x): 向量x的元素的最小值 max(x): 向量x的元素的最大值 mean(x): 向量x的元素的平均值 median(x): 向量x的元素的中位数 std(x): 向量x的元素的标准差 diff(x): 向量x的相邻元素的差 sort(x): 对向量x的元素进行排序(Sorting)length(x): 向量x的元素个数 norm(x): 向量x的欧氏(Euclidean)长度sum(x): 向量x的元素总和 prod(x): 向量x的元素总乘积 cumsum(x): 向量x的累计元素总和cumprod(x): 向量x的累计元素总乘积 dot(x, y): 向量x和y的内积 cross(x, y): 向量x和y的外积 四、MATLAB的永久常数

matlab符号运算

MATLAB程序设计教程(9)——MATLAB符号计算 by:ysuncn(欢迎转载,请注明原创信息) 第9章MATLAB符号计算 9.1 符号对象 9.2 符号微积分 9.3 级数 9.4 符号方程求解 9.1 符号对象 9.1.1 建立符号对象 1.建立符号变量和符号常量 MATLAB提供了两个建立符号对象的函数:sym和syms,两个函数的用法不同。 (1) sym函数 sym函数用来建立单个符号量,一般调用格式为: 符号量名=sym('符号字符串') 该函数可以建立一个符号量,符号字符串可以是常量、变量、函数或表达式。 应用sym函数还可以定义符号常量,使用符号常量进行代数运算时和数值常量进行的运算不同。

下面的命令用于比较符号常量与数值常量在代数运算时的差别。 (2) syms函数 函数sym一次只能定义一个符号变量,使用不方便。MATLAB提供了另一个函数syms,一次可以定义多个符号变量。syms函数的一般调用格式为: syms 符号变量名1 符号变量名2 … 符号变量名n 用这种格式定义符号变量时不要在变量名上加字符串分界符(‘),变量间用空格而不要用逗号分隔。 2.建立符号表达式 含有符号对象的表达式称为符号表达式。建立符号表达式有以下3种方法: (1)利用单引号来生成符号表达式。 (2)用sym函数建立符号表达式。 (3) 使用已经定义的符号变量组成符号表达式。 9.1.2 符号表达式运算 1.符号表达式的四则运算 符号表达式的加、减、乘、除运算可分别由函数symadd、symsub、symmul和symdiv来实现,幂运算可以由sympow来实现。

(完整版)matlab函数大全(非常实用)

信源函数 randerr 产生比特误差样本 randint 产生均匀分布的随机整数矩阵 randsrc 根据给定的数字表产生随机矩阵 wgn 产生高斯白噪声 信号分析函数 biterr 计算比特误差数和比特误差率 eyediagram 绘制眼图 scatterplot 绘制分布图 symerr 计算符号误差数和符号误差率 信源编码 compand mu律/A律压缩/扩张 dpcmdeco DPCM(差分脉冲编码调制)解码dpcmenco DPCM编码 dpcmopt 优化DPCM参数 lloyds Lloyd法则优化量化器参数 quantiz 给出量化后的级和输出值 误差控制编码 bchpoly 给出二进制BCH码的性能参数和产生多项式convenc 产生卷积码 cyclgen 产生循环码的奇偶校验阵和生成矩阵cyclpoly 产生循环码的生成多项式 decode 分组码解码器 encode 分组码编码器 gen2par 将奇偶校验阵和生成矩阵互相转换gfweight 计算线性分组码的最小距离 hammgen 产生汉明码的奇偶校验阵和生成矩阵rsdecof 对Reed-Solomon编码的ASCII文件解码rsencof 用Reed-Solomon码对ASCII文件编码rspoly 给出Reed-Solomon码的生成多项式syndtable 产生伴随解码表 vitdec 用Viterbi法则解卷积码 (误差控制编码的低级函数) bchdeco BCH解码器 bchenco BCH编码器 rsdeco Reed-Solomon解码器 rsdecode 用指数形式进行Reed-Solomon解码 rsenco Reed-Solomon编码器 rsencode 用指数形式进行Reed-Solomon编码 调制与解调

Matlab中常见数学函数的使用

给自己看的----Matlab 的内部常数(转) 2008/06/19 14:01 [Ctrl C/V--学校 ] MATLAB 基本知识 Matlab 的内部常数 pi 圆周率 exp(1) 自然对数的底数e i 或j 虚数单位 Inf 或 inf 无穷大 Matlab 的常用内部数学函数

我们也可在matlab中调用maple的命令进行多项式的运算,调用格式如下: maple(’maple中多项式的运算命令’) 如何用matlab进行分式运算 发现matlab只有一条处理分式问题的命令,其使用格式如下: [n,d]=numden(f)把符号表达式f化简为有理形式,其中分子和分母的系数为整数且分子分母不含公约项,返回结果n为分子,d为分母。注意:f必须为符号表达式 不过我们可以调用maple的命令,调用方法如下: maple(’denom(f)’)提取分式f的分母 maple(’numer(f)’)提取分式f的分子 maple(’normal(f)’ ) 把分式f的分子与分母约分成最简形式 maple(’expand(f)’) 把分式f的分子展开,分母不变且被看成单项。 maple(’factor(f)’) 把分式f的分母和分子因式分解,并进行约分。 如何用Matlab进行因式分解 syms 表达式中包含的变量factor(表达式) 如何用Matlab展开 syms 表达式中包含的变量expand(表达式) 如何用Matlab进行化简 syms 表达式中包含的变量simplify(表达式) 如何用Matlab合并同类项 syms 表达式中包含的变量collect(表达式,指定的变量) 如何用Matlab进行数学式的转换 调用Maple中数学式的转换命令,调用格式如下: maple(‘Maple的数学式转换命令’) 即:maple(‘convert(表达式,form)’)将表达式转换成form的表示方式 maple(‘convert(表达式,form, x)’)指定变量为x,将依赖于变量x的函数转换成form的表示方式(此指令仅对form为exp与sincos的转换式有用) 如何用Matlab进行变量替换 syms 表达式和代换式中包含的所有变量subs(表达式,要替换的变量或式子,代换式) 如何用matlab进行复数运算 a+b*i 或 a +b*j表示复数a+bi 或a+bj real(z)求复数z的实部 imag(z)求复数z的虚部 abs(z)求复数z的模 angle(z)求复数z的辐角, conj(z)求复数z的共轭复数 exp(z)复数的指数函数,表示e^z 如何在matlab中表示集合 [a, b, c,…] 表示由a, b, c,…组成的集合(注意:元素之间也可用空格隔开) unique(A) 表示集合A的最小等效集合(每个元素只出现一次) 也可调用maple的命令,格式如下: maple('{a, b, c,…}')表示由a, b, c,…组成的集合 下列命令可以生成特殊的集合: maple(‘{seq(f(i),i=n..m)}’)生成集合{f(n), f(n+1), f(n+2), … , f(m)} 如何用Matlab求集合的交集、并集、差集和补集

实验MATLAB符号计算

实验四符号计算 符号计算的特点:一,运算以推理解析的方式进行,因此不受计算误差积累问题困扰;二,符号计算,或给出完全正确的封闭解,或给出任意精度的数值解(当封闭解不存在时);三,符号计算指令的调用比较简单,经典教科书公式相近;四,计算所需时间较长,有时难以忍受。 在MATLAB中,符号计算虽以数值计算的补充身份出现,但涉及符号计算的指令使用、运算符操作、计算结果可视化、程序编制以及在线帮助系统都是十分完整、便捷的。 MATLAB的升级和符号计算内核Maple的升级,决定着符号计算工具包的升级。但从用户使用角度看,这些升级所引起的变化相当细微。即使这样,本章还是及时作了相应的更新和说明。如MATLAB 6.5+ 版开始启用Maple VIII的计算引擎,从而克服了Maple V计算“广义Fourier变换”时的错误(详见第5.4.1节)。 5.1符号对象和符号表达式 5.1.1符号对象的生成和使用 【例5.1.1-1】符号常数形成中的差异 a1=[1/3,pi/7,sqrt(5),pi+sqrt(5)] % <1> a2=sym([1/3,pi/7,sqrt(5),pi+sqrt(5)]) % <2> a3=sym([1/3,pi/7,sqrt(5),pi+sqrt(5)],'e') % <3> a4=sym('[1/3,pi/7,sqrt(5),pi+sqrt(5)]') % <4> a24=a2-a4 a1 = 0.3333 0.4488 2.2361 5.3777 a2 = [ 1/3, pi/7, sqrt(5), 6054707603575008*2^(-50)] a3 = [ 1/3-eps/12, pi/7-13*eps/165, sqrt(5)+137*eps/280, 6054707603575008*2^(-50)] a4 = [ 1/3, pi/7, sqrt(5), pi+sqrt(5)] a24 = [ 0, 0, 0, 189209612611719/35184372088832-pi-5^(1/2)] 【例5.1.1-2】演示:几种输入下产生矩阵的异同。 a1=sym([1/3,0.2+sqrt(2),pi]) % <1> a2=sym('[1/3,0.2+sqrt(2),pi]') % <2> a3=sym('[1/3 0.2+sqrt(2) pi]') % <3> a1_a2=a1-a2 % a1 = [ 1/3, 7269771597999872*2^(-52), pi] a2 = [ 1/3, 0.2+sqrt(2), pi] a3 = [ 1/3, 0.2+sqrt(2), pi] a1_a2 = [ 0, 1.4142135623730951010657008737326-2^(1/2), 0]

matlab符号运算函数大全

m a t l a b符号运算函数大 全 The Standardization Office was revised on the afternoon of December 13, 2020

算术符号操作 命令 +、-、*、.*、\、.\、/、./、^、.^、’、.’ 功能符号矩阵的算术操作 用法如下: A+B、A-B 符号阵列的加法与减法。 若A与B为同型阵列时,A+B、A-B分别对对应分量进行加减;若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行加减。 A*B 符号矩阵乘法。 A*B为线性代数中定义的矩阵乘法。按乘法定义要求必须有矩阵 A的列数等于矩阵B的行数。即:若 A n*k* B k*m=(a ij)n*k.*(b ij)k*m= C n*m=(c ij)n*m,则,i=1,2,…,n; j=1,2,…,m。或者至少有一个为标量时,方可进行乘法操作,否则 将返回一出错信息。 A.*B 符号数组的乘法。 A.*B为按参量A与B对应的分量进行相乘。A与B必须为同型 阵列,或至少有一个为标量。即: A n*m.* B n*m=(a ij)n*m.*(b ij)n*m= C n*m=(c ij)n*m,则c ij= a ij* b ij, i=1,2,…,n;j=1,2,…,m。 A\B 矩阵的左除法。 X=A\B为符号线性方程组A*X=B的解。我们指出的是,A\B近 似地等于inv(A)*B。若X不存在或者不唯一,则产生一警告信 息。矩阵A可以是矩形矩阵(即非正方形矩阵),但此时要求方 程组必须是相容的。 A.\B 数组的左除法。 A.\B为按对应的分量进行相除。若A与B为同型阵列时, A n*m.\ B n*m=(a ij)n*m.\(b ij)n*m= C n*m=(c ij)n*m,则c ij= a ij\ b ij,i=1,2,…,n; j=1,2,…,m。若若A与B中至少有一个为标量,则把标量扩大为 与另外一个同型的阵列,再按对应的分量进行操作。 A/B 矩阵的右除法。 X=B/A为符号线性方程组X*A=B的解。我们指出的是,B/A粗 略地等于B*inv(A)。若X不存在或者不唯一,则产生一警告信 息。矩阵A可以是矩形矩阵(即非正方形矩阵),但此时要求方 程组必须是相容的。 A./B 数组的右除法。 A./B为按对应的分量进行相除。若A与B为同型阵列时, A n*m./ B n*m=(a ij)n*m./(b ij)n*m= C n*m=(c ij)n*m,则c ij= a ij/b ij,i=1,2,…,n; j=1,2,…,m。若A与B中至少有一个为标量,则把标量扩大为与 另外一个同型的阵列,再按对应的分量进行操作。 A^B 矩阵的方幂。

matlab 常用函数(1)

A axis() axis([xmin xmax ymin ymax]) sets the limits for the x- and y-axis of the current axes. axis([xmin xmax ymin ymax zmin zmax cmin cmax]) sets the x-, y-, and z-axis limits and the color scaling limits (see caxis) of the current axes. axis equal sets the aspect ratio so that the data units are the same in every direction. The aspect ratio of the x-, y-, and z-axis is adjusted automatically according to the range of data units in the x, y, and z directions C clf Clear current figure window G grid off/on The grid function turns the current axes' grid lines on and off. H hold on/off ●The hold function determines whether new graphics objects are added to the graph or replace objects in the graph. ●hold on retains the current plot and certain axes properties so that subsequent graphing commands add to the existing graph. ●hold off resets axes properties to their defaults before drawing new plots. hold off is the default

MATLAB符号计算实验报告

实验六符号计算 学院:数计学院班级:1003班姓名:黄晓丹学号:1051020144 一、实验目的 1、了解富符号对象和数值对象之间的差别,以及它们之间的互相转换 2、了解符号运算和数值运算的特点、区别和优缺点 3、掌握符号对象的基本操作和运算,以及符号运算的基本运用 二、实验内容 1、符号常数形成和使用 (1)符号常数形成中的差异 >> a1=[1/3,pi/7,sqrt(5),pi+sqrt(5)] a1 = 0.3333 0.4488 2.2361 5.3777 >> a2=sym([1/3,pi/7,sqrt(5),pi+sqrt(5)]) a2 = [ 1/3, pi/7, sqrt(5),

6054707603575008*2^(-50)] >> a3=sym('[1/3,pi/7,sqrt(5),pi+sqrt(5)]') a3 = [ 1/3, pi/7, sqrt(5), pi+sqrt(5)] >> a24=a2-a3 a24 = [ 0, 0, 0, 189209612611719/35184372088832-pi-5^(1/2)] (2)把字符表达式转化为符号变量 >> y=sym('2*sin(x)*cos(x)') y = 2*sin(x)*cos(x) >> y=simple(y)

y = sin(2*x) (3)用符号计算验证三角等式 >> syms fai1 fai2;y=simple(sin(fai1)*cos(fai2)-cos(fai1)*sin(fai2)) y = sin(fai1-fai2) (4)求矩阵的行列式值、逆和特征值 >> syms a11 a12 a21 a22;A=[a11,a12;a21,a22] A = [ a11, a12] [ a21, a22] >> DA=det(A),IA=inv(A),EA=eig(A) DA =

完整word版,MATLAB符号运算

符号运算 科学计算包括数值计算和符号计算两种计算,数值计算是近似计算;而符号计算则是绝对精确的计算。 符号变量的生成和使用 1、符号变量、符号表达式和符号方程的生成 (1)、使用sym函数定义符号变量和符号表达式 单个符号变量 sqrt(2) sym(sqrt(2)) %显示精确结果 a=sqrt(sym(2)) %显示精确结果 double(a) sym(2)/sym(3) %显示精确结果 2/5+1/3 sym(2/5+1/3) %显示精确结果 sym(2)/sym(5)+sym(1)/sym(3) %显示精确结果 sym函数定义符号表达式:单个变量定义法,整体定义法 单个变量定义法 a=sym('a') b=sym('b') c=sym('c') x=sym('x') f=a*x^2+b*x+c 整体定义法 f=sym('a*x^2+b*x+c') g=f^2+4*f-2 (2)、使用syms函数定义符号变量和符号表达式 一次可以创建任意多个符号变量syms var1 var2 var3… syms a b c x f=a*x^2+b*x+c g=f^2+4*f-2 (3)、符号方程的生成 函数:数字和变量组陈的代数式 方程:函数和等号组成的等式 用sym函数生成符号方程: equation1=sym('sin(x)+cos(x)=1') 2、符号变量的基本操作 (1)、findsym函数用于寻找符号变量 findsym(f):找出f表达式中的符号变量 findsym(s,n):找出表达式s中n个与x接近的变量 syms a alpha b x1 y findsym(alpha+a+b)

Matlab常见函数汇总

colorbar 显示彩条 getimage 由坐标轴得到图像数据 ice(DIPUM)交互彩色编辑 image 创建和显示图像对象 imagesc 缩放数据并显示为图像 immovie 由多帧图像制作电影 imshow 显示图像 imview 在Image Viewer中显示图像montage 将多个图像帧显示为矩阵蒙太奇movie 播放录制的电影帧 rgbcube 显示一个彩色RGB立方体subimage 在单个图形中显示多幅图像truesize 调整图像的显示尺寸 warp 将图像显示为纹理映射的表面 图像文件输入/输出 Dicominfo 从一条DICOM消息中读取元数据Dicomread 读一幅DICOM图像Dicomwrite 写一幅DICOM图像 Dicom-dict.txt 包含DICOM数据字典的文本文件Dicomuid 产生DICOM唯一的识别器Imfinfo 返回关于图像的文件的信息Imread 读图像文件

Imwrite 写图像文件 图像算术 Imabsdiff 计算两幅图像的绝对差 Imadd 两幅图像相加或把常数加到图像上Imcomplement 图像求补 Imdivide 两幅图像相除,或用常数除图像Imlincomb 计算图像的线性组合 Immultiply 两幅图像相乘或用常数乘图像Imsubtract 两幅图像相减,或从图像中减去常数几何变换 Checkerboard 创建棋盘格图像 Findbounds 求几何变换的输出范围 Fliptform 颠倒TFORM结构的输入/输出Imcrop 修剪图像 Imresize 调整图像大小 Imrotate 旋转图像 Imtransform 对图像应用几何变换 Intline 整数坐标线绘制算法Makersampler 创建重取样器结构 Maketform 创建几何变换结构(TFORM)Pixeldup(DIPUM)在两个方向上复制图像的像素Tformarray 对N-D数组应用几何变换

matlab符号运算符

Matlab符号运算符的使用 一、&&/||/&/| |:数组逻辑或 ||:先决逻辑或 &:数组逻辑与 &&:先决逻辑与 &&和||被称为&和|的short circuit形式。 先决逻辑符号含义: 先判断左边是否为真;若为真,则不再判断右边;若为假,才继续进行或运算 先判断左边是否为假;若为假,则不再判断右边;若为真,才继续进行与运算两种运算符号的区别: 先决逻辑运算的运算对象只能是标量 数组逻辑运算可为任何维数组,运算符两边维数要相同 举例分析: A&B :首先判断A的逻辑值,然后判断B的值,然后进行逻辑与的计算。 A&&B:首先判断A的逻辑值,如果A的值为假,就可以判断整个表达式的值为假, 就可以判断整个表达式的值为假,就不需要再判断B的值。这种用法非常有用, 如果A是一个计算量较小的函数,B是一个计算量较大的函数,那么首先判断A 对减少计算量是有好处的。 另外这也可以防止类似被0除的错误。 Matlab中的if和while语句中的逻辑与和逻辑或都是默认使用short-circuit形式。// 这可能就是有时候用&和| 会报错的原因。

二、系统结构体内的变量 一般都是小写。 matlab区分大小写。 三、== 表示逻辑相等,返回结果,相等为1,不等为0。 四、.*(times)点乘 times Array multiply 数组乘 Syntax c = a.*b c = times(a,b) Description c = a.*b multiplies arrays a an d b element-by-element and returns th e result in c. Inputs a and b must have the same size unless one is a scalar. 注释:a、b要同尺寸,或其中一个为标量。 c = times(a,b) is calle d for th e syntax a.*b when a or b is an object. Example a = [1 2 3]'; b = [5 6 7]'; c = a.*b; 五、矩阵或向量共轭转置“’”和转置“.’” 若矩阵由实数构成,二者作用一样;

最新Matlab中常见数学函数的使用

给自己看的----Matlab的内部常数(转) 2008/06/19 14:01[Ctrl C/V--学校 ] MATLAB基本知识 Matlab的内部常数 pi 圆周率 exp(1) 自然对数的底数e i 或j 虚数单位 Inf或inf 无穷大 Matlab的常用内部数学函数

如何用matlab进行多项式运算 (1)合并同类项 syms 表达式中包含的变量 collect(表达式,指定的变量) (2)因式分解 syms 表达式中包含的变量factor(表达式) (3)展开 syms 表达式中包含的变量 expand(表达式) 我们也可在matlab中调用maple的命令进行多项式的运算,调用格式如下: maple(’maple中多项式的运算命令’) 如何用matlab进行分式运算 发现matlab只有一条处理分式问题的命令,其使用格式如下: [n,d]=numden(f)把符号表达式f化简为有理形式,其中分子和分母的系数为整数且分子分母不含公约项,返回结果n为分子,d为分母。注意:f必须为符号表达式 不过我们可以调用maple的命令,调用方法如下: maple(’denom(f)’)提取分式f的分母 maple(’numer(f)’)提取分式f的分子 maple(’normal(f)’ ) 把分式f的分子与分母约分成最简形式 maple(’expand(f)’) 把分式f的分子展开,分母不变且被看成单项。 maple(’factor(f)’) 把分式f的分母和分子因式分解,并进行约分。 如何用Matlab进行因式分解 syms 表达式中包含的变量factor(表达式) 如何用Matlab展开 syms 表达式中包含的变量expand(表达式) 如何用Matlab进行化简 syms 表达式中包含的变量simplify(表达式) 如何用Matlab合并同类项 syms 表达式中包含的变量collect(表达式,指定的变量) 如何用Matlab进行数学式的转换 调用Maple中数学式的转换命令,调用格式如下: maple(‘Maple的数学式转换命令’) 即:maple(‘convert(表达式,form)’)将表达式转换成form的表示方式 maple(‘convert(表达式,form, x)’)指定变量为x,将依赖于变量x的函数转换成form的表示方式(此指令仅对form为exp与sincos的转换式有用) 如何用Matlab进行变量替换 syms 表达式和代换式中包含的所有变量subs(表达式,要替换的变量或式子,代换式) 如何用matlab进行复数运算 a+b*i 或 a +b*j表示复数a+bi 或a+bj real(z)求复数z的实部 imag(z)求复数z的虚部 abs(z)求复数z的模 angle(z)求复数z的辐角, conj(z)求复数z的共轭复数 exp(z)复数的指数函数,表示e^z 如何在matlab中表示集合 [a, b, c,…] 表示由a, b, c,…组成的集合(注意:元素之间也可用空格隔开) unique(A) 表示集合A的最小等效集合(每个元素只出现一次) 也可调用maple的命令,格式如下: maple('{a, b, c,…}')表示由a, b, c,…组成的集合 下列命令可以生成特殊的集合: maple(‘{seq(f(i),i=n..m)}’)生成集合{f(n), f(n+1), f(n+2), … , f(m)} 如何用Matlab求集合的交集、并集、差集和补集

matlab实验五多项式和符号运算

实验五:Matlab多项式和符号运算 一、实验目的 1.掌握Matlab多项式的运算。 2.了解符号运算。 二、实验内容 1.将多项式()(2)(3)(7)(1) =-+-+化为x的降幂排列。 P x x x x x syms x; y=(x-2)*(x+3)*(x-7)*(x+1); expand(y) ans = x^4-5*x^3-19*x^2+29*x+42 2.求一元高次方程的根。 98765432 --++--++= 53015027313658204100576-28800 x x x x x x x x x syms x y; y=x^9-5*x^8-30*x^7+150*x^6-1365*x^4-820*x^3+410 0*x^2+576*x-2880; solve(y,x) ans = 6.81947687944124431946 1.42761488953013276419+.8192491831*i 2.865487219+2.49263348244446271927*i

-1.887673354+1.812452594*i -.9583509633 -5.922730991 -1.887673354-1.812452594*i 2.865487219-2.49263348244446271927*i 1.42761488953013276419-.8192491831*i 3.求一元高次方程的根,并画出左边多项式函数在[2,2] x∈-区间内的曲线。 42 -+= x x 210 a=[1 0 -2 0 1]; r=roots(a) syms x; x=-2:2; y=[1 0 -2 0 1]; plot(x,y) r = 1.0000 + 0.0000i 1.0000 - 0.0000i -1.0000 -1.0000

MatLab常见函数和运算符号解读

MatLab常见函数和运算符号 基本运算 convhull :凸壳函数 cumprod :累计积 cumsum :累计和 cumtrapz :累计梯形数值积分 delaunay :Delaunay三角化 dsearch :求最近点(这是两个有趣的函数 factor :质数分解inpolygon :搜索多边形内的点 max :最大元素 mean :平均值 median :数组的中间值 min :最小值 perms :向量所有排列组成矩阵 polyarea :多边形的面积 primes :生成质数列表 prod :数组元素积 sort :元素按升序排列 sortrows :将行按升序排列

std :标准差 sum :元素和 trapz :梯形数值积分 tsearch :搜索Delaunay三角形var :方差 voronoi :Voronoi图 del2 :Laplacian离散 diff :差分和近似微分gradient:数值梯度 corrcoef :相关系数 cov :协方差矩阵 xcorr :互相关系数 xcov :互协方差矩阵 xcorr2 :二维互相关 conv :卷积和多项式相乘conv2 :二维卷积 deconv :反卷积 filter :滤波 filter2 :二维数字滤波

傅立叶变换 abs :绝对值和模 angle :相角 cplxpair :按复共扼把复数分类 fft :一维快速傅立叶变换 fft2 :二维快速傅立叶变换 fftshit :将快速傅立叶变换的DC分量移到谱中央ifft :以为逆快速傅立叶变换 ifft2 :二维逆快速傅立叶变换 ifftn :多维逆快速傅立叶变换 ifftshift :逆fft平移 nextpow2 :最相邻的2的幂 unwrap :修正相角 cross :向量叉积 intersect:集合交集 ismember :是否集合中元素 setdiff :集合差集 setxor :集合异或(不在交集中的元素 union :两个集合的并

matlab常用解方程及方程组函数

1. roots 求解多项式的根 r=roots(c) 注意: c 为一维向量,者返回指定多项式的所有根( 包括复根),poly 和roots 是互为反运算,还有就是roots 只能求解多项式的解 还有下面几个函数poly2sym、sym2poly 、eig >>syms x >>y=x A5+3*x A3+3; >>c=sym2poly(y);%求解多项式系数 >>r=roots(c); >>poly(r) 2. residue 求留数 [r, p, k] = residue(b,a) >>b = [ 5 3 -2 7] >>a = [-4 0 8 3] >>[r, p, k] = residue(b,a) 3. solve 符号解方程(组)——使用最多的 g = solve(eq1,eq2,...,eqn,var1,var2,...,varn) 注意:eqn 和varn 可以是符号表达式,也可以是字符串表达式,但是使用符号表达式时不能有“=号”,假如说varn 没有给出,使用findsym 函数找出默认的求解变量。返回的g 是个结构体,以varn 为字段。由于符号求解的局限性,好多情况下可能得到空矩阵,此时只能用数值解法 解方程A=solve('a*xA2 + b*x + c') 解方程组B=solve('a*uA2 + vA2', 'u - v = 1', 'aA2 - 5*a + 6') 4. fzero 数值求零点 [x,fval,exitflag,output]=fzero(fun,x0,options,p1,p2...) fun 是目标函数,可以是句柄(@)、inline 函数或M 文件名 x0 是初值,可以是标量也可以是长度为2 的向量,前者给定一个位置,后者是给定一个范围options 是优化参数,通过optimset 设置,optimget 获取,一般使用默认的就可以了,具体参照帮助 p1,p2...为需要传递的其它参数 假如说(x/1446)A2+p/504.1+(t/330.9)*(log(1-x/1446)+(1-1 /5.3)*x/1446)=0 的根,其中p,t 是已知

matlab符号计算实验报告

1. 已知x=6,y=5, 利用符号表达式求z =>> syms x >> z=(x+1)/(sqrt(x+3)-sqrt(y)); >> subs(z,x,5) ans =6/(8^(1/2)-y^(1/2)) >> subs(ans,6) ans = 15.8338 2. 分解因式。 (1)x y -44; >> syms x y >> factor(x^4-y^4) ans =(x-y)*(x+y)*(x^2+y^2) (2)x x x +++642 12575151 >> syms x >> factor(125*x^6+75*x^4+15*x^2+1) ans =(5*x^2+1)^3 3. 化简表达式 (1)sin cos cos sin ββββ-1212; >> syms x y >> f=sin(x).*cos(y)-cos(x).*sin(y); >> sfy1=simple(f) 结果:sfy1 =sin(x-y) (2)x x x +++248321 >> syms x >> f=(4*x^2+8*x+3)/(2*x+1);sfy1=simplify(f) sfy1 =2*x+3 4、求下列极限,将完成实验的程序写到文件sy1.m 中: (1) (2) (3) (4) (5) (1)>> syms x >> F1=atan(x)/(x); >> w=limit(F1) w =1 (2)>> syms x F2=((1+x)/(1-x))^(1/x); >> w=limit(F2) w =exp(2) (3)>> syms x F3=(x.*log(1+x))/(sin(x^2)); >> w=limit(F3) w =1 (4)>> syms x F4=atan(x)/(x); >> w=limit(F4,x,inf) w =0 (5)>> syms x F5=(1/(1-x)-1/(1-x^3)); >> w=limit(F5,x,1) w =NaN 5、求下列函数的导数,将完成实验的程序写到文件sy2.m 中: 1、 >> x = sym('x'); >> y1=(cos(x))^3-cos(3*x); >> diff(y1)ans =-3*cos(x)^2*sin(x)+3*sin(3*x) 2、 >> x = sym('x'); >> y2=x.*sin(x).*(log(x)); >> diff(y2)ans =sin(x)*log(x)+x*cos(x)*log(x)+sin(x) 3、 >> x = sym('x'); >> y3=(x.*exp(x)-1)/sin(x); >> diff(y3) ans =(exp(x)+x*exp(x))/sin(x)-(x*exp(x)-1)/sin(x)^2*cos(x) 4、 x x x x F 1011lim 2??? ??-+=→3 1115lim()11x F x x →=---20sin )1ln(lim 3x x x F x +=→x x F x arctan lim 10→=arctan 4lim x x F x →∞=x x y 3cos cos 13-=x x x y ln sin 2=x xe y x sin 13-=cos x y e x =

MATLAB实验——符号运算讲解

实验一符号运算 班级:电气4班姓名:叶元亮学号:B2012052409 一、实验目的 1、了解符号、数值、字符等数据类型的差别 2、了解符号运算的特点、优缺点 3、掌握符号变量的创建和运算,以及其运算的基本应用 4、掌握基本的符号绘图指令 二、实验内容 1、指出下面的 M1,M2,M3 分别是什么,并上机验证。 取a=1、b=2、c=3、d=4,M1=[a,b;c,d],M2='[a,b;c,d]',M3=sym('[a,b;c,d]'); >> a=1,b=2,c=3,d=4 a = 1 b = 2 c = 3 d = 4 >> M1=[a,b;c,d] M1 =

1 2 3 4 >> M2='[a,b;c,d]' M2 = [a,b;c,d] >> M3=sym('[a,b;c,d]') M3 = [ a, b] [ c, d] 结论:M1是矩阵,2是字符串,M3是字符变量。 2、下面2种取值情况下,计算b a b a- + 并赋给相应情况下的c1、c2,问c1、c2相等吗,为什么?上机验证。 (1) a1=1010; b1=10-10; (2)将a1、a2作为符号变量赋给a2、b2; >> a1=1e10; b1=1e-10; >> c1=(a1+b1-a1)/b1 c1 = >> a2=sym(a1); b2=sym(b1); >> c2=(a2+b2-a2)/b2 c2 = 1

结果:c1~=c2,因为c1=0,c2=1,a1、b1是具体的数值,a2、b2是符号变量。 3、符号表达式中自由变量的确定生成符号变量a 、b 、x 、X 、Y 、 k=3、z=a y w c sin +,表达式为 Y k bx azX f )(2++=。 (1)找出f 中的全部自由符号变量 (2)在f 中确定最优先的自由符号变量 (3)在f 中确定2个和3个自由变量时的执行情况 (4)试通过对各符号变量与x 的ASCII 值做绝对差值,分析自 由变量优秀顺序,能得出什么结论? >> syms a b x X Y k=sym('3'); z=sym('c*sqrt(w)+y*sin(a)'); f=a*z*X+(b*x^2+k)*Y; >> findsym(f) ans = X, Y, a, b, c, w, x, y >> findsym(f,1) ans = x >> findsym(f,2) ans = x,y

相关主题
文本预览
相关文档 最新文档