机器学习数学基础之向量:线性相关性与线性无关性
3.1 线性相关性
一组向量,比如 v1、v2、一直到 vn,如果存在非零的系数 c1、c2、一直到 cn,使得:
c1v1 + c2v2 + ... + cn*vn = 0
则称这些向量是线性相关的。换句话说,至少有一个向量可以由其他向量的线性组合表示。
示例代码:线性相关性
以下示例中,我们验证三个二维向量是否线性相关,并进行可视化。
python
import numpy as np
import matplotlib.pyplot as plt
# 创建三个二维向量
v1 = np.array([1, 2])
v2 = np.array([2, 4])
v3 = np.array([3, 6])
# 绘制向量
plt.figure(figsize=(6, 6))
plt.quiver(0, 0, v1[0], v1[1], angles='xy', scale_units='xy', scale=1, color='r', label='v1 = (1, 2)')
plt.quiver(0, 0, v2[0], v2[1], angles='xy', scale_units='xy', scale=1, color='g', label='v2 = (2, 4)')
plt.quiver(0, 0, v3[0], v3[1], angles='xy', scale_units='xy', scale=1, color='b', label='v3 = (3, 6)')
# 添加辅助线
plt.plot([0, v1[0]], [0, v1[1]], 'r--', alpha=0.5) # v1 辅助线
plt.plot([0, v2[0]], [0, v2[1]], 'g--', alpha=0.5) # v2 辅助线
plt.plot([0, v3[0]], [0, v3[1]], 'b--', alpha=0.5) # v3 辅助线
plt.xlim(-1, 5)
plt.ylim(-1, 7)
plt.axhline(0, color='black', linewidth=0.5)
plt.axvline(0, color='black', linewidth=0.5)
plt.grid(True)
plt.title('线性相关性示例')
plt.legend()
plt.show()
3.2 线性无关性
一组向量,比如 v1、v2、一直到 vn,如果它们的线性组合等于零向量时,所有系数 c1、c2、一直到 cn 必须为零,则称这些向量是线性无关的。
示例代码:线性无关性
以下示例中,我们验证三个二维向量是否线性无关,并进行可视化。
python复制
import numpy as np
import matplotlib.pyplot as plt
# 创建三个二维向量
v1 = np.array([1, 2])
v2 = np.array([3, 4])
v3 = np.array([5, 6])
# 绘制向量
plt.figure(figsize=(6, 6))
plt.quiver(0, 0, v1[0], v1[1], angles='xy', scale_units='xy', scale=1, color='r', label='v1 = (1, 2)')
plt.quiver(0, 0, v2[0], v2[1], angles='xy', scale_units='xy', scale=1, color='g', label='v2 = (3, 4)')
plt.quiver(0, 0, v3[0], v3[1], angles='xy', scale_units='xy', scale=1, color='b', label='v3 = (5, 6)')
# 添加辅助线
plt.plot([0, v1[0]], [0, v1[1]], 'r--', alpha=0.5) # v1 辅助线
plt.plot([0, v2[0]], [0, v2[1]], 'g--', alpha=0.5) # v2 辅助线
plt.plot([0, v3[0]], [0, v3[1]], 'b--', alpha=0.5) # v3 辅助线
plt.xlim(-1, 6)
plt.ylim(-1, 7)
plt.axhline(0, color='black', linewidth=0.5)
plt.axvline(0, color='black', linewidth=0.5)
plt.grid(True)
plt.title('线性无关性示例')
plt.legend()
plt.show()
THE END