定义矩阵:“ A”未定义

时间:2019-04-12 23:56:21

标签: python numpy

我用给定值的python语言编写了此函数,我将得到一个带有随机值的方阵。 但是执行该过程会给我以下错误: A' is not defined

我该怎么做?

import numpy as np
import scipy.stats as spstats
import scipy.linalg as la
import random



def generaMatrice(n):
for i in range(n-1):
        for j in range(n-1):    

            A[i][j]= random.randint(1,100) 



AI=np.linalg.inv(A)

return A, AI

A, AI = generaMatrice(n)
print(A)
print(AI)
L,U,P=calcoloLU(A)
X = calcolaInv(L,U,P)#INVERSA CALCOLATA CON LU 
I=np.asmatrix(np.eye(n)) #metti n

print(X)

resRel = (la.norm(np.dot(A,X)-I,2))/(la.norm(I,2))        
errRel = la.norm(X-AI,2)/la.norm(AI,2)

nCond = la.norm(A,2)*la.norm(X,2)
maggErr = nCond*resRel

1 个答案:

答案 0 :(得分:0)

您的代码格式存在一些常规错误,例如第一个return语句超出了generaMatrice函数的范围。 话虽如此,你可以做

A=np.random.randint(1,100,(n,n))
AI=np.linalg.inv(A)

并完全摆脱您的generaMatrice函数。 Numpy整洁,因为它允许您通过简单的调用来创建复杂的矩阵。

通常,请记住,在定义函数时,您需要缩进函数的内容,如下所示:

def generaMatrice(n):
    for i in range(n-1):
        for j in range(n-1):    
            A[i][j]= random.randint(1,100) 
     AI=np.linalg.inv(A)
     return A,AI