Algèbre linéaire sur python

je voudrais utiliser numpy.linalg.résoudre à résoudre une algèbre linéaire de l'équation, mais j'ai un message d'erreur disant: "2 Dernières dimensions de la matrice doit être de forme carrée'. Veuillez jeter un peu de lumière merci beaucoup !! voici mon code:

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)
Pour faire une opération, vous devez inverser la matrice A, et seulement les matrices carrées sont inversible. Si vous voulez résoudre le système inexactly, vous pouvez utiliser une opération appelée la pseudo-inverse et puis la multiplier avec v pour obtenir la v.
ou il pourrait utiliser numpy.linalg.lstsq(A, w)
J'étais sur le point de mettre en œuvre une pseudo fonction inverse de lui, mais je vois que ça a déjà été fait pour moi. 🙂
il est préférable d'éviter le calcul de la pseudo-inverse explicitement, depuis qu'il est mathématiquement plus cher et moins numériquement stable que le SVD-en fonction de la méthode utilisée par lstsq
vous pouvez poster votre commentaire que la réponse...

OriginalL'auteur tchengaa | 2015-03-13