【发布时间】:2016-08-03 21:57:44
【问题描述】:
我有以下功能需要解决:
np.exp((1-Y)/Y) = np.exp(c) -b*x
我将函数定义为:
def function(x, b, c):
np.exp((1-Y)/Y) = np.exp(c) -b*x
return y
def function_solve(y, b, c):
x = (np.exp(c)-np.exp((1-Y)/Y))/b
return x
然后我用了:
x_data = [4, 6, 8, 10]
y_data = [0.86, 0.73, 0.53, 0.3]
popt, pcov = curve_fit(function, x_data, y_data,(28.14,-0.25))
answer = function_solve(0.5, popt[0], popt[1])
我尝试运行代码,错误是:
无法分配给函数调用
我要解决的函数是线性形式的y = 1/ c*exp(-b*x)。我有一堆y_data 和x_data,我想获得c 和b 的最佳值。
【问题讨论】:
-
刚刚编辑了方程。
-
在担心实施之前,您应该澄清您真正想要解决的问题。正在尝试为哪个变量求解方程 exp((1-Y)/Y) = exp(c) -b*x?
-
np.exp(c)在这种情况下只是另一个常量,因此您可以将其替换为C。你能添加一些数据吗?! -
你的第一个陈述是一个方程,而不是一个函数。如果你把这个方程放到 wolfram.alpha 中,你会得到一个解析解,比如
Y。然后,您可以使用 numpy/matplotlib 绘制结果(小心,它很复杂,并且有多种解决方案)。 -
@Cleb 刚刚添加了一些数据点。
标签: python numpy scipy curve-fitting scientific-computing