前提
こんにちは。数学的な問題ですが、Pythonでscipy.optimize.fmin を使用して行列の問題を解きたいです。
実現したいこと
A=行列[112][121][211][221]
b=行列[1][-1][1][-1]
の時、scipy.optimize.fmin を使用して||Ax-b||の最小化問題を解く。
scipy.optimize.fminの使い方がよくわかりません。
発生している問題・エラーメッセージ
scipy.optimize.fminを使わずに解いた答えと違うのですが、どうしてなのかがわかりません。
該当のソースコード
python
1A = np.array([[1, 1, 2], [1, 2, 1], [2, 1, 1], [2, 2, 1]]) 2b = np.array([[1], [-1], [1], [-1]]) 3x = np.dot(np.linalg.pinv(np.dot(A.T, A)), np.dot(A.T, b)) 4x_1 = x 5print(x_1) 6def f(x): 7 y = (np.dot(A, x) - b) 8 return np.linalg.norm(y) 9 10init_guess = np.array([[0.5], [0.5], [0.5]]) 11#init_guess = np.matrix([[0.5], [0.5], [0.5]]) 12minimum = optimize.fmin(f, init_guess) 13 14print(f(minimum)) 15 16print(f(init_guess)) 17 18print(f(x_1))
試したこと
scipy.optimize.fminを使わずに解いた時の答えを確認しましたがそちらは合っていると思います。個人的にscipy.optimize.fminの使い方がいまいちわかりません。これが一番の問題だと思います。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。