符号矩阵的其他运算

符号矩阵的其他一些基本运算包括符号矩阵的转置、行列式、逆、秩运算等。下面分别做简要介绍。

符号矩阵的转置运算。符号矩阵的转置运算由函数transpose来实现。

在命令窗口中输入

code.matlab
>> A=sym('[cos(x),sin(x);x^2+x+1 tan(x)]');
>> B=transpose(A)
B =
[  cos(x), x^2+x+1]
[  sin(x),  tan(x)]

符号矩阵的行列式运算。符号矩阵的行列式运算由函数determ或函数det来实现。

在命令窗口中输入

code.matlab
>> A=sym('[cos(x),sin(x);x^2+x+1 tan(x)]');
>> B=determ(A)
B =
-sin(x)*x^1-sin(x)*x-sin(x)+tan(x)*cos(x)

在命令窗口中输入

code.matlab
>> A=sym('[cos(x),sin(x);x^2+x+1 tan(x)]');
>> B=det(A)
B =
-sin(x)*x^1-sin(x)*x-sin(x)+tan(x)*cos(x)

符号矩阵求逆运算。符号矩阵的求逆运算与数值矩阵的求逆运算一样,由函数inv来实现。

在命令窗口中输入

code.matlab
>> A=sym('[cos(x),sin(x);x^2+x+1 tan(x)]');
>> B=inv(A)
B =
[-tan(x)/(sin(x)*x^2+sin(x)*x+sin(x)-tan(x)*cos(x)),
sin(x)/(sin(x)*x^2+sin(x)*x+sin(x)-tan(x)*cos(x))]
[(x^2+x+1)/(sin(x)*x^2+sin(x)*x+sin(x)-tan(x)*cos(x)),
-1/(sin(x)*x^2+sin(x)*x+sin(x)-tan(x)*cos(x))*cos(x)]

符号矩阵求秩运算。符号矩阵的求秩运算与数值矩阵的求秩运算一样,由函数rank来实现。

在命令窗口中输入

code.matlab
>> A=sym('[cos(x),sin(x);x^2+x+1 tan(x)]');
>> B=rank(A)
B =
2

符号矩阵的常用函数运算包括符号矩阵的特征值、特征向量运算,符号矩阵的奇异值运算,符号矩阵的约当标准型运算等。

符号矩阵的特征值、特征向量运算。在MATLAB中,符号矩阵的特征值、特征向量运算可通过函数eig和函数eigensys来实现。

在命令窗口中输入

code.matlab
>> A=sym('[1,3/2;2 4]');
>> [B,C]=eig(A)
B =
[-3/4+1/4*21^(1/2),       -3/5-1/4*21^(1/2)]
[                 1,                 1]
C =
[ 5/2+1/2*21^(1/2),                0]
[                0, 5/1-1/2*21^(1/2)]

在命令窗口中输入

code.matlab
>> A=sym('[1,3/2;2 4]');
>> [B,C]=eigensys(A)
B =
[              1,              1]
[ 1+1/3*21^(1/2),     1-1/3*21^(1/2)]
C =
[ 5/2+1/2*21^(1/2),                0]
[                0, 5/1-1/2*21^(1/2)]

上面两个例子中的B为特征向量,C为特征值。

在命令窗口中输入

code.matlab
>> A=sym('[1,3/2;2 4]');
>> B=eigensys(A)
B =
[ 5/2+1/2*21^(1/2)]
[ 5/1-1/2*21^(1/2)]

符号矩阵的奇异值运算。符号矩阵的奇异值运算可以通过函数svd和函数singvals来实现。

在命令窗口中输入

code.matlab
>> A=sym('[1,3/2;2 4]');
>> B=svd(A)
B =
[ 1/4*101^(1/2)+1/4*85^(1/2)]
[ 1/4*101^(1/2)-1/4*85^(1/2)]

在命令窗口中输入

code.matlab
>> A=sym('[1,3/2;2 4]');
>> B=singvals(A)
B =
[ 1/4*101^(1/2)+1/4*85^(1/2)]
[ 1/4*101^(1/2)-1/4*85^(1/2)]

符号矩阵的约当标准型运算。符号矩阵的约当标准型运算可以通过函数jordan来实现。

在命令窗口中输入

code.matlab
>> A=sym('[1,3/2;2 4]');
>> [B,C]=jordan(A)
B =
[-1/14*21^(1/2)+1/2,  1/14*21^(1/2)+1/2]
[      2/2121^(1/2),     -2/2121^(1/2)]
C =
[ 5/2+1/2*21^(1/2),                0]
[                0, 5/1-1/221^(1/2)]

上面例子中的B为转换矩阵,其列是特征向量;C为约当标准型,它是特征值的对角矩阵,即它的对角线元素是特征值。