Đây là một phương pháp mà sẽ làm việc với ma trận thưa thớt (mà từ ý kiến của bạn là những gì bạn muốn) trong đó sử dụng các chức năng leastsq từ gói tối ưu hóa
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]
tạo
[ 1. 2.]
Đó là loại xấu xí bởi vì làm thế nào tôi đã có để có được những hình dạng để phù hợp theo những gì ít nhất là muốn. Có thể ai đó khác biết cách làm cho nó gọn gàng hơn một chút.
Tôi cũng đã cố gắng để có được một cái gì đó để làm việc với các chức năng trong scipy.sparse.linalg bằng cách sử dụng LinearOperators, nhưng vô ích. Vấn đề là tất cả các chức năng đó chỉ được thực hiện để xử lý các hàm vuông. Nếu bất cứ ai tìm cách làm theo cách đó, tôi cũng muốn biết.
Nguồn
2010-02-12 17:10:54
Bạn có thể thấy liên kết này hữu ích: http://mathesaurus.sourceforge.net/ matlab-numpy.html Tôi không chắc liệu nó có nswer câu hỏi cụ thể này mặc dù. – SapphireSun