文档库 最新最全的文档下载
当前位置:文档库 › MatLab教程第 2 章符号计算

MatLab教程第 2 章符号计算

MatLab教程第 2 章符号计算
MatLab教程第 2 章符号计算

第 2 章 符号计算

所谓符号计算是指:解算数学表达式、方程不是在离散化的数值点上进行,而是凭借一系列恒等式,数学定理,通过推理和演绎,力求获得解析结果。这种计算建立在数值完全准确表达和推演严格解析的基础之上,因此所得结果是完全准确的。 本书之所以把符号计算内容放在第2章,是出于以下考虑:一,相对于MATLAB 的数值计算“引擎”和“函数库”而言,符号计算的“引擎”和“函数库”是独立的。二,在相当一些场合,符号计算解算问题的指令和过程,显得比数值计算更自然、更简明。三,大多数理工科的本科学生在学过高等数学和其他专业基础课以后,比较习惯符号计算的解题理念和模式。 在编写本章时,作者在充分考虑符号计算独立性的同时,还考虑了章节的自完整性。为此,本章不但全面地阐述符号计算,而且在最后一节还详细叙述了符号计算结果的可视化。 这样的安排,将使读者在阅读完本章后,就有可能运用MATLAB 的符号计算能力去解决相当一些具体问题。

2.1

符号对象和符号表达式

2.1.1 符号对象的创建和衍生 一 生成符号对象的基本规则 二

符号数字

【例2.1-1】符号(类)数字与数值(类)数字之间的差异。

a=pi+sqrt(5) sa=sym('pi+sqrt(5)') Ca=class(a) Csa=class(sa) vpa(sa-a)

a =

5.3777 sa =

pi+sqrt(5) Ca = double Csa = sym ans =

.138223758410852e-16

三 符号参数 四

符号变量

【例2.1-2】用符号计算研究方程02

=++w vz uz 的解。 (1)

syms u v w z Eq=u*z^2+v*z+w;

result_1=solve(Eq) % findsym(Eq,1)

result_1 =

-u*z^2-v*z

ans =

w

(2)

result_2=solve(Eq,z)

result_2 =

1/2/u*(-v+(v^2-4*u*w)^(1/2))

1/2/u*(-v-(v^2-4*u*w)^(1/2))

【例2.1-3】对独立自由符号变量的自动辨认。

(1)

syms a b x X Y

k=sym('3');

z=sym('c*sqrt(delta)+y*sin(theta)');

EXPR=a*z*X+(b*x^2+k)*Y;

(2)

findsym(EXPR)

ans =

X, Y, a, b, c, delta, theta, x, y

(3)

findsym(EXPR,1)

ans =

x

(4)

findsym(EXPR,2),findsym(EXPR,3)

ans =

x,y

ans =

x,y,theta

【例2.1-4】findsym确定自由变量是对整个矩阵进行的。syms a b t u v x y

A=[a+b*x,sin(t)+u;x*exp(-t),log(y)+v]

findsym(A,1)

A =

[ a+b*x, sin(t)+u]

[ x*exp(-t), log(y)+v]

ans =

x

2.1.2符号计算中的算符

2.1.3符号计算中的函数指令

2.1.4符号对象的识别

【例2.1-5】数据对象及其识别指令的使用。

(1)

clear

a=1;b=2;c=3;d=4;

Mn=[a,b;c,d]

Mc='[a,b;c,d]'

Ms=sym(Mc)

Mn =

1 2

3 4

Mc =

[a,b;c,d]

Ms =

[ a, b]

[ c, d]

(2)

SizeMn=size(Mn)

SizeMc=size(Mc)

SizeMs=size(Ms)

SizeMn =

2 2

SizeMc =

1 9

SizeMs =

2 2

(3)

CMn=class(Mn)

CMc=class(Mc)

CMs=class(Ms)

CMn =

double

CMc =

char

CMs =

sym

(4)

isa(Mn,'double')

isa(Mc,'char')

isa(Ms,'sym')

ans =

1

ans =

1

ans =

1

(5)

whos Mn Mc Ms

Name Size Bytes Class Attributes Mc 1x9 18 char Mn 2x2 32 double Ms 2x2 312 sym

2.2符号数字及表达式的操作

