【发布时间】:2019-05-04 06:59:11
【问题描述】:
我正在尝试定义一个适合表单输入 x 和 y 数据的函数:
def nlvh(x,y, xi, yi, H,C):
return ((H-xi*C)/8.314)*((1/xi) - x) + (C/8.314)*np.log((1/x)/xi) + np.log(yi)
x 和 y 数据是相同长度的一维 numpy 数组。我想对数据进行切片,以便我可以选择 x 和 y 的前 5 个点,通过优化模型中的 C 和 H 来拟合它们,然后向前移动一个点并重复。我有一些代码可以对相同的数据进行线性拟合:
for i in np.arange(len(x)):
xdata = x[i:i + window]
ydata = y[i:i+window]
a[i], b[i] = np.polyfit(xdata, ydata,1)
xdata_avg[i] = np.mean(xdata)
if i == (lenx - window):
break
但是在上面定义的等式上做同样的事情似乎有点棘手。 x 和 y 显示为自变量和因变量,但也有参数 xo 和 yo,它们是每个窗口中 x 和 y 的第一个值。
我想要的最终结果是两个带有 H[i] 和 C[i] 的新数组,其中 i 指定每个后续窗口。有人对我如何开始有一些见解吗?
【问题讨论】:
-
你用什么试衣?你似乎没有使用你的函数
nlvh。在任何情况下,您都可以使用partial函数,并设置其余参数。 -
nlvh定义了 x 和 y 遵循的规则还是 y 的定义?我问是因为它以 x、y、xo、yo、H 和 C 作为参数,并以 xi、yi、x、C 和 H(但不是 y)的形式编写。如果你尝试在 Python 中使用它,你会得到 xi 和 yi 的UnboundLocalError异常。请更正这一点并解释这个函数代表什么。 -
xi和yi在nlvh函数中应该分别与xo和yo相同吗?我认为你在 nlvh 中有错字。
标签: python data-science model-fitting