Python解决线性代数问题之矩阵的初等变换方法

yipeiwu_com6年前Python基础

定义一个矩阵初等行变换的类

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解决线性代数问题之矩阵的初等变换方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python3.5基础之NumPy模块的使用图文与实例详解

Python3.5基础之NumPy模块的使用图文与实例详解

本文实例讲述了Python3.5基础之NumPy模块的使用。分享给大家供大家参考,具体如下: 1、简介 2、多维数组——ndarray...

python实现多进程通信实例分析

python实现多进程通信实例分析

操作系统会为每一个创建的进程分配一个独立的地址空间,不同进程的地址空间是完全隔离的,因此如果不加其他的措施,他们完全感觉不到彼此的存在。那么进程之间怎么进行通信?他们之间的关联是怎样的?...

解决Python列表字符不区分大小写的问题

有时候,我们需要检测一个元素是否已经存在列表中,并且不区分大小写,如:列表已有元素Mary,那我们想认为MARY也已经被占用。这个例子在实际编程中会用到很多,比如保证网站注册用户独一无二...

python实现字符串和字典的转换

一、把一个字符串的内容提取出来,并放到字典中 流程如下: 1、得到字符串s,通过分割提取得到s1(是个列表) s=”name=lyy&age=3&sex=women&boyfrie...

浅谈Python的条件判断语句if/else语句

计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。 比如,输入用户的年龄,根据年龄打印不同的内容。。。 Python程序中,能让计算机自己作出判断的语句就是if语句: 例:...