Loading

「学习笔记」矩阵

矩阵

主要记录在 python 跟 sage 中关于矩阵的语法与相关函数, 实时更新中.

基环与数域

在 sage 中, 基环指的是创建某个数学对象(如矩阵、多项式、模)时, 该元素所属的那个底层代数世界, 他决定了这些元素能做的运算以及运算的规则.
数域是基环的一种, 基环的范围则要更广泛一些. 所有域都是环, 但环不一定是域.
当环满足:

  • 乘法可交换(矩阵环不是域)
  • 无零因子(不存在两个非零数相乘得到零)
  • 非零元素都可逆

则此时, 环是域.

基本算术环

名称 描述 准确性
ZZ 整数环 准确
QQ 有理数域 准确
RR 实数域 双精度浮点, 不准确
CC 复数域 双精度浮点, 不准确
RDF/CDF 快速版实数/复数环 不准确

ZZ 不允许除法

有限环与有限域

名称 描述 示例
GF(\(p\)) 包含 \(p\) 个元素的有限域(\(p\) 是质数) matrix(GF(7), [[1, 2], [3, 4]])
GF(\(p^n\)) 包含 \(p^n\) 个元素的有限域 K.<a> = GF(2^8)
Integers(\(n\)) 模 \(n\) 的整数环(\(n\) 是合数时是环, 不是域) matrix(Integers(6), [[1, 2], [3, 4]])

GF(\(p\)) 可以看做模 \(p\) 的有限域, 但 GF(\(p^n\)) 不可以看做模 \(p^n\) 的有限域, 因为模 \(p^n\) 的环含有零因子, 不是域, 不等价于 GF(\(p^n\)).

构造性环

  • 多项式环
  • 幂级数环
  • 符号环
  • P-adic 环

后面遇到了再做详细补充

matrix

创建矩阵

核心语法: matrix(基环, 行数, 列数, 数据), 但 sage 也提供了许多简写:

A = matrix([[1, 2], [3, 4]])  # 基环自动推断为 ZZ(整数环)
A = matrix(QQ, [[1, 2], [3, 4]])  # 有理数域上的矩阵
B = matrix(QQ, 2, 3, [1,2,3,4,5,6])  # 2行3列
C = matrix(QQ, '1 2 3; 4 5 6')  # 分号分隔行

# 特殊矩阵快捷函数
I = identity_matrix(QQ, 3)        # 单位矩阵
Z = zero_matrix(ZZ, 2, 3)         # 零矩阵
D = diagonal_matrix([1, 2, 3])    # 对角矩阵
R = random_matrix(QQ, 3, density=0.5)  # 随机矩阵(50%非零)

运算

基础运算

  • 矩阵乘法: *
  • 幂运算: A ** 3
  • 加法/减法/数乘: +, -, *

核心线性代数方法

  • 转置: .T, .transpose
  • 逆矩阵: .inverse(), ~A(仅当基环为域且可逆)
  • 行列式: .det()
  • 秩: .rank()
  • 迹: .trace()
  • 特征值: .eigenvalues()

解线性方程组

.solve_right 解方程 \(A \cdot X = B\), \(X\) 是未知矩阵(matrix)或向量(vector)
如果只有一个方程组要解, \(B\) 可以用 vector, 如果是多个方程组, 则 \(B\) 可以用 matrix.

增删改查

  • 索引: A[0, 1] 取第 \(0\) 行第 \(1\) 列, A[0] 取第 \(0\) 行.
  • 赋值: A[0, 1] = 99
  • 拼接:
    • 横向: A.augment(B) (把 \(B\) 拼在 \(A\) 右边)
    • 纵向: A.stack(B) (把 \(B\) 拼在 \(A\) 下边)
  • 换基环: A.change_ring(QQ)
posted @ 2026-08-19 17:58  yi_fan0305  阅读(26)  评论(0)    收藏  举报