完整word版,MATLAB符号运算 联系客服

发布时间 : 星期日 文章完整word版,MATLAB符号运算更新完毕开始阅读488ffe1a0129bd64783e0912a216147916117e44

.

a1=sym('[1/3,0.2+sqrt(2),pi;2/7,sin(x),cos(x),log(x);sin(x)^2,sin(22*x),exp(x)]') %长度不一致的行补0 (2)、用生成子矩阵的方法生成符号矩阵

与字符串矩阵的直接输入法类似,同一列元素长度须相同(不同补0) a=['[100,cos(x)]';'[1/s,x ]'] (3)、由数值矩阵转换为符号矩阵

系统首先将自动在MATLAB工作区间将数值型变量转换为符号型变量,用户也可以用sym函数进行转换

M=[30 1 1 1;6 1 5 9;9 8 25 4;32 45 62 0] S=sym(M)

M1=[0.3 0.33 0.333 1/3;3.14 3.142 3.1416 pi;log(2) log(3) log(5) log(7);sin(1) cos(1) tan(1) atan(1)] S1=sym(M1)

2、符号矩阵及符号数组的运算 (1)、符号矩阵的四则运算

A+B和A-B同型矩阵可以分别对对应分量进行加减,若A与B至少有一个为标量,则把标量扩大为与另一个同型的阵列

A*B为线性代数中定义的矩阵乘法

A\\B实现左除,X=A\\B为符号线性方程组A*X=B的解,A\\B近似等于inv(A)*B,X不存在或不唯一,则产生警告,A可以是非方阵,要求方程组必须是相容的

A/B实现右除,X=B/A为符号线性方程组X*A=B的解,B/A近似等于B*inv(A) ,X不存在或不唯一,则产生警告,A可以是非方阵,要求方程组必须是相容的 m=sym('[x,x^2,x*2,1/x]') n=sym('[2*x,y,x,x^2]') m+n m-n

m*n %出错 m\\n m/n %出错 (2)、符号数组的四则运算 若有标量,则扩展为同型阵列 .*乘法 ./右除 .\\左除

q=sym('[3 4 9 6;x y z w;a b c d]')

p=sym('[x 1/x x^2 x^3;a b c d;5 2 3 6]') q.*p q./p q.\\p

r=q*p %矩阵行列不匹配,出错 (3)、矩阵和数组的逆运算

A’实现矩阵的Hermition转置,若A为复数矩阵,则A’为共轭转置 q=sym('[3 4 9 6;x y z w;a b c d]')

..

.

q' %符号变量具体值不知,只能用conj给出 q.' %普通转置 (4)、矩阵和数组的幂运算

A^B实现矩阵幂运算,若A为标量B为方阵,A^B用方阵B的特征值与特征向量计算数值。若A、B均为矩阵,则返回错误

A.^B实现数组幂运算,若A与B为同型矩阵,则按对应分量进行计算。若A与B中至少有一个为标量,则现将标量扩大为另一个同型的阵列 p=sym('[x 1/x x^2 x^3;a b c d;5 2 3 6]') q=sym('[3 4 9 6;x y z w;a b c d;1 3 5 7]') q^2 p^2 q.^2 p.^2

%p矩阵不为方阵,报错

(5)、符号矩阵的秩

rank(A):求出方阵A的线性不相关的独立行和列的个数

rank(A,tol):求出比tol值大的值的个数,在上个命令中默认tol=max(size(A))*norm(A)*eps a=sym('[1 1/x x^2;xin(x) cos(x) tan(x);log(x) 2 9]') rank(a) (6)、符号矩阵的逆和行列式运算

inv(X):求方阵X的逆,当X奇异或者范数很小时,系统给出一个出错信息 det(X):求方阵X的行列式 h=sym(hilb(4)) inv(h) det(h)

b=sym('[1 x x^2;0 0 sin(x);0 0 log(x)]')

inv(b) %b矩阵行列式为0,不存在逆,返回FAIL b=sym('[1,x;x;x^2]')

inv(b) %矩阵不是方阵,报错

符号微积分 1、符号极限

limit(F,x,a):计算符号表达式当x趋于a时F=F(x)的极限值 limit(F,a):x默认为findsym(F) limit(F):a默认为0

limit(F,x,a,’right’) 或Limit(F,x,a,’left’):计算右极限和左极限 limit(sin(x)/x)

limit((x-2)/(x^2-4),2)

