第二章. 基础知识:线性代数 Medium
2025.07.06
矩阵乘法 特征值和特征向量
矩阵的相关性,Jacobi 方式,Gauss-Seidel Method,Reduced Row Echelon Form (RREF) Function
都还给线性代数老师了,一个都不会啊啊啊
1.1.是第一次就会做的
1.2.是一脸懵逼的,都是查出来的,有的查也不会
1.1. 矩阵的基本运算
基本的运算过程
1.1.1. 矩阵的特征值和特征向量
1.1.2. 矩阵的转置,逆运算
1.1.3.矩阵的平移旋转
# 计算特征值和特征向量
import numpy as np
def calculate_eigenvalues(matrix: list[list[float|int]]) -> list[float]:
eva, evt = np.linalg.eig(np.array(matrix))
return eva
---------------------------------------------------------------------------------------------------------------
# 矩阵的逆运算
import numpy as np
def inverse_2x2(matrix: list[list[float]]) -> list[list[float]]:
inverse = np.linalg.inv(matrix)
return inverse
---------------------------------------------------------------------------------------------------------------
# 矩阵的变换 T^-1^ AS, 保证T S 是可逆的(可逆的条件:满秩的rank = np.linalg.matrix_rank(A),rank==n || 行列式不等于0 np.linalg.det(S))
import numpy as np
def transform_matrix(A: list[list[int|float]], T: list[list[int|float]], S: list[list[int|float]]) -> list[list[int|float]]:
if A is None or T is None or S is None or np.linalg.det(S) == 0 or np.linalg.det(T) == 0:
return -1
transformed_matrix = np.linalg.inv(T) @ A @ S
return transformed_matrix
---------------------------------------------------------------------------------------------------------------
# 矩阵的平移
import numpy as np
def translate_object(points, tx, ty):
translated_points = np.array(points)
translated_points[:,0] = translated_points[:,0]+ tx
translated_points[:,1] = translated_points[:,1]+ ty
return translated_points
1.2. 经典的矩阵解法
1.2.1. 计算相关矩阵
问题: 一个矩阵也能计算相关性吗? 跟皮尔逊相关矩阵有什么区别?
解答:皮尔逊相关性是一个数值,而这个是一个矩阵。
已知 X∈Rn×pX \in \mathbb{R}^{n \times p}X∈Rn×p 和 Y∈Rn×qY \in \mathbb{R}^{n \times q}Y∈Rn×q,则
Rij=Cov(Xi,Yj)σXi⋅σYj R_{ij} = \frac{\text{Cov}(X_i,Y_j)}{\sigma_{X_i} \cdot \sigma_{Y_j}} Rij=σXi⋅σYjCov(Xi,Yj)其中 RijR_{ij}Rij 表示第 iii 个特征与第 jjj 个特征之间的Pearson相关系数。
Cov(X,Y)=1n(X−μX)T(Y−μY) \text{Cov}(X,Y) = \frac{1}{n} (X - \mu_X)^T (Y - \mu_Y) Cov(X,Y)=n1(X−μX)T(Y−μY) σX=1n∑i=1n(Xi−μX)2,σY=1n∑i=1n(Yi−μY)2 \sigma_X = \sqrt{\frac{1}{n} \sum_{i=1}^n (X_i - \mu_X)^2}, \quad \sigma_Y = \sqrt{\frac{1}{n} \sum_{i=1}^n (Y_i - \mu_Y)^2} σX=n1i=1∑n(Xi−μX)2,σY=n1i=1∑n(Yi−μY)2μX\mu_XμX 和 μY\mu_YμY 分别为 XXX 和 YYY 的列均值向量
import numpy as np
def calculate_correlation_matrix(X, Y=None):
# Helper function to calculate standard deviation
def calculate_std_dev(A):
return np.sqrt(np.mean((A - A.mean(0)) ** 2, axis=0))
if Y is None:
Y = X
n_samples = np.shape(X)[0]
# Calculate the covariance matrix
covariance = (1 / n_samples) * (X - X.mean(0)).T.dot(Y - Y.mean(0))
# Calculate the standard deviations
std_dev_X = np.expand_dims(calculate_std_dev(X), 1)
std_dev_y = np.expand_dims(calculate_std_dev(Y), 1)
# Calculate the correlation matrix
correlation_matrix = np.divide(covariance, std_dev_X.dot(std_dev_y.T))
return np.array(correlation_matrix, dtype=float)
**--------------------------------------进入看不懂题目,开始一脸懵逼--------------------------------------**
1.2.2. 求解线性系统
- Gauss-Seidel Method for Solving Linear Systems
- Gaussian Elimination for Solving Linear Systems 高斯消元法(咋这么眼熟呢)
- Solve Linear Equations using Jacobi Method
问题:啥意思, 啥是线性系统,这两个高斯是什么,有什么区别?Jacobi Method又是什么?苍天啊!
解答:Gauss-Seidel Method和Gaussian Elimination 都是求解矩阵提出的方法
高斯消元法 比如求解方程组 ,求解的时候会把x消除,只剩y,z。 然后继续消除,直到 保留一个未知数
高斯消元法 上三角消元
import numpy as np
def transform_basis(B: list[list[int]], C: list[list[int]]) -> list[list[float]]:
P = np.linalg.inv(C) @ B
return P
1.2.3. 求解线性系统
- Compute Orthonormal Basis for 2D Vectors
- Create Composite Hypervector for a Dataset Row
- Find the Image of a Matrix Using Row Echelon Form
- Implement Reduced Row Echelon Form (RREF) Function
问题:啥 echelon form 梯形式,这是人话吗?什么东西?
hypervector 超向量,哦,SVM里听过超平面,超向量是什么鬼?
计算2D向量的正交基,这个应该会啊,可惜我并不会!! 哭死
三.值得重新刷的题目
刚开始不会
1.2.2 和1.2.3 都看看吧
总结
专注坚持,清晰目标!从2025.07.06到2028.08.01结束,拖延症晚期!!
6452



被折叠的 条评论
为什么被折叠?



