如何判断正定矩阵和半正定矩阵
时间: 2025-06-06 15:51:30 浏览: 36
### 正定矩阵与半正定矩阵的定义及判断方法
#### 定义
正定矩阵和半正定矩阵是线性代数中重要的特殊对称矩阵类别。具体来说:
- **正定矩阵**是指一个大小为 \( n \times n \) 的实对称矩阵 \( A \),对于任意长度为 \( n \) 的非零向量 \( x \),都有 \( x^T A x > 0 \) 恒成立[^2]。
- **半正定矩阵**则是指类似的条件下,\( x^T A x \geq 0 \) 对于所有非零向量 \( x \) 成立[^4]。
这意味着,在正定矩阵的情况下,二次型始终严格大于零;而在半正定矩阵的情况下,允许存在某些向量使得二次型等于零。
#### 判断方法
以下是几种常见的用于判断矩阵是否为正定或半正定的方法:
1. **特征值法**
如果一个对称矩阵的所有特征值都为正,则该矩阵是正定的。如果所有特征值均是非负(可以为零),那么这个矩阵就是半正定的。
2. **主子行列式法**
对于一个 \( n \times n \) 阶的对称矩阵 \( A \),可以通过检查它的顺序主子式的符号来决定其正定性:
- 若所有的顺序主子式皆为正值,则矩阵为正定;
- 若所有顺序主子式都不小于零,则矩阵为半正定[^3]。
3. **Cholesky 分解法**
只有当矩阵能够通过 Cholesky 分解表示成下三角矩阵与其转置相乘的形式时,此矩阵才是正定的。这种方法不仅提供了分解的可能性验证,还常被用来解决实际计算中的问题[^1]。
```python
import numpy as np
def is_positive_definite(matrix):
try:
_ = np.linalg.cholesky(matrix)
return True
except np.linalg.LinAlgError:
return False
A = np.array([[2, -1], [-1, 2]])
print(is_positive_definite(A)) # 输出应为True
```
上述代码片段展示了如何利用 Python 和 NumPy 库实现基于 Cholesky 分解的正定性检测函数。
#### 总结
正定矩阵和半正定矩阵的主要区别在于它们所对应的二次型取值范围的不同——前者仅限于严格的正区间,后者则扩展到了包括零在内的非负区域。这些特性决定了两者在线性规划、最优化等领域内的不同应用场景。
阅读全文
相关推荐



















