今天小编就为大家分享一篇Python解决线性代数问题之矩阵的初等变换方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
定义一个矩阵初等行变换的类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
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
|
定义一个初等列变换的类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# 封装一个初等列变换类
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
|
求矩阵的秩
1
2
3
4
|
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系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等,面试真题,面试真题。想要这些资料的可以加群:877562786
标签:初等变换,__,return,Python,self,矩阵,线性代数,array,def
来源: https://blog.csdn.net/weixin_45550143/article/details/100749532