第八章 线性代数基础 1.矩阵的重要运算 1.1 方阵的行列式 方阵的行列式的值由det 函数计算得出; 【例1】 计算矩阵A=[1 2 2;2 3 5;4 5 7]的行列式的值。 >> A=[1 2 2;2 3 5;4 5 7];det(A) ans = 4 【例2】 计算矩阵A=[a b;c d]的行列式的值。 >> sy ms a b c d;A=[a b;c d],det(A) A = [ a, b] [ c, d] ans = a*d-b*c 1.2 矩阵的秩 矩阵的秩由rank 函数来计算。 【例3】 计算矩阵A=[1 2 2;2 3 5;4 5 7]的秩。 >> rank(A) ans = 3 1.3 矩阵的维数和长度 size() % 求矩阵的维数 (columns & rows)。 length() % 求矩阵的长度,矩阵的长度用向量(或 columns)数定义。表示的是矩阵的列数和行数中的最大数。 【例 4】>> a=[10,20,42;34,20,4;198,34,6;10 20 30]; >> size(a) ans = 4 3 >> length(a) ans = 4 注意 size(a)与 length(a)两者之间的区别。 1.4 矩阵的迹 矩阵的迹定义为该矩阵对角线上的各元素之和,也等于该矩阵的特征值之和。Matlab调用格式为:trace(); 【例 5】求矩阵A=[1 2 30;2 20 3;3 2 11]的迹 >> A=[1 2 30;2 20 3;3 2 11];trace(A) ans = 32 1.5 转置运算 在 MATLAB 中,矩阵转置运算的表达式和线性代数一样,即对于矩阵A,其转置矩阵的MATLAB 表达式为 A’或 transpose(A)。但应该注意,在 MATLAB 中,有几种类似于转置运算的矩阵元素变换运算是线性代数中没有的,他们是: fliplr(A) 将A 左右翻转; flipu d(A) 将A 上下翻转; rot90(A) 将A 逆时针方向旋转90。 【例 6】求矩阵A=[1 2 30;2 20 3;3 2 11]的转置矩阵 >> A=[1 2 30;2 20 3;3 2 11],B=A' A = 1 2 30 2 20 3 3 2 11 B = 1 2 3 2 20 2 30 3 11 >> transpose(A) ans = 1 2 3 2 20 2 30 3 11 >> rot90(A) ans = 30 3 11 2 20 2 1 2 3 1.6 逆矩阵运算 矩阵的逆运算是矩阵运算中很重要的一种运算。它在线性代数及计算方法中都有很多的论述,而在 MATLAB 中,众多的复杂理论只变成了一个简单的命令 inv ()。 【例7】 求矩阵A=[1 2; 3 4]的逆矩阵。 >> A=[1 2;3 4],invA=inv(A),A*invA A = 1 2 3 4 invA = -2.0000 1.0000 1.5000 -0.5000 ans = 1.0000 0 0.0000 1.0000 从ans变量的结果可以看出,A的逆矩阵没有求错。 ...