私はcurve_fit
をデータに適合させようとしています。それは素晴らしい働いている、私は追加のパラメータを持つフィットは、私はさらに関係に範囲を指定したいScipy curve_fit境界と条件
y_data = [0.90 0.90 0.90 0.90 0.90 0.90 0.90 1.30 1.30 1.30 1.30 1.20 1.65 1.65 1.65 1.65 1.65 1.65 1.80 1.80 1.80 1.80 1.80 1.80 1.80 1.80 1.80 3.50 6.60 6.60 6.70 6.70 6.70 6.70 6.70 8.50 12.70] # I am aware this does not have commas
x_data = [0.38 0.38 0.38 0.38 0.38 0.38 0.38 0.38 0.38 0.38 0.38 0.46 0.53 0.53 0.53 0.53 0.53 0.53 0.53 0.53 0.53 0.53 0.53 0.53 0.53 0.53 0.53 0.53 1.02 1.02 1.02 1.02 1.02 1.02 1.02 1.02 1.02] # ditto
def poly2(x, a, b, c): return a*x**2+ b*x+c
def poly3(x,a,b,c,d): return a*x**3+b*x**2+c*b*x+d
pars = fit(poly2, x_data, y_data, bounds=bounds)
しかし、(例えば100%以上などすることはできません機械効率など)の前提条件に一致するように改善したいと思いますパラメータ。
B**2 -4*a*c > 0 #for poly2
b**2-3*a*c=0 #for poly3
フィットが水平方向の屈曲を持つようにする。 これを達成する方法はありますか?
編集:私は調査後、私はこれを見つけ、それが役立つことがあります。How do I put a constraint on SciPy curve fit?
これが示唆したようにlmfitを使用して行われるだろうか?
いいえ(基本的な問題を変更する)(非ボックス)制約はサポートされていません。 – sascha
lmfitモジュールは、[パラメータ制約](https://lmfit.github.io/lmfit-py/constraints.html)を追加する簡単な方法を提供するようです。 – 9dogs
データを追加できますか? – Cleb