2.2.1 数值数字与符号数字之间的转换 一 数值数字向符号数字的转换 二 符号数字向双精度数字转换

2.2.2

符号数字的任意精度计算

【例2.2-1】digits, vpa 指令的使用。

digits p0=sym('(1+sqrt(5))/2') pr=sym((1+sqrt(5))/2) % pd=sym((1+sqrt(5))/2,'d') % e32r=vpa(abs(p0-pr) ) e16=vpa(abs(p0-pd),16) e32d=vpa(abs(p0-pd))

Digits = 32 p0 =

(1+sqrt(5))/2 pr =

7286977268806824*2^(-52) pd =

1.6180339887498949025257388711907 e32r =

.543211520368251e-16 e16 = 0.

e32d =

.543211520368251e-16

2.2.3 符号表达式的基本操作

【例2.2-2】简化3

2381261+++=

x

x x f 。 syms x

f=(1/x^3+6/x^2+12/x+8)^(1/3); g1=simple(f) g2=simple(g1) g1 =

(2*x+1)/x g2 = 2+1/x

2.2.4 表达式中的置换操作 一

子表达式置换操作

【例2.2-3】对符号矩阵??

?

???d c b a 进行特征向量分解。

clear all

syms a b c d W

[V,D]=eig([a b;c d])

[RVD,W]=subexpr([V;D],W)

V =

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

[ 1, 1] D =

[ 1/2*d+1/2*a+1/2*(d^2-2*a*d+a^2+4*b*c)^(1/2), 0] [ 0, 1/2*d+1/2*a-1/2*(d^2-2*a*d+a^2+4*b*c)^(1/2)] RVD =

[ -(1/2*d-1/2*a-1/2*W)/c, -(1/2*d-1/2*a+1/2*W)/c]

[ 1, 1]

[ 1/2*d+1/2*a+1/2*W, 0]

[ 0, 1/2*d+1/2*a-1/2*W]

W =

(d^2-2*a*d+a^2+4*b*c)^(1/2)

二通用置换指令

【例2.2-4】用简单算例演示subs的置换规则。

(1)

syms a x;f=a*sin(x)+5

f =

a*sin(x)+5

(2)

f1=subs(f,'sin(x)',sym('y')) %<2> class(f1)

f1 =

a*y+5

ans =

sym

(3)

f2=subs(f,{a,x},{2,sym('pi/3')}) %<3> class(f2)

f2 =

3^(1/2)+5

ans =

sym

(4)

f3=subs(f,{a,x},{2,pi/3}) %<4> class(f3)

f3 =

6.7321

ans =

double

(5)

f4=subs(subs(f,a,2),x,0:pi/6:pi) %<5> class(f4)

f4 =

5.0000

6.0000 6.7321

7.0000 6.7321 6.0000 5.0000 ans =

double

(6)

f5=subs(f,{a,x},{0:6,0:pi/6:pi}) %<6> class(f5) f5 =

5.0000 5.5000

6.7321 8.0000 8.4641

7.5000 5.0000 ans = double

2.3

符号微积分

2.3.1

极限和导数的符号计算

【例2.3-1】试求kx

x x ??? ?

?

-∞→11lim 。

syms x k

Lim_f=limit((1-1/x)^(k*x),x,inf) Lim_f = exp(-k)

【例2.3-2】求??

????=x x t t a f ln cos 3求dx df , 22dt f d ,dtdx f

d 2。

syms a t x;f=[a,t^3;t*cos(x), log(x)]; df=diff(f) dfdt2=diff(f,t,2) dfdxdt=diff(diff(f,x),t) df =

[ 0, 0] [ -t*sin(x), 1/x] dfdt2 =

[ 0, 6*t] [ 0, 0] dfdxdt =

[ 0, 0] [ -sin(x), 0]

【例2.3-3】求????