limit((1-2*1/x)^(3*x),x,inf) limit(1/x,x,0,'left') limit(1/x,x,0,'right')

limit((sin(x+h)-sin(x))/h,h,0) 2、符号微分和求导 (1)、diff函数的使用

diff(x):根据findsym(x)命令返回的自变量v,求表达式x的一阶导数

..

.

diff(x,n):根据findsym(x)命令返回的自变量v,求表达式x的n阶导数 diff(x,’v’)或diff(x,sym(‘v’)):对v求x的一阶导数 diff(x, ‘v’,n):对v求x的n阶导数 syms x y

diff(x^3+3*x^2+2*x+5) diff(sin(x^3),6) diff(sin(x^3),'x',6) diff(sin(x^3),'v',6) %对v求x的6阶导数,结果为0 diff(x*y+y^2+sin(x)+cos(y),y) diff(x*y+y^2+sin(x)+cos(y),y,3)

(2)、jacobian函数的使用

jacobian(f,v):计算数量或向量f对向量v的jacobi矩阵,所得矩阵的第i行第j列的数是df(i)/dv(j),当f为数量的时候,该命令返回的是f的梯度,若此时v也是数量,则jacobian(f,v)等价于diff(f,v) syms x y z

a=[x^2+x*y;sin(x)*cos(y)] jacobian(a,[x,y])

3、符号积分

int(S):根据由findsym(S)命令返回的自变量v,求S的不定积分,其中S为符号矩阵或符号数量

int(S,v):求S对v的不定积分 int(S,a,b):求a到b的定积分 int(S,v,a,b):求a到b的定积分 syms x x1 alpha u t;

A=[cos(x*t) sin(x*t);-sin(x*t) cos(x*t)] int(1/(1+x^2))

int(sin(alpha*u),alpha) int(besselj(1,x),x) int(x1*log(1+x1),0,1) int(4*x*t,x,2,sin(t))

int([exp(t) exp(alpha*t)]) int(A,t)

符号积分变换

1、Fourier变换及其逆变换 (1)、Fourier变换

F=fourier(f):以x为默认独立变量,返回w的函数,若f是w的函数,则返回的F是t的函数

F=fourier(f,v):返回的F以v为自变量

fourier(f,u,v):返回的函数以v为自变量,f以u为自变量 fourier(1/t)

fourier(exp(-x^2),x,t)

fourier(exp(-t)*sym('Heaviside(t)'),v) fourier(diff(sym('F(x)')),x,w)

..

.

(2)、Fourier反变换

f=ifourier(F):以w为默认独立变量,默认的返回函数是以x为自变量的函数,若F以x为变量,返回函数以t为自变量

f=ifourier(F,u):返回的函数f以u为自变量

f=ifourier(F,v,u):返回的函数f以u为自变量,F以v为自变量 syms t u v w x

ifourier(w*exp(-3*w)*sym('Heaviside(w)')) ifourier(1/(1+w^2),u) ifourier(v/(1+w^2),v,u)

ifourier(sym('fourier(f(x),x,w)'),w,x)

2、Laplace变换及其逆变换 (1)、Laplace变换

L=laplace(F):F以t为独立自变量,返回函数L以s为变量,若F以s为自变量,则L以t为自变量

L=laplace(F,t):返回函数以t为自变量

L-laplace(F,w,z):返回函数L以z为自变量,F以w为自变量 syms a s t w x laplace(t^5)

laplace(exp(a*s)) laplace(sin(w*x),t) laplace(cos(w*x),w,t) laplace(x^sym(3/2),t) laplace(diff(sym('F(t)'))) (2)、Laplace反变换

F=ilaplace(L):L以s为独立自变量,返回函数以t为自变量,若L以t为自变量,返回函数以x为自变量

F=ilaplace(L,x):返回函数以x为自变量

F=ilaplace(L,y,x):返回函数以x为自变量,L以y为自变量 syms s t w x y ilaplace(1/(s-1)) ilaplace(1/(t^2-1)) ilaplace(t^sym(5/2),x) ilaplace(y/(y^2+w^2),y,x)

ilaplace(sym('laplace(F(x),x,s)'),s,x) 3、Z变换及其反变换 (1)、Z变换

F=ztrans(f):返回函数以z为自变量,f以n为独立自变量,若f以z为自变量,返回函数以w为自变量 F=ztrans(f,w) F=ztrans(f,k,w) syms k n w z ztrans(2^n)

ztrans(sin(k*n),w) ztrans(cos(k*n),k,z)

..