• 大小: 3.12KB
    文件类型: .py
    金币: 1
    下载: 0 次
    发布日期: 2021-03-01
  • 语言: Python
  • 标签:

资源简介

行列式的转置

资源截图

代码片段和文件信息

import copy

def revDet(array) -> list: #行列式转置
    n = len(array)
    ar = copy.deepcopy(array)
    for i in range(n):
        for j in range(i n): #只转置一半的项
            ar[i][j] ar[j][i] = ar[j][i] ar[i][j]
    return ar

def adjDet(array) -> list: #伴随矩阵
    adj = []
    adjcol = []
    n = len(array)
    for k in range(n): #第k行的余子式
        adjcol = []
        #arC = revDet(arC) #变回子列为行 来交换行

        arC = copy.deepcopy(array)
        for t in range(k 0 -1): #邻行交换
            arC[t] arC[t - 1] = arC[t - 1] arC[t]
        arC = revDet(arC) #变回子列为列 来求子式
        
        for i in range(n):
            A = []
            for j in range(n):
                if j != i: #跳过第i列
                    A.append(arC[j][1:]) #此处将每个子列表看成列,跳过第一行
            adjcol.append(pow(-1 k + i) * culDet(A))

        adj.append(adjcol)
        
        #print(array)
    adj = revDet(adj)
    return adj

def culDet(array) -> int:
    assert len(array) == len(array[0]) #保

评论

共有 条评论