callback
キーワード引数 toはscipy.optimize.minimize
、各反復で関数を最小化する引数の現在の見積もりで呼び出される関数を指定します。
しかしminimize
、スカラー関数 (単一の値を返す関数) を対象としているため、それがあなたの例にどのように適用されるかわかりません。scipy.optimize.fsolve
代わりに試してみることをお勧めします。callback
ただし、キーワードは受け入れません。これを回避するには、呼び出し可能な関数オブジェクト ( を返すAx-b
) で線形方程式をラップし、呼び出し可能なオブジェクトに渡される引数を取得するだけです。
class Ab:
def __init__(self, A, b):
self.A = A
self.b = b
def __call__(self, x):
print 'x =', x
return A.dot(x) - b
次に、次のように使用します。
>>> A = np.array([[2, 3], [4, 9]], float)
>>> b = np.array([5, 5])
>>> f = Ab(A, b)
>>> optimize.fsolve(f, [0, 0])
x = [0 0]
x = [ 0. 0.]
x = [ 0. 0.]
x = [ 1.49011612e-08 0.00000000e+00]
x = [ 0.00000000e+00 1.49011612e-08]
x = [ 5. -1.66666667]
x = [ 5. -1.66666667]
array([ 5. , -1.66666667])
fsolve
は 5 回の反復しか行わなかったと報告されているため、最初の 2 つの呼び出しは実際には収束に使用されていないようです。