14 线性方程组之齐次与非齐次方程组
在上一篇中,我们学习了线性方程组的高斯消元法,这是一种有效的求解线性方程组的方法。本篇将讨论线性方程组的两种基本类型:齐次方程组和非齐次方程组。理解这两种方程组的结构和解法对于深入学习线性代数及其在人工智能中的应用至关重要。
1. 齐次方程组
定义
一个线性方程组如果右边的常数项全为零,则称为齐次方程组。它可以表示为:
其中, 是系数矩阵, 是未知变量向量, 是零向量。
例子
考虑以下齐次方程组:
这个方程组可以用矩阵形式表示为 ,其中:
解的性质
齐次方程组的解总是包括零解,即 。如果该方程组有非零解,则称为非平凡解。通过高斯消元法,可以求得此方程组的解的形式。当自由变量的数量大于0时,方程组将有无穷多解。
Python 示例
以下是使用 NumPy 求解齐次方程组的示例代码:
import numpy as np
# 定义系数矩阵 A
A = np.array([[2, 3, -1],
[4, 6, -2],
[-1, 1, 2]])
# 使用 NumPy 的线性代数库求解 Ax = 0
# 因为是齐次方程组,我们只需要求出零解与非平凡解
u, s, vt = np.linalg.svd(A) # 奇异值分解
# 非零奇异值对应的列就是解的基础
rank = np.sum(s > 1e-10) # 发现有几个非零的奇异值
null_space_dim = A.shape[1] - rank # 求解空域的维度
print(f"齐次方程组的解的维度为 {null_space_dim}")
2. 非齐次方程组
定义
如果一个线性方程组的常数项不全为零,则称为非齐次方程组。其形式为:
其中, 是非零向量。
例子
考虑以下非齐次方程组:
用矩阵表示为:
解的性质
非齐次方程组可能具有唯一解、无解或无穷多解。根据方程的阶数和自由变量的数量,我们可以使用高斯消元法或者其他数值方法求解。
Python 示例
以下是使用 NumPy 求解非齐次方程组的示例代码:
import numpy as np
# 定义系数矩阵 A 和常数项向量 b
A = np.array([[2, 3, -1],
[4, 6, -2],
[-1, 1, 2]])
b = np.array([5, 10, 3])
# 使用 NumPy 的线性代数库求解 Ax = b
x = np.linalg.solve(A, b)
print(f"非齐次方程组的解为: x = {x}")
结语
在本篇中,我们介绍了齐次方程组和非齐次方程组的定义、解的性质,以及如何利用Python实现求解。下篇我们将继续讨论特征值与特征向量,欢迎继续关注!