Python解决线性代数问题之矩阵的初等变换方法
定义一个矩阵初等行变换的类
classrowTransformation(): array=([[],[]]) def__init__(self,array): self.array=array def__mul__(self,other): pass #交换矩阵的两行 defexchange_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 returnself.array #以k不等于0乘以矩阵中的某x行 defmultiply(k,x,self): self.array[x-1:x]=k*self.array[x-1:x] returnself.array #把x行所有元的k倍加到另y行上去 defk_mul_arr_add_arr(self,k,x,y): self.array[y-1:y]+=k*self.array[x-1:x] returnself.array
定义一个初等列变换的类
#封装一个初等列变换类 classcolTransformation(): array=([[],[]]) def__init__(self,array): self.array=array def__mul__(self,other): pass #交换矩阵的两列 defexchange_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 returnself.array #以k不等于0乘以矩阵中的某x列 defmultiply(self,k,x): self.array[:,x-1:x]=k*self.array[:,x-1:x] returnself.array #把x列所有元的k倍加到另y列上去 defk_mul_arr_add_arr(self,k,x,y): self.array[:,y-1:y]+=k*self.array[:,x-1:x] returnself.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解决线性代数问题之矩阵的初等变换方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。