-
Notifications
You must be signed in to change notification settings - Fork 0
Description
基本的不定阶矩阵
class mn_matrix
不定阶矩阵(即中间含省略号的矩阵)的基类,不建议直接用该类的构造方法
Source: lam/mnmatrix/mnmatrix.py
properties
- m: 矩阵最后一行的序号
- n: 矩阵最后一列的序号
get(x, y)
获取矩阵第x行,第y列的元素
Parameter
- x: Expr, Number, Symbol
- y: Expr, Number, Symbol
x, y是获取元素的坐标,行和列的序号以1开始计数,x,y可以是sympy中的Expr, Number, Symbol类。
如要获取倒数第一行,倒数第一列的元素,可以参考以下语句
mat = corner_matrix(tl, tr, bl, br, square=True)
element = mat.get(mat.m, mat.n)以此类推,倒数第二行可以表示为mat.m-1。
class corner_matrix(mn_matrix)
Source: lam/mnmatrix/cornermatrix.py
一个可定制的不定阶矩阵,该类适用于辅助生成latex代码,不需要严谨的数学逻辑。corner_matrix继承自mn_matrix,包含了mn_matrix所有的成员变量和方法。
在数学文章中,一般的不定阶矩阵只有四个角落的元素会显示,所以该类只开放了编辑矩阵四个角落元素的功能。以下面的矩阵为例,A,B,C,D四个位置的元素是可编辑的内容,A,B,C,D可以不单是一个元素,还可以视为整个矩阵的一个分块矩阵。
corner_matrix(tl, tr, bl, br, square=True)
用四个角落的分块矩阵构造一个不定阶矩阵
Parameter
- tl: MutableDenseMatrix
- tr: MutableDenseMatrix
- bl: MutableDenseMatrix
- br: MutableDenseMatrix
- square: bool
tl, tr, bl, br分别代表一个矩阵的左上角,右上角,左下角,右下角的元素,即A,B,C,D四个分块矩阵,这四个必须是MutableDenseMatrix类,即便他们是一个纯粹的数字。square用于标志该矩阵是否是方阵,square=True时,不定阶矩阵将以方阵的形式生成。
properties
- tl: 矩阵左上角可显示的分块
- tr: 矩阵右上角可显示的分块
- bl: 矩阵左下角可显示的分块
- br: 矩阵右下角可显示的分块
继承自mn_matrix的成员变量不做赘述
get(x, y)
该方法继承自mn_matrix类,也没有修改父类的任何内容
线性运算
class scalar_mul_matrix(mn_matrix):
Source: lam/mnmatrix/mnmatrix.py
用于实现矩阵数乘的类,scalar_mul_matrix继承自mn_matrix,包含了mn_matrix所有的成员变量和方法,故之后重复的成员变量和方法不在叙述。
scalar_mul_matrix(mat, k):
构造矩阵mat和标量k相乘得到的矩阵对象
Parameter
- mat: mn_matrix
- k: Expr, Number, Symbol
class add_matrix(mn_matrix):
Source: lam/mnmatrix/mnmatrix.py
用于实现矩阵加法的类,add_matrix继承自mn_matrix,包含了mn_matrix所有的成员变量和方法。
add_matrix(ma, mb):
构造矩阵ma和矩阵mb相加得到的矩阵对象
Parameter
- ma: mn_matrix
- mb: mn_matrix
初等变换
class ele_row_tran_mn(mn_matrix):
Source: lam/mnmatrix/eletran.py
该类实现了矩阵初等行变换:交换m,n行
ele_row_tran_mn继承自mn_matrix,包含了mn_matrix所有的成员变量和方法。
ele_row_tran_mn(mat, m_ind, n_ind):
构造矩阵mat交换自身m_ind,n_ind行后得到的矩阵对象
Parameter
- mat: mn_matrix
- m_ind: Expr, Number, Symbol
- n_ind: Expr, Number, Symbol
class ele_row_tran_km(mn_matrix):
Source: lam/mnmatrix/eletran.py
该类实现了矩阵初等行变换:m行乘k
ele_row_tran_km继承自mn_matrix,包含了mn_matrix所有的成员变量和方法。
ele_row_tran_km(mat, k, m_ind):
构造矩阵mat的第m_ind行乘k后得到的矩阵对象
Parameter
- mat: mn_matrix
- k: Expr, Number, Symbol
- m_ind: Expr, Number, Symbol
class ele_row_tran_kmn(mn_matrix):
Source: lam/mnmatrix/eletran.py
该类实现了矩阵初等行变换:m行乘k
ele_row_tran_kmn继承自mn_matrix,包含了mn_matrix所有的成员变量和方法。
ele_row_tran_kmn(mat, k, m_ind, n_ind):
构造矩阵mat的第m_ind行乘k后加到n_ind行得到的矩阵对象
Parameter
- mat: mn_matrix
- k: Expr, Number, Symbol
- m_ind: Expr, Number, Symbol
- n_ind: Expr, Number, Symbol
同样的,也有对应的初等列变换,它们分别是ele_row_tran_mn, ele_row_tran_km, ele_row_tran_kmn这三个类,用法和行变换相同。
单例的矩阵
class id_matrix(mn_matrix)
Source: lam/mnmatrix/lammatrix
定义了单位矩阵,继承自mn_matrix,用于调试和后续拓展。
id_matrix():
构造一个单位矩阵。
class tridiagonal_matrix
Source: lam/mnmatrix/lammatrix
定义了三对角矩阵,即主对角线和次对角线不为0的对称矩阵。
tridiagonal_matrix(diag, diag2nd):
构造一个三对角矩阵。diag, diag2nd分别指主对角,次对角上的元素
Parameter
- diag: Expr, Number, Symbol
- diag2nd: Expr, Number, Symbol
class circ_matrix
Source: lam/mnmatrix/lammatrix
定义了一个典型的循环矩阵,即1到n的序列在每行不断循环的矩阵。
circ_matrix():
构造一个典型的循环矩阵。