大橙子网站建设,新征程启航

为企业提供网站建设、域名注册、服务器等服务

python逆矩阵函数 python求逆矩阵函数

用Python实现三阶矩阵的求逆?

你好,下面是一个对应的三阶矩阵求逆的代码

创新互联建站于2013年成立,是专业互联网技术服务公司,拥有项目成都网站设计、网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元农安做网站,已为上家服务,为农安各地企业和个人服务,联系电话:18980820575

import warnings

warnings.filterwarnings("ignore")

matrix1 = [

[1,2,0,0],

[3,4,0,0],

[0,0,4,1],

[0,0,3,2],

]

matrix2 = [

[1,0,-1,2,1],

[3,2,-3,5,-3],

[2,2,1,4,-2],

[0,4,3,3,1],

[1,0,8,-11,4],

]

matrix3 = [

[1,0,-1,2,1,0,2],

[1,2,-1,3,1,-1,4],

[2,2,1,6,2,1,6],

[-1,4,1,4,0,0,0],

[4,0,-1,21,9,9,9],

[2,4,4,12,5,6,11],

[7,-1,-4,22,7,8,18],

]

def step0(m):

n = len(m)

l = []

for i in range(0,n):

l.append([])

for j in range(0,n):

if i == j:

l[i].append(1)

else:

l[i].append(0)

return l

def step1(m):

n = len(m)

"""交换操作记录数组 swap"""

swap = []

l = []

for i in range(0,n):

swap.append(i)

l.append([])

for j in range(0,n):

l[i].append(0)

"""对每一列进行操作"""

for i in range(0,n):

max_row = m[i][i]

row = i

for j in range(i,n):

if m[j][i] = max_row:

max_row = m[j][i]

#global row

row = j

swap[i] = row

"""交换"""

if row != i:

for j in range(0,n):

m[i][j],m[row][j] = m[row][j],m[i][j]

"""消元"""

for j in range(i+1,n):

if m[j][i] != 0:

l[j][i] = m[j][i] / m[i][i]

for k in range(0,n):

m[j][k] = m[j][k] - (l[j][i] * m[i][k])

return (swap,m,l)

def step2(m):

n = len(m)

long = len(m)-1

l = []

for i in range(0,n):

l.append([])

for j in range(0,n):

l[i].append(0)

for i in range(0,n-1):

for j in range(0,long-i):

if m[long-i-j-1][long-i] != 0 and m[long-i][long-i] != 0:

l[long-i-j-1][long-i] = m[long-i-j-1][long-i] / m[long-i][long-i]

for k in range(0,n):

m[long-i-j-1][k] = m[long-i-j-1][k] - l[long-i-j-1][long-i] * m[long-i][k]

return (m,l)

def step3(m):

n = len(m)

l = []

for i in range(0,n):

l.append(m[i][i])

return l

def gauss(matrix):

n = len(matrix)

new = step0(matrix)

(swap,matrix1,l1) = step1(matrix)

(matrix2,l2) = step2(matrix1)

l3 = step3(matrix2)

for i in range(0,n):

if swap[i] != i:

new[i],new[swap[i]] = new[swap[i]],new[i]

for j in range(i+1,n):

for k in range(0,n):

if l1[j][i] != 0:

new[j][k] = new[j][k] - l1[j][i] * new[i][k]   

for i in range(0,n-1):

for j in range(0,n-i-1):

if l2[n-1-i-j-1][n-1-i] != 0:

for k in range(0,n):

new[n-1-i-j-1][k] = new[n-1-i-j-1][k] - l2[n-1-i-j-1][n-i-1] * new[n-1-i][k]

for i in range(0,n):

for j in range(0,n):

new[i][j] = new[i][j] / l3[i]

return new

x1 = gauss(matrix1)

x2 = gauss(matrix2)

x3 = gauss(matrix3)

print (x1)

print (x2)

print (x3)

逆矩阵怎么求?

逆矩阵求法:

方法有很多如(伴随矩阵法,行(列)初等变换等)。以伴随矩阵法来求其逆矩阵。

1、判断题主给出的矩阵是否可逆。

2、求矩阵的代数余子式,A11、A12、A13、A21、A22、A32、A31、A32、A33。

3、求伴随矩阵。

4、得到逆矩阵。

相关性质

(1)A与B的地位是平等的,故A、B两矩阵互为逆矩阵,也称A是B的逆矩阵。

(2)单位矩阵E是可逆的。

(3)零矩阵是不可逆的,即取不到B,使OB=BO=E。

(4)如果A可逆,那么A的逆矩阵是唯一的。事实上,设B、C都是A的逆矩阵,则有B=BE =B(AC)=(BA)C=EC=C。

python怎么实现矩阵的除法

1、首先打开pycharm软件,新建一个python文件并导入numpy库。

2、然后创建矩阵A,这里先创建一个两行两列的数组,在用numpy的mat函数将数组转换为矩阵。

3、接着计算矩阵A的逆矩阵,逆矩阵是通过A.I求得。

4、求出了矩阵A的逆矩阵后,用矩阵B乘以这个逆矩阵就是矩阵的除法了,即为矩阵B除以矩阵A的值。


文章标题:python逆矩阵函数 python求逆矩阵函数
文章链接:http://dzwzjz.com/article/doohssp.html
在线咨询
服务热线
服务热线:028-86922220
TOP