我用给定值的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
答案 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