当前位置:文档之家› 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

常数,=0.060651209…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.00

y2 =

1.001

命令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])

>>F3 = factor(sym('890'))

计算结果为:

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 =

34093

d1 =

40992

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,…,xn求解。若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 特征多项式

实验四 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程序设计教程(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符号运算函数大全

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 矩阵的方幂。

完整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符号运算符

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; 五、矩阵或向量共轭转置“’”和转置“.’” 若矩阵由实数构成,二者作用一样;

第9章MATLAB符号计算_习题答案

第9章MATLAB符号计算 习题9 一、选择题 1 .设有a=sym(4)。则1/a+1/a 的值是( A . 0.5 B . 1/2 2 .函数factor(sym(15))的值是( A . '15' B. 15 3 .在命令行窗口输入下列命令: >> f=sym(1); >> eval(i nt(f,1,4)) 则命令执行后的输 出结果是 A . 3 4 . MATLAB A . tailor 5. MATLAB A . solve 二、填空题 1. 在进行符号运算之前首先要 建立符号对象,sym, syms 2. 对于“没有定义”的极限, 大的极限,MATLAB给出的结果为 3. 在命令行窗口输入下列命 令: >> syms n; >> s=symsu m(n ,1,10) 命令执行后s的 值是 ________________________ , 4. 在MATLAB 中,函数 )。B C . 1/4+1/4 D . 2/a )。D C . [ 1, 3, 5] D . [ 3, 5] ,所使用的函数或命令有__________ 和 ________________________________ 代表________ 。符号代数方程,求解变量 5. 在MATLAB符号计算中 三、应用题 1 .分解因式。 (1) x9-1 (3) 125X6+75X4+15X2+1)。A B . 4 C . 5 D . 1将函数展开为幕级数,所使用的函数是( )。D B . tayler C . diff 用于符号常微分方程求解的函数是( )。C B . solver C . dsolve D . taylor D . dsolver MATLAB给出的结果为 _________ ;对于极限值为无穷 _______ 。 NaN, Inf 55 solve(s,v)用于代数方程符号求解,其中s代表________ , v y的二阶导数表示为__________ 。D2y (2) X4+X3+2X2+X+1 / 、 2 2 2 (4) X +y +z +2(xy+yz+zx) (1):

Matlab符号变量

Matlab的符号运算功能强大,看了些资料,都比较啰嗦,然后再次总结为一个m 文件测试大部分符号运算功能%% 符号变量与符号表达式%%%%%%%%%%%%%%%%%%%%%%%%%%% %1.符号变量与符号表达式 %%%%%%%%%%%%%%%%%%%%%%%%%%% clear all ; clc; close all; % f =sym( 'sin(x)+5x') % f ——符号变量名 % sin(x)+5x——符号表达式 % ' '——符号标识 % 符号表达式一定要用' ' 单引号括起来matlab才能识别 % ' ' 的内容可以是符号表达式,也可以是符号方程。 % 例: % f1=sym('a*x^2+b*x+c') ——二次三项式 % f2=sym('a*x^2+b*x+c=0' )——方程 % f3=sym('Dy+y^2=1') ——微分方程 % 符号表达式或符号方程可以赋给符号变量,以后调用方便;也可以不赋给符号变量直接参与运算 % syms 命令用来建立多个符号量,一般调用格式为: % syms 变量1 变量2 ... 变量n %% 符号矩阵的创建 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %2.符号矩阵的创建 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 数值矩阵A=[1,2;3,4] % A=[a,b;c,d] ——不识别 % @1.用matlab函数sym创建矩阵(symbolic的缩写) % 命令格式:A=sym('[ ]') % ※ 符号矩阵内容同数值矩阵 % ※ 需用sym指令定义 % ※ 需用' '标识 % 例如: A = sym('[a , 2*b ; 3*a , 0]') % A = % [ a, 2*b] % [3*a, 0] % 这就完成了一个符号矩阵的创建。 % 注意:符号矩阵的每一行的两端都有方括号,这是与 matlab数值矩阵的一个重要区别。%@2.用字符串直接创建矩阵(这种方法创建的没有什么用处)

MATLAB符号计算函数用法总结

MATLAB符号计算函数用法总结 符号计算是对未赋值的符号对象(可以是常数、变量、表达式)进行运算和处理。MTALAB具有符号数学工具箱(Symbolic Math toolbox),将符号运算结合到MATLAB的属具运算环境。符号数学工具箱是建立在Maple软件基础上的。 算术符号操作: 命令有:+、-、*、.*、\、.\、/、./、^、.^、’、.’ 用法如下: A+B、A-B符号阵列的加法和减法。 若A与B为同型阵列时,A+B、A-B分别对对应分量进行加减;若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行加减。 A*B符号矩阵乘法。 A*B为线性代数中定义的矩阵乘法。按乘法定义要求必须有矩阵A的列数等于矩阵B的行数。即:若 An*k*Bk*m=(aij)n*k.*(bij)k*m=Cn*m=(cij)n*m,则,i=1,2,…,n;j=1,2,…,m。 或者至少有一个为标量时,方可进行乘法操作,否则将返回一出错 信息。 A.*B符号数组的乘法。 A.*B为按参量A与B对应的分量进行相乘。A与B必须为同型阵列,或至少有一个为标量。即: An*m.*Bn*m=(aij)n*m.*(bij)n*m=Cn*m=(cij)n*m,则cij= aij* bij,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为同型阵列时, An*m.\Bn*m=(aij)n*m.\(bij)n*m=Cn*m=(cij)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(A)。若X不存在或者不唯一,则产生一警告信息。矩阵A可以是矩形矩阵(即非正方形矩阵),但此时要求方程组必须是相容的。 A./B数组的右除法。 A./B为按对应的分量进行相除。若A与B为同型阵列时, An*m./Bn*m=(aij)n*m./(bij)n*m=Cn*m=(cij)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数组的方幂。 A.^B为按A与B对应的分量进行方幂计算。若A与B为同型阵列时, An*m..^Bn*m=(aij)n*m..^(bij)n*m=Cn*m=(cij)n*m,则cij= aij^bij,i=1,2,…,n; j=1,2,…,m。若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行操作。 A'矩阵的Hermition转置。 若A为复数矩阵,则A'为复数矩阵的共轭转置。即,若A=(aij)=(xij+i*yij),则 。

matlab符号运算函数大全

2.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.'为真正的矩阵转置,其没有进行共轭转置。 例2-1

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中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应 的分量进行操作。

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 矩阵的方幂。

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