??????=)sin()cos(),(2121212

x x x e x x x x f 的Jacobian 矩阵?

????

????????????

?????????????2313221

2

2111x f x f x f x f x f x f 。 syms x1 x2;f=[x1*exp(x2);x2;cos(x1)*sin(x2)];

v=[x1 x2];fjac=jacobian(f,v) fjac =

[ exp(x2), x1*exp(x2)] [ 0, 1] [ -sin(x1)*sin(x2), cos(x1)*cos(x2)]

【例2.3-4】x x f sin )(=,求)0(x f ',)(x f x '。 (1)

clear

syms d positive

f_p=sin(x); % df_p=limit((subs(f_p,x,x+d)-f_p)/d,d,0) % <4>

df_p0=limit((subs(f_p,x,d)-subs(f_p,x,0))/d,d,0) % <5> df_p = cos(x) df_p0 = 1

(2)

f_n=sin(-x); df_n=limit((f_n-subs(f_n,x,x-d))/d,d,0) % <7> df_n0=limit((subs(f_n,x,0)-subs(f_n,x,-d))/d,d,0) %<8> df_n = -cos(x) df_n0 = -1

(3)

f=sin(abs(x));

dfdx=diff(f,x)

% <10>

dfdx =

cos(abs(x))*abs(1,x)

(4)

xn=-3/2*pi:pi/50:0;xp=0:pi/50:3/2*pi;xnp=[xn,xp(2:end)]; hold on

plot(xnp,subs(f,x,xnp),'k','LineWidth',2.5) % <13> plot(xn,subs(df_n,x,xn),'--r','LineWidth',2.5) plot(xp,subs(df_p,x,xp),':r','LineWidth',2.5)

legend(char(f),char(df_n),char(df_p),'Location','NorthEast')% <16> grid on

xlabel('x') hold off

图 2.3-1 函数及其导函数

【例2.3-5】设y y x sin )sin cos(=+,求dx

dy 。 (1)

clear

g=sym('cos(x+sin(y(x)))=sin(y(x))') % <3> dgdx=diff(g,x) % <4> g =

cos(x+sin(y(x)))=sin(y(x)) dgdx =

-sin(x+sin(y(x)))*(1+cos(y(x))*diff(y(x),x)) = cos(y(x))*diff(y(x),x)

(2)

disp(maple('isolate',dgdx,diff('y(x)',x))) % <5> diff(y(x),x) = sin(x+sin(y(x)))/(-sin(x+sin(y(x)))*cos(y(x))-cos(y(x)))

【例2.3-6】求x xe x f =)(在0=x 处展开的8阶Maclaurin 级数。

syms x

r=taylor(x*exp(x),9,x,0) %忽略9阶及9阶以上小量的展开 r =

x+x^2+1/2*x^3+1/6*x^4+1/24*x^5+1/120*x^6+1/720*x^7+1/5040*x^8

【例2.3-7】求)sin(2y x +在x y ==00,处的截断8阶小量的Taylor 展开近似。

TL1=maple('mtaylor(sin(x^2+y),[x=0,y=0],8)') class(TL1) TL1 =

y+x^2-1/6*y^3-1/2*x^2*y^2+1/120*y^5-1/2*x^4*y+1/24*x^2*y^4-1/6*x^6-1/5040*y^7+1/12*x^4*y^3 ans = char

2.3.2 序列/级数的符号求和

【例2.3-8】求∑-=1

03

],[t t k t ,∑∞

=??

?

???--12

)1(,)12(1k k k k 。 syms k t;f1=[t k^3];f2=[1/(2*k-1)^2,(-1)^k/k];

s1=simple(symsum(f1)) s2=simple(symsum(f2,1,inf)) s1 =

[ 1/2*t*(t-1), k^3*t] s2 =

[ 1/8*pi^2, -log(2)]

2.3.3

符号积分

【例2.3-9】求

dx x x

x +?11。

clear syms x

f=sqrt((1+x)/x)/x s=int(f,x)

s=simple(simple(s)) f =

((1+x)/x)^(1/2)/x s =

((1+x)/x)^(1/2)/x*(-2*(x^2+x)^(3/2)+2*(x^2+x)^(1/2)*x^2+log(1/2+x+(x^2+x)^(1/2))*x^2)/((1+x)*x)^(1/2) s =

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

【例2.3-10】求dx x x bx ax ????

?

?????sin 1

2。 syms a b x;f=[a*x,b*x^2;1/x,sin(x)];

disp('The integral of f is');pretty(int(f)) The integral of f is

[ 2 3] [1/2 a x 1/3 b x ] [ ] [ log(x) -cos(x) ]

【例2.3-11】求积分

???

++2

1

22222)(x x y

x xy

dzdydx z y x 。

syms x y z

F2=int(int(int(x^2+y^2+z^2,z,sqrt(x*y),x^2*y),y,sqrt(x),x^2),x,1,2) VF2=vpa(F2) F2 =

-6072064/348075*2^(1/2)+64/225*2^(3/4)+14912/4641*2^(1/4)+1610027357/6563700 VF2 =

224.92153573331143159790710032805

【例 2.3-12】求阿基米德(Archimedes )螺线)0(,>?=a a r θ在0=θ到?间的曲线长

度函数,并求出π?2,1==a 时的曲线长度。 (1)

syms a r theta phi positive x=r*cos(theta);x=subs(x,r,a*theta); y=r*sin(theta);y=subs(y,r,a*theta);

dLdth=sqrt(diff(x,theta)^2+diff(y,theta)^2); L=simple(int(dLdth,theta,0,phi)) L =

1/2*a*(phi*(1+phi^2)^(1/2)+asinh(phi))

(2)

L_2pi=subs(L,[a,phi],sym('[1,2*pi]')) L_2pi_vpa=vpa(L_2pi)

L_2pi =

pi*(1+4*pi^2)^(1/2)+1/2*asinh(2*pi) L_2pi_vpa =

21.256294148209098800702512272566

(3)

L1=subs(L,a,sym('1'));

ezplot(L1*cos(phi),L1*sin(phi),[0,2*pi])

grid on hold on x1=subs(x,a,sym('1')); y1=subs(y,a,sym('1'));

h1=ezplot(x1,y1,[0,2*pi]);

set(h1,'Color','r','LineWidth',5) title(' ')

legend('螺线长度-幅角曲线','阿基米德螺线') hold off

图 2.3-2 阿基米德螺线(粗红)和螺线长度函数(细蓝)

2.4

微分方程的符号解法

2.4.1 符号解法和数值解法的互补作用 2.4.2 求微分方程符号解的一般指令 2.4.3

微分方程符号解示例

【例2.4-1】求

dx dt y dy dt

x ==-,的解。 S=dsolve('Dx=y,Dy=-x')

disp([blanks(12),'x',blanks(21),'y']),disp([S.x,S.y]) S =

x: [1x1 sym] y: [1x1 sym]

x y

[ -C1*cos(t)+C2*sin(t), C1*sin(t)+C2*cos(t)]

【例2.4-2】图示微分方程2

)(y y x y '-'=的通解和奇解的关系。

y=dsolve('(Dy)^2-x*Dy+y=0','x') % <1> clf,hold on,

ezplot(y(1),[-6,6,-4,8],1) % cc=get(gca,'Children'); % set(cc,'Color','r','LineWidth',5) %

for k=-2:0.5:2;ezplot(subs(y(2),'C1',k),[-6,6,-4,8],1);end, % hold off,title('\fontname{隶书}\fontsize{16}通解和奇解') y =

1/4*x^2 -C1^2+x*C1

图 2.4-1 通解和奇解曲线

【例2.4-3】求解两点边值问题:0)5(,0)1(,32==='-''y y x y y x 。 (1)

y=dsolve('x*D2y-3*Dy=x^2','y(1)=0,y(5)=0','x') y =

31/468*x^4-1/3*x^3+125/468

(2)

ezplot(y,[-1,6]) hold on

plot([1,5],[0,0],'.r','MarkerSize',20) text(1,1,'y(1)=0') text(4,1,'y(5)=0')

title(['x*D2y-3*Dy=x^2',', y(1)=0,y(5)=0']) hold off

图 2.4-2 两点边值问题的解曲线

2.5

符号变换和符号卷积

2.5.1

Fourier 变换及其反变换

【例 2.5-1】求0

00

1)(<>???=t t t f 的Fourier 变换。

(1)

syms t w

ut=heaviside(t);

UT=fourier(ut) UT =

pi*dirac(w)-i/w

(2)

Ut=ifourier(UT,w,t)

Ut =

heaviside(t)

【例2.5-2】根据Fourier 变换定义,用积分指令求方波脉冲else

t A

y 2

/2/0

ττ<<-??

?=的

Fourier 变换。 (1)

syms A t w

syms tao positive

yt=heaviside(t+tao/2)-heaviside(t-tao/2); Yw=fourier(A*yt,t,w) Yw =

2*A/w*sin(1/2*tao*w)

(2)

Yt=ifourier(Yw,w,t) Yt =

A*(heaviside(t+1/2*tao)-heaviside(t-1/2*tao))

(3)

yt3=subs(yt,tao,3)

Yw3=subs(Yw,[A,tao],[1,3]) subplot(2,1,1)

Ht=ezplot(yt3,[-3,3]);

set(Ht,'Color','r','LineWidth',3)

subplot(2,1,2),ezplot(Yw3) yt3 =

heaviside(t+3/2)-heaviside(t-3/2) Yw3 =

2/w*sin(3/2*w)

【例2.5-3】求x

t x

t e t f x t <≥??

?=--0

)()

