Chciałbym użyć numpy.linalg.solve do rozwiązania równania algebry liniowej, ale mam komunikat o błędzie "Ostatnie 2 wymiary tablicy muszą być kwadratowe". Proszę rzucić trochę światła, dziękuję bardzo! oto mój kod:Algebra liniowa na pytonie
import numpy as np
from numpy. linalg import solve
A = np.array([[3,-1,-1,0,0,0], [-1,4,-1,-1,0,0], [0,0,-1,-1,4,-1], [0,0,0,-1,-1,3]],float)
w = np.array([5,5,0,0],float)
v = solve(A,w)
print(v)
Aby wykonać operację rozwiązywania, musisz odwrócić macierz A, a tylko macierze kwadratowe są odwracalne. Jeśli chcesz rozwiązać problem niedokładnie, możesz użyć operacji zwanej [pseudoinwersja] (http://en.wikipedia.org/wiki/Moore%E2%80%93Penrose_pseudoinverse), a następnie pomnożyć ją przez v, aby uzyskać v. –
@ castle-bravo lub mógłby użyć 'numpy.linalg.lstsq (A, w)' – jandob
@jandob Właśnie miałem zaimplementować dla niego funkcję pseudo-odwrotną, ale widzę, że już zostało zrobione dla mnie. :) –