MATLAB符号矩阵的四则运算
·A+B和A-B命令可以实现符号阵列的加法和减法。若A与B为同型阵列时,A+B、A-B分别对对应分量进行加减;若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=A/B为符号线性方程组X*A=B的解。需要指出的是, B/A粗略地等于B*inv(A)。若X不存在或者不唯一,则提示警告信息。矩阵A可以是矩形矩阵(即非正方形矩阵),但此时要求方程组必须是相容的。
例题 符号矩阵的四则运算
>> a=sym('[2*x,1/x,x^2,sin(x)]')
a =
[ 2*x, 1/x, x^2, sin(x)]
>> b=sym('[x,y,y^2,y*2]')
b =
[ x, y, y^2, 2*y]
>> a+b
ans =
[ 3*x, y + 1/x, x^2 + y^2, 2*y + sin(x)]
>> a-b
ans =
[ x, 1/x - y, x^2 - y^2, sin(x)- 2*y]
>> a'*b
ans =
[ 2*x*conj(x), 2*y*conj(x), 2*y^2*conj(x), 4*y*conj(x)]
[ x/conj(x), y/conj(x), y^2/conj(x), (2*y)/conj(x)]
[ x*conj(x)^2, y*conj(x)^2, y^2*conj(x)^2, 2*y*conj(x)^2]
[ x*sin(conj(x)), y*sin(conj(x)), y^2*sin(conj(x)), 2*y*sin(conj(x))]
>> a\b
ans =
[ 1/2, y/(2*x), y^2/(2*x), y/x]
[ 0, 0, 0, 0]
[ 0, 0, 0, 0]
[ 0, 0, 0, 0]
>> a/b
Warning: System is inconsistent. Solution does not exist.
ans =
Inf
由程序结果可见,由于a/b的结果不存在或者不唯一,所以系统提示错误信息,并将其值定为Inf。