(的Fourier 变换,在此x 是参数,t 是时间变量。 syms t x w;

ft=exp(-(t-x))*heaviside(t-x); F1=simple(fourier(ft,t,w)) F2=simple(fourier(ft)) F3=simple(fourier(ft,t)) F1 =

1/(1+i*w)/exp(i*x*w) F2 =

i*exp(-i*t*w)/(i+w) F3 =

-exp(-t*(2+i*t))/(-1+i*t)

2.5.2 Laplace 变换及其反变换

【例2.5-4】求?

?

?

?

??----t at e t bt e b t u a t 2sin )()(δ的Laplace 变换。 syms t s;

syms a b positive % <2> Dt=dirac(t-a); Ut=heaviside(t-b);

Mt=[Dt,Ut;exp(-a*t)*sin(b*t),t^2*exp(-t)];MS=laplace(Mt,t,s) MS =

[ exp(-s*a), exp(-s*b)/s] [ 1/b/((s+a)^2/b^2+1), 2/(s+1)^3]

【例2.5-5】验证Laplace 时移性质:0)}

({)}()({0000>=---t t f L e t t U t t f L st

syms t s

syms t0 positive

ft=sym('f(t-t0)')*heaviside(t-t0) FS=laplace(ft,t,s)

FS_t=ilaplace(FS,s,t)

ft =

f(t-t0)*heaviside(t-t0) FS =

exp(-s*t0)*laplace(f(t),t,s) FS_t =

f(t-t0)*heaviside(t-t0)

2.5.3 Z 变换及其反变换

【例2.5-6】求序列f n n ()(.)=-???

?

?026105

n n n <=>0

00

的Z 变换,并用反变换验算。 (1)

syms n

Delta=sym('charfcn[0](n)'); %

<2>

D0=subs(Delta,n,0); % D15=subs(Delta,n,15);

%

disp('[D0,D15]');disp([D0,D15]) [D0,D15] [ 1, 0]

(2)

syms z

fn=2*Delta+6*(1-(1/2)^n) FZ=simple(ztrans(fn,n,z)); disp('FZ = ')

pretty(FZ) FZ_n=iztrans(FZ,z,n) fn =

2*charfcn[0](n)+6-6*(1/2)^n FZ =

2

4 z + 2 -------------- 2

2 z -

3 z + 1 FZ_n =

2*charfcn[0](n)+6-6*(1/2)^n

2.5.4 符号卷积

【例2.5-7】已知系统冲激响应h t T

e U t t T

()()/=

-1,求u t e U t t ()()=-输入下的输出响应。 syms T t tao

ut=exp(-t); ht=exp(-t/T)/T; uh_tao=subs(ut,t,tao)*subs(ht,t,t-tao); yt=simple(simple(int(uh_tao,tao,0,t))) yt =

-(exp(-t)-exp(-t/T))/(T-1)

【例2.5-8】采用Laplace 变换和反变换求上例的输出响应。

syms s

yt=ilaplace(laplace(ut,t,s)*laplace(ht,t,s),s,t); yt=simple(yt) yt =

(-exp(-t)+exp(-t/T))/(T-1)

【例2.5-9】求函数u t U t U t ()()()=--1和h t te U t t ()()=-的卷积。

syms tao

t=sym('t','positive'); ut=heaviside(t)-heaviside(t-1); ht=t*exp(-t);

yt=int(subs(ut,t,tao)*subs(ht,t,t-tao),tao,0,t) yt=collect(yt,'heaviside(t-1)') yt =

1+t*heaviside(t-1)*exp(1-t)-heaviside(t-1)+(-t-1)/exp(t) yt =

(exp(1-t)*t-1)*heaviside(t-1)+1+(-t-1)/exp(t)

2.6

符号矩阵分析和代数方程解

2.6.1

符号矩阵分析

【例2.6-1】求矩阵A a a a a =???

?

??111221

22的行列式、逆和特征根。

syms a11 a12 a21 a22

A=[a11,a12;a21,a22] DA=det(A) IA=inv(A) EA=eig(A) A =

[ a11, a12] [ a21, a22] DA =

a11*a22-a12*a21 IA =

[ a22/(a11*a22-a12*a21), -a12/(a11*a22-a12*a21)] [ -a21/(a11*a22-a12*a21), a11/(a11*a22-a12*a21)] EA =

1/2*a11+1/2*a22+1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2) 1/2*a11+1/2*a22-1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)

