det
矩阵行列式
说明
示例
计算矩阵的行列式
创建一个 3×3 的方阵 A
。
A = [1 -2 4; -5 2 0; 1 0 3]
A = 3×3
1 -2 4
-5 2 0
1 0 3
计算 A
的行列式。
d = det(A)
d = -32
确定矩阵是否为奇异矩阵
检查为何该行列式不是精确的奇异性测度。
通过将单位矩阵 eye(10)
乘以一个小数字来创建一个 10×10 的矩阵。
A = eye(10)*0.0001;
矩阵 A
沿主对角线上的元素数非常少。但是,A
不是奇异的,因为它是单位矩阵的倍数。
计算 A
的行列式。
d = det(A)
d = 1.0000e-40
该行列式非常小。abs(det(A)) < tol
形式的容差检验可能将此矩阵标记为奇异矩阵。虽然矩阵的行列式接近于零,但 A
实际并不是病态的。因此,A
不接近奇异矩阵。矩阵的行列式可以任意接近于零,而不传达有关奇异性的信息。
要研究 A
是否为奇异矩阵,请使用 cond
或 rcond
函数。
计算 A
的条件数。
c = cond(A)
c = 1
结果确认 A
不是病态的。
计算奇异矩阵的行列式
检查一个具有较大非零行列式的精确奇异矩阵。从理论上讲,任何奇异矩阵的行列式都为零,但由于浮点计算的性质,这个目标并非总能实现。
创建一个 17×17 的对角占优奇异矩阵 A
,并查看非零元素的模式。
A = diag([36 54 24 46 64 78 88 94 96 94 88 78 64 46 24 54 36]); S = diag([-27 -12 -13 -24 -33 -40 -45 -48 -49 -48 -45 -40 -33 -12 -27 -36],1); A = A + S + rot90(S,2); spy(A)
A
是奇异矩阵,因为各行线性相关。例如,sum(A)
生成一个由零值组成的向量。
计算 A
的行列式。
d = det(A)
d = 2.6698e+10
A
的行列式相当大,尽管 A
是奇异的。实际上,A
的行列式应正好为零!由于 MATLAB® 实现的 LU 分解(det
用它来计算行列式)中汇总了舍入误差,因此 d
不精确。此结果演示计算数值行列式的一些重要方面。有关详细信息,请参阅局限性部分。
输入参数
A
— 输入矩阵
数值方阵
输入矩阵,指定为数值方阵。
数据类型: single
| double
复数支持: 是
局限性
由于以下限制,请勿使用 det
检查某矩阵是否为奇异矩阵。请改用 cond
或 rcond
。
局限性 | 结果 |
---|---|
行列式的幅值通常与矩阵的条件数不相关。 | 矩阵的行列式可以任意大或任意小,而不更改条件数。 |
| 行列式计算有时在数值上不稳定。例如, |
算法
det
使用 lu
函数基于高斯消去法获取的三角形因子计算行列式。
[L,U] = lu(X) s = det(L) % This is always +1 or -1 det(X) = s*prod(diag(U))
扩展功能
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
用法说明和限制:
代码生成不支持对此函数使用稀疏矩阵输入。
GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。
用法说明和限制:
代码生成不支持对此函数使用稀疏矩阵输入。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。
此函数完全支持 GPU 数组。有关详细信息,请参阅Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)