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设计】。

相关文章

使用Python 正则匹配两个特定字符之间的字符方法

如下所示: # -*- coding: cp936 -*- import re   string = ...

python脚本开机自启的实现方法

问题描述:将python脚本设置成开机自启。 环境:windows7 64位 前段时间,一直想把文件打包成exe文件,然后设置成开机自启,虽然感觉很装逼,但是使用pyinstaller打...

详尽讲述用Python的Django框架测试驱动开发的教程

详尽讲述用Python的Django框架测试驱动开发的教程

测试驱动开发(TDD)是一个迭代的开发周期,强调编写实际代码之前编写自动化测试。 这个过程很简单:     先编写测试。   ...

Python实现九宫格式的朋友圈功能内附“马云”朋友圈

Python实现九宫格式的朋友圈功能内附“马云”朋友圈

PIL(Python Imaging Library)是一个非常强大的Python库,但是它支持Python2.X, 在Python3中则使用的是Pillow库,它是从PIL中fork出...

Numpy array数据的增、删、改、查实例

准备工作: 增、删、改、查的方法有很多很多种,这里只展示出常用的几种。 >>> import numpy as np >>> a = np.ar...