【例2.6-2】著名的Givens 旋转(变换)???

???-=t t t t G cos sin sin cos 对矩阵??

?

???=23212123A 的旋转作用。 (1)

syms t

A=sym([sqrt(3)/2,1/2;1/2,sqrt(3)/2])

G=[cos(t),-sin(t);sin(t),cos(t)]; GA=G*A A =

[ sqrt(3/4), 1/2] [ 1/2, sqrt(3/4)] GA =

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

(2)

An=subs(GA,t,110/180*pi);

Op=[0;0];

Ad=double(A);

v1=[Op,Ad(:,1)]';v2=[Op,Ad(:,2)]';

u1=[Op,An(:,1)]';u2=[Op,An(:,2)]';

plot(v1(:,1),v1(:,2),'--k',v2(:,1),v2(:,2),'b')

axis([-1,1,-1,1]),axis square

hold on

hu=plot(u1(:,1),u1(:,2),'--k',u2(:,1),u2(:,2),'b'); set(hu,'LineWidth',4)

title('Givens Rotation')

legend(' v1',' v2',' u1',' u2','Location','South') hold off

grid on

【例 2.6-3】求d

n p

q n d q p q d

n

p q p n d

++=++-=+-=+--=

22

10

4

81

,,,线性方

程组的解。

