SageMath矩陣操作及解線性方程組

2021-10-04 12:45:59 字數 1995 閱讀 6632

宣告

超完整定義

mt = matrix(qq, 3, 2, [1, 2, 3, 4, 5, 6])

完整定義

mt = matrix(zz, 3, 4) #定義乙個在整數環上的3行4列的矩陣

mt = matrix(zz, 0, 4) #定義乙個在整數環上0行4列的矩陣,後期可動態新增行

部分定義

mt = matrix(qq, 3, [1, 2, 3, 4, 5, 6]) #定義在有理數環上的3列矩陣,並賦值

新增行

在末尾新增

mt = mt.stack(vector([1, 2, 3]) #矩陣後新增一行

在指定行插入一行,第乙個引數為行號,第二個為元素list

mt = mt.insert_row(1, vector([1, 2, 3])) #在第一行插入

修改元素值

注意,矩陣行列均從0開始!

修改單個值

mt[2, 3] = 8 #將第3行第4列的值修改為8

修改整行值

mt[2] = [1, 2, 3, 4] #將第3行的值依次修改為list中的值

求秩
mt.rank()

求行、列值
mt.nrows() #將返回矩陣行數

mt.ncols() #將返回矩陣列數

求行列式的值
mt.determinant()

求是否為可逆矩陣

是可逆矩陣則輸出true,否則輸出false

mt.is_invertible()

求逆

兩種方法

mt.change_ring(zz) ##將矩陣的環改為zz

求矩陣x滿足xa=b
x = a.solve_left(b)

求矩陣x滿足ax=b
x = a.solve_right(b)

求向量x滿足ax=b

兩種方法

滿足xa=0

x = a.left_kernel()

滿足ax=0

x.gen(0) #解x中的第1行

lll格基約簡演算法

原生矩陣操作類及方法

package com.util public class matrix 杜航 功能 構造n行n列的空矩陣 public matrix int n 杜航 功能 無參建構函式預設構造2行2列的空矩陣 public matrix 杜航 功能 構造矩陣,由陣列mat提供矩陣元素 public matrix...

關於求矩陣主對角線元素之和及副對角線元素之和的問題

今天我在acm系統刷題時,遇到了一道這樣的題目 題目描述 求乙個3 3矩陣對角線元素之和。輸入矩陣,輸出主對角線 副對角線 元素和 樣例輸入 1 2 3 1 1 1 3 2 1 樣例輸出 3 7 拿到這個題時腦子裡第一時間想的是怎麼先去求主對角線各元素之和,求主對角線很簡單,只需要一層for迴圈即可...

資料結構 稀疏矩陣的快速轉置及快速相乘操作

for i 1 i m.行 i for j 1 j n.列 j 光是q i j m i k n k j 這一句就要m的行數 n的列數再乘以m的列數這樣乙個複雜度,所以我們有了以下的演算法,在快速相乘中我會寫比較多的注釋方便大家理解,具體詳細的說明請各位參考嚴的資料結構,下面有三個檔案,乙個是matr...