2017-02-21 3 views
0

における多変数方程式を最適化、cは定数です。は、私は、フォームの式を有するパイソン

私は、a、b、cの最適値を探したいと思います。これをPythonで行う最良の方法は何でしょうか? optimize.curve_fitは、3つではなく2つの変数でのみ動作します。

+1

変数の実数はありますか?その場合、 'a'と' b'の歌に応じて 'x'と' y'は常に正の無限大または負の無限大になります... –

+2

このアプリケーションに "最適"を定義するものは何ですか? – Prune

+0

はい、これは回帰の問題です。 'x'、 'y'、 'z'は既知のデータなので、既知の 'z'と 'ax + by + c'の差を最小限にしようとしています – 218

答えて

2

退縮していますか?その場合は、二つ以上の変数のoptimize.curve_fit作品は、あなただけのリストとしてあなたの変数を渡す必要があります。

def line(x, a, b, c): 
    return a * x[0] + b * x[1] + c 

from scipy.optimize import curve_fit 
import numpy as np 

x = np.random.uniform(0., 100., 100) 
y = np.random.uniform(0., 200., 100) 
z = 3. * x + 2. * y + np.random.normal(0., 10., 100) 

popt, pcov = curve_fit(line, [x, y], z) 
print(popt) 

結果:

array([ 2.99156418, 2.00992449, -0.2434515 ]) 
関連する問題