Qui è un metodo che funzionerà con matrici sparse (che dai vostri commenti è quello che volete), che utilizza la funzione leastsq dal pacchetto ottimizzare
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]
genera
[ 1. 2.]
E ' tipo di brutto a causa di come dovevo ottenere le forme per abbinarle secondo quanto volevano i leastsq. Forse qualcun altro sa come renderlo un po 'più ordinato.
Ho anche provato a far funzionare qualcosa con le funzioni in scipy.sparse.linalg utilizzando i LinearOperators, ma senza successo. Il problema è che tutte queste funzioni sono fatte per gestire solo le funzioni quadrate. Se qualcuno trova un modo per farlo in quel modo, mi piacerebbe saperlo.
fonte
2010-02-12 17:10:54
Si potrebbe trovare questo link utile: http://mathesaurus.sourceforge.net/ matlab-numpy.html Non sono sicuro che sarà un rispondi a questa domanda specifica però. – SapphireSun