Aquí es un método que trabaja con matrices dispersas (que a partir de sus comentarios es lo que quiere), que utiliza la función leastsq del paquete optimizar el
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.]
Es algo feo debido a la forma en que tenía que conseguir las formas para que coincidieran de acuerdo con lo que leastsq quería. Tal vez alguien más sepa cómo hacer esto un poco más ordenado.
También he intentado hacer que algo funcione con las funciones en scipy.sparse.linalg utilizando LinearOperators, pero fue en vano. El problema es que todas esas funciones están hechas para manejar funciones cuadradas solamente. Si alguien encuentra una manera de hacerlo de esa manera, me gustaría saberlo también.
Usted puede encontrar este enlace útil: http://mathesaurus.sourceforge.net/ matlab-numpy.html No estoy seguro si será una Sin embargo, responden a esta pregunta específica. – SapphireSun