普通编程已经被AI覆盖,我们要向意念编程和自编程等高阶进化。
1.矩阵求逆
要计算矩阵的逆,我们需要手动执行高斯-约旦消元法。假设矩阵A是:
A = [[1, 1],
[3, 2]]
下面是求逆的具体步骤:
1.1 构造增广矩阵[A|I],其中I是单位矩阵:
[1 1 | 1 0]
[3 2 | 0 1]
2. 进行行变换,将左侧变为单位矩阵:
-
第2行 = 第2行 - 3×第1行:
[1 1 | 1 0] [0 -1 | -3 1]
-
第2行 = -1×第2行:
[1 1 | 1 0] [0 1 | 3 -1]
-
第1行 = 第1行 - 第2行:
[1 0 | -2 1] [0 1 | 3 -1]
3. 右侧部分即为A的逆矩阵:
A⁻¹ = [[-2, 1],
[3, -1]]
验证结果:两个矩阵相乘应得到单位矩阵
A × A⁻¹ = [[1×(-2)+1×3, 1×1+1×(-1)],
[3×(-2)+2×3, 3×1+2×(-1)]] = [[1,0],
[0,1]]
这就是np.linalg.inv(A)
计算出[[-2. 1. ] [ 1.5 -0.5]]
(可能你的原矩阵不同)的数学原理和过程。
python
import numpy as np
A = np.array([[1, 1], [3, 2]])
# 求逆
A_inv = np.linalg.inv(A)
print("矩阵求逆:\n", A_inv) # 输出[[-2. 1. ] [ 1.5 -0.5]]
2. 特征值和特征向量
用Python验证
可以用NumPy快速计算验证结果:
python
import numpy as np
A = np.array([[1, 2], [3, 4]])
eigenvalues, eigenvectors = np.linalg.eig(A)
print("特征值:", eigenvalues)
print("特征向量(列向量):\n", eigenvectors)
输出结果应与上述推导一致(特征向量可能差一个非零常数倍,因为特征向量不唯一)。
3 均值 方差 标准差(总体、样本)等概念
要计算数组 arr = np.array([1, 2, 3, 4, 5])
的方差和标准差,步骤如下:
步骤1:明确概念
- 方差(Variance):衡量数据离散程度的指标,计算每个数据与平均值的差的平方的平均值。
- 标准差(Standard Deviation):方差的平方根,与原始数据单位一致。
步骤2:计算平均值(Mean)
![先计算数组的平均值 ( \mu ):
\mu = \frac{1 + 2 + 3 + 4 + 5}{5} = \frac{15}{5} = 3 \]](https://i-blog.csdnimg.cn/direct/6c43e4bfb5b24d56b9f72d759114d4b8.png) #### **步骤3:计算方差(Variance)**  #### **步骤4:计算标准差(Standard Deviation)**  #### **用Python验证** 使用NumPy计算(默认计算总体方差和标准差,`ddof=1` 表示样本统计量): ```python import numpy as np arr = np.array([1, 2, 3, 4, 5]) # 总体方差和标准差 var_pop = np.var(arr) # 结果:2.0 std_pop = np.std(arr) # 结果:1.414... # 样本方差和标准差(ddof=1表示自由度为n-1) var_samp = np.var(arr, ddof=1) # 结果:2.5 std_samp = np.std(arr, ddof=1) # 结果:1.581... print("总体方差:", var_pop) print("总体标准差:", std_pop) print("样本方差:", var_samp) print("样本标准差:", std_samp) ``` 输出结果与手工计算一致。