我尝试使用scipy curve_fit来求解一个方程,以获得一些未知参数的估计值。我有自变量(x)和因变量(y)以及一个已知的参数(e),现在我需要找到a,b,c和d的估计值。
我使用了下面的代码,并不确定a,B,c和d是否是使用这种方法的“正确”估计值。
import pandas as pd
import numpy as np
from scipy.optimize import curve_fit
np.random.seed(0)
x = np.random.randint(0, 100, 100) # known independent variable
y = np.random.randint(0, 100, 100) # known dependent variable
e = np.random.randint(0, 100, 100) # know parameter
def cubic(x, a, b, c, d, e ):
return a * x**3 + b * x**2 + c * x + d + e
(a, b, c, d, e), _ = curve_fit(cubic, x, y)
print((a, b, c, d ))
(0.00010514483118750917, -0.00810393624233341, -0.10316706291775657, -24200081.18055175)
1条答案
按热度按时间u5rb5r591#
创建一个只接受
a, b, c, d
并传入固定值e
的函数:通过使用
*args
和一个初始猜测,可以使事情更明确一些: