Определить матрицу: «А» не определено - PullRequest
0 голосов
/ 13 апреля 2019

Я написал эту функцию в 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 голосов
/ 13 апреля 2019

Существуют некоторые общие ошибки при форматировании вашего кода, например, первое выражение возврата выходит за рамки функции 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...