我想用curve_fit
來適應一些數據。這是偉大的工作,我只是想提高配合其他參數匹配假設(如機械效率不能大於100%等)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)
但我想另外指定邊界之間的關係參數例如。
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