首页 > 编程笔记 > MATLAB笔记 阅读:2

MATLAB det():求矩阵的行列式(附带实例)

行列式是线性代数中的一个重要概念,它是一个方阵(行数与列数相同的矩阵)所对应的标量。行列式可以用来判断矩阵是否可逆、描述线性变换的性质、求解线性方程组等。

在 MATLAB 中,利用 det() 函数可以求解矩阵的行列式,其调用格式如下:
d = det(x) % 求解矩阵 x 的行列式,如果输入的参数是一个常数,则返回该常数

【实例】求解矩阵的行列式。在编辑器中编写以下程序,并保存为 det_test.m 文件:
rng("default");          % 数据可复现
for i = 1:3
    S = rand(i+2);       % 产生随机矩阵
    s(i) = det(S);       % 计算矩阵的行列式
    disp('Matrix:');
    disp(S);
    disp('deter:');
    disp(num2str(s(i)));
end

在命令行窗口中输入以下语句,并查看输出结果:
>> det_test
Matrix:
    0.8147    0.9134    0.2785
    0.9058    0.6324    0.5469
    0.1270    0.0975    0.9575
deter:
-0.27665

Matrix:
    0.9649    0.4854    0.9157    0.0357
    0.1576    0.8003    0.7922    0.8491
    0.9706    0.1419    0.9595    0.9340
    0.9572    0.4218    0.6557    0.6787
deter:
0.35299

Matrix:
    0.7577    0.7060    0.8235    0.4387    0.4898
    0.7431    0.0318    0.6948    0.3816    0.4456
    0.3922    0.2769    0.3171    0.7655    0.6463
    0.6555    0.0462    0.9502    0.7952    0.7094
    0.1712    0.0971    0.0344    0.1869    0.7547
deter:
0.064745

函数 det() 除可以计算数值矩阵的行列式之外,还可以计算符号矩阵的行列式,此时的调用格式如下:
B = det(A) % 返回符号数、符号变量或函数矩阵 A 的行列式
B = det(A,'Algorithm','minor-expansion') % 使用代数余子式展开法(minor-expansion)计算矩阵 A 的行列式
B = det(M) % 返回符号矩阵或矩阵函数 M 的行列式

【实例】求解符号矩阵的行列式。在命令行窗口中输入以下语句,并查看输出结果。
>> syms a b c d
>> A = [a b; c d];
>> B = det(A)
B =
a*d - b*c

>> A1 = sym([2/3 1/3; 1 1]);
>> B2 = det(A1)
B2 =
1/3

>> syms a x
>> A2 = [1, a*x^2+x, x;
         0, a*x, 2;
         3*x+2, a*x^2-1, 0];
>> B2 = det(A2,'Algorithm','minor-expansion')
B2 =
3*a*x^3 + 6*x^2 + 4*x + 2

相关文章