(1)

A=sym([1 1/2 1/2 -1;1 1 -1 1;1 -1/4 -1 1;-8 -1 1 1]);

b=sym([0;10;0;1])

X1=A\b

b =

10

1

X1 =

1

8

8

9

(2)

S=solve('d+n/2+p/2-q','d+n-p+q-10','d-n/4-p+q','-8*d-n+p+q-1'); disp([' d',' n',' p',' q'])

disp([S.d,S.n,S.p,S.q])

d n p q

[ 1, 8, 8, 9]

2.6.2 线性方程组的符号解 2.6.3

一般代数方程组的解

【例2.6-4】求方程组uy vz w ^20++=,y z w ++=0关于z y ,的解。

S=solve('u*y^2+v*z+w=0','y+z+w=0','y','z') disp('S.y'),disp(S.y),disp('S.z'),disp(S.z) S =

y: [2x1 sym] z: [2x1 sym] S.y

-1/2/u*(-2*u*w-v+(4*u*w*v+v^2-4*u*w)^(1/2))-w -1/2/u*(-2*u*w-v-(4*u*w*v+v^2-4*u*w)^(1/2))-w S.z

1/2/u*(-2*u*w-v+(4*u*w*v+v^2-4*u*w)^(1/2)) 1/2/u*(-2*u*w-v-(4*u*w*v+v^2-4*u*w)^(1/2))

【例2.6-5】solve 指令求q p n d =++22,10=-++p q d n ,p n

d q =-+4

构成的“欠定”方程组解。

syms d n p q

eq1=d+n/2+p/2-q;eq2=n+d+q-p-10;eq3=q+d-n/4-p; S=solve(eq1,eq2,eq3,d,n,p,q);

disp([' S.d',' S.n',' S.p',' S.q']) disp([S.d,S.n,S.p,S.q])

Warning: 3 equations in 4 variables. > In solve at 113 In sym.solve at 49

S.d S.n S.p S.q

[ d, 8, 4*d+4, 3*d+6]

