Hier ist eine Methode, die mit spärlichen Matrizen arbeitet (die aus Ihren Kommentaren ist, was Sie wollen), die die leastsq Funktion aus dem optimize Paket
from numpy import *
from scipy.sparse import csr_matrix
from scipy.optimize import leastsq
from numpy.random import rand
A=csr_matrix([[0.,1.],[0.,1.],[1.,0.]])
b=array([[2.],[2.],[1.]])
def myfunc(x):
x.shape = (2,1)
return (A*x - b)[:,0]
print leastsq(myfunc,rand(2))[0]
erzeugt
[ 1. 2.]
Es verwendet ist irgendwie hässlich, weil ich die Formen so zusammenbringen musste, dass sie sich an die Anforderungen von mindestsq anpassen. Vielleicht weiß jemand anders, wie man das etwas aufgeräumter macht.
Ich habe auch versucht, etwas mit den Funktionen in scipy.sparse.linalg zu arbeiten, indem Sie die LinearOperators verwenden, aber ohne Erfolg. Das Problem ist, dass all diese Funktionen nur für quadratische Funktionen verwendet werden. Wenn jemand einen Weg findet, dies zu tun, würde ich es gerne wissen.
Sie können diesen Link hilfreich: http://mathesaurus.sourceforge.net/ matlab-numpy.html Ich bin mir nicht sicher, ob es a nswer diese spezifische Frage obwohl. – SapphireSun