定義一個矩陣初等行變換的類
class rowTransformation(): array = ([[],[]]) def __init__(self,array): self.array = array def __mul__(self, other): pass # 交換矩陣的兩行 def exchange_two_lines(self,x,y): a = self.array[x-1:x].copy() self.array[x-1:x] = self.array[y-1:y] self.array[y-1:y] = a return self.array # 以k不等于0乘以矩陣中的某x行 def multiply(k,x,self): self.array[x-1:x] = k*self.array[x-1:x] return self.array # 把x行所有元的k倍加到另y行上去 def k_mul_arr_add_arr(self,k,x,y): self.array[y-1:y] += k*self.array[x-1:x] return self.array
定義一個初等列變換的類
# 封裝一個初等列變換類class colTransformation(): array = ([[],[]]) def __init__(self, array): self.array = array def __mul__(self, other): pass # 交換矩陣的兩列 def exchange_two_lines(self, x, y): a = self.array[:, x-1:x].copy() self.array[:, x-1:x] = self.array[:, y-1:y] self.array[:, y-1:y] = a return self.array # 以k不等于0乘以矩陣中的某x列 def multiply(self, k, x): self.array[:, x-1:x] = k*self.array[:, x-1:x] return self.array # 把x列所有元的k倍加到另y列上去 def k_mul_arr_add_arr(self, k, x, y): self.array[:, y-1:y] += k*self.array[:, x-1:x] return self.array
求矩陣的秩
b = np.array([[2,-1,-1,1,2],[1,1,-2,1,4],[4,-6,2,-2,4],[3,6,-9,7,9]])a = np.linalg.matrix_rank(b)print(a)3
求非齊次線性方程組的解
以上這篇Python解決線性代數問題之矩陣的初等變換方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答