# MatrixUtils **Repository Path**: gnss2020/MatrixUtils ## Basic Information - **Project Name**: MatrixUtils - **Description**: 矩阵分解算法的实现,用于期末考试而已 - **Primary Language**: Unknown - **License**: MPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-02-24 - **Last Updated**: 2022-02-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 矩阵论课程矩阵分解算法的python实现 可以显示计算过程,方便考试 ### 使用方法 ```python from MatrixUtils import MatrixUtils ``` #### 1. 使用高斯变换进行LDU分解 参数```trace```表示是否显示解算步骤,默认为True ```python mat = np.array([ [5, 2, -4], [2, 1, -2], [-4, -2, 5] ]) s = MatrixUtils(trace=True) L,D,U = s.LDU(mat) ``` #### 2. Crout分解 参数recursion 为true表示采用递推算法计算,否则先调用高斯LDU分解算法,这不应影响结果,只影响计算步骤的展示 ```python L,U = s.Crout(mat,recursion=True) ``` #### 3. Doolittle、Gholesky分解和Crout分解类似 #### 4. QR分解 QR分解方法有很多,可以根据```method```参数选择使用的算法```'Schmidt'```,```'Givens'```,```'Householder'``` ,分别代表使用施密特正交换、Givens变换、HouseHolder变换进行QR分解,注意结果不一定相同,因为QR分解不唯一。 例如 ```python b = np.array([ [5, 2, -4], [2, 1, -2], [-4, -2, 5] ]) Q,R = s.QR(b,method='Schmidt') ``` #### 5. Hermite 矩阵求解 通过高斯行变换将矩阵A变换为Hermite矩阵