【例2.6-6】求2)2(=+x x 的解。

clear all,syms x;

s=solve('(x+2)^x=2','x') s =

.69829942170241042826920133106081

2.7

利用MAPLE 的深层符号计算资源

2.7.1

经典特殊函数的调用

【例2.7-1】求?x

dt t

0 ln 1,)1 ,0(∈x 。注意:被积函数在0=t 无定义,在-

=1t 处为负无穷。

(1)

syms t x

ft=1/log(t);

sx=int(ft,t,0,x) sx =

-Ei(1,-log(x))

(2)

x=0.5:0.1:0.9

sx_n=-mfun('Ei',1,-log(x))

x =

0.5000 0.6000 0.7000 0.8000 0.9000

sx_n =

-0.3787 -0.5469 -0.7809 -1.1340 -1.7758

2.7.2MAPLE库函数在线帮助的检索树

(1)

mhelp index

Index of help descriptions

Calling Sequence

?index[category] or help(index, category)

Description

- The following categories of topics are available in the help subsystem:

expression operators for forming expressions

function list of Maple functions

misc miscellaneous facilities

module topics related to modules

packages descriptions of library packages

procedure topics related to procedures and programming

statement list of Maple statements

To access these help pages, you must prefix the category with index,

thus ?

index[category].

(2)

mhelp index[function]

Index of descriptions for standard library functions

Description

- The following are the names of Maple's standard library functions. For

more

information, see ?f where f is any of these functions.

about abs add addcoords additionally addproperty addressof AFactor AFactors AIrreduc AiryAi AiryAiZeros AiryBi AiryBiZeros algebraic algsubs alias allvalues anames andmap AngerJ antihermitian antisymm apply applyop applyrule arccos arccosh arccot arccoth arccsc arccsch arcsec arcsech arcsin arcsinh arctan arctanh argument Array array ArrayDims ArrayElems ArrayIndFns ArrayOptions assemble assign assigned asspar assume assuming asympt ... (注:省略号是作者所加,以省篇幅。)

writeto zero Zeta zip ztrans _ See Also

libname, index[package]

(3)

2.7.3 发挥MAPLE 的计算潜力

【例2.7-2】求递推方程f n f n f n ()()()=----3122的通解。 (1)

gs1=maple('rsolve(f(n)=-3*f(n-1)-2*f(n-2),f(k));')

%<1>

gs1 =

(2*f(0)+f(1))*(-1)^k+(-f(0)-f(1))*(-2)^k

(2)

gs2=maple('rsolve','f(n)=-3*f(n-1)-2*f(n-2)','f(k)')

%<2>

gs2 =

(2*f(0)+f(1))*(-1)^k+(-f(0)-f(1))*(-2)^k

【例2.7-3】求f xyz =的Hessian 矩阵。 (1)

FH1=maple('hessian(x*y*z,[x,y,z]);') FH1 =

matrix([[0, z, y], [z, 0, x], [y, x, 0]])

(2)

FH2=maple('hessian','x*y*z','[x,y,z]') FH2 =

matrix([[0, z, y], [z, 0, x], [y, x, 0]])

(3)

FH=sym(FH2) FH =

[ 0, z, y] [ z, 0, x] [ y, x, 0]

2.8

符号计算结果的可视化

2.8.1 直接可视化符号表达式 一

单独立变量符号函数的可视化

【例2.8-1】绘制y e t t

=-233

2

2cos 和它的积分?=t dt t y t s 0 )()(在]4 ,0[π间的图形(图

2.8-1)。

syms t tao

y=2/3*exp(-t/2)*cos(sqrt(3)/2*t); s=subs(int(y,t,0,tao),tao,t); subplot(2,1,1) % ezplot(y,[0,4*pi]),ylim([-0.2,0.7]) grid on subplot(2,1,2) ezplot(s,[0,4*pi]) grid on

title('s = \inty(t)dt')

二 双独立变量符号函数的可视化

【例 2.8-2】借助可视化手段,加深Taylor 展开的邻域近似概念。图形研究函数)sin (),(2y x y x f +=在x y ==00,处的截断8阶小量的Taylor 展开(例2.3-7讨论过)。 (1)

TL1=maple('mtaylor(sin(x^2+y),[x=0,y=0],8)')

TL1 =

y+x^2-1/6*y^3-1/2*x^2*y^2+1/120*y^5-1/2*x^4*y+1/24*x^2*y^4-1/6*x^6-1/5040*y^7+1/12*x^4*y^3

(2)

Fxy='sin(x^2+y)'

Fxy_TL1=[Fxy, '-(',TL1,')'] Fxy =

sin(x^2+y) Fxy_TL1 =

sin(x^2+y)-(y+x^2-1/6*y^3-1/2*x^2*y^2+1/120*y^5-1/2*x^4*y+1/24*x^2*y^4-1/6*x^6-1/5040*y^7+1/12*x^4*y^3)

(3)

clf ezsurf(Fxy,[-4,4,-6,6]) shading interp view([-30,50])

实验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符号计算(含作业)

第 2 章符号计算 符号计算: 解算数学表达式、方程不是在离散化的数值点上进行,而是凭借一系列恒等式,数学定理,通过推理和演绎,获得解析结果。 符号计算建立在数值完全准确表达和推演严格解析的基础之上,所得结果完全准确。 特点: 一.相对于MATLAB的数值计算“引擎”和“函数库”而言,符号计算的“引擎”和“函数库”是独立的。 二.在相当一些场合,符号计算解算问题的命令和过程,显得比数值计算更自然、更简明。 三.大多数理工科的本科学生在学过高等数学和其他专业基础课以后,比较习惯符号计算的解题理念和模式。 2.1符号对象和符号表达式 MATLAB依靠基本符号对象(包括数字、参数、变量)、运算符及一些预定义函数来构造和衍生符号表达式和符号方程。 2.1.1基本符号对象和运算算符 1.生成符号对象的基本规则 ●任何基本符号对象(数字、参数、变量、表达式、函数)都必须借助 专门的符号命令sym、syms、symfun定义。 ●任何包含符号对象的表达式或方程,将继承符号对象的属性。

2.精准符号数字和符号常数 符号(类)数字的定义: sym(Num) 采用精准数值类数创建精准的符号数字(推荐格式!) sc=sym(Num) 采用精准数值类数创建精准的符号常数sc(推荐格式!) 说明:若输入量Num是精准的浮点数(如0.321、10/3等),能生成精准的符号数字; 若输入量Num是诸如sin(0.3)的数值表达式,那么就只能生成由数字表达式获得的16位精度的近似符号数字。 sym('Num') 采用有理分数字符串创建精准的符号数字 sc=sym('Num') 采用有理分数字符串创建精准的符号常数sc 说明: Num必须处于(英文状态下的)单引号内,构成字符串(关于字符串参见附录A); 只有当字符串数字'Num'采用诸如321/1000、10/3等整数构成的有理分数形式表达时,sym('Num') 才能生成精准的符号数字; 若字符串数字用诸如0.321、3.21e-1等“普通小数或科学记述数”表达,那么只能产生“近似符号数字”。在默认情况下,该近似符号数字为32位精度。 【例2.1-1】 (1)创建完全精准的符号数字或数字表达式 clear all R1=sin(sym(0.3)) % 输入量为普通小数 R2=sin(sym(3e-1)) % 输入量为科学记述数 R3=sin(sym(3/10)) % 输入量为有理分数 R4=sin(sym('3/10')) % 输入量为“整数构成的有理分数”字符串数字 disp(['R1属于什么类别?答:',class(R1)]) disp(['R1与R4是否相等?(是为1,否为0)答:',int2str(logical(R1==R4))]) R1 = sin(3/10) R2 = sin(3/10) R3 = sin(3/10) R4 = sin(3/10) R1属于什么类别?答:sym R1与R4是否相等?(是为1,否为0)答:1 (2)产生具有32位精度的“近似”符号数字(杜绝使用!) S1=sin(sym('0.3')) % sym的输入量是字符串小数,生成32位精度下的 % 近似符号数,进而在sin作用下给出近似符号数。 S2=sin(sym('3e-1')) % syms的输入量是字符串科学记述数。 eRS=vpa(abs(R1-S1),64); disp(['S1属于什么类别?答:',class(S1)]) disp(['S1与R1是否相同?答: ',int2str(logical(R1==S1))]) disp('S1与R1的误差为') disp(double(eRS)) S1 = 0.29552020666133957510532074568503

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

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符号运算函数大全

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

相关文档