我正在尝试将一些数据拟合到python中的方程式中,但我遇到了一些困难。我有一个方程式:
y(t)=yo+a(t-ti)^b+kt
其中a、ti、b和k是拟合参数,t和disp是分别表示时间和位移的数组变量。这个等式可以通过一些迭代在gnuplot中很好地拟合,但是在python中拟合它会抛出一个错误:-
ValueError: array must not contain infs or NaNs
完整的堆栈跟踪是:
creep_test.py:246: RuntimeWarning: invalid value encountered in power
fitfunc = lambda
我对MATLAB和它的语法比较陌生。
在R中,我们可以生成一个数据集来进行建模:
> x <- seq(1:100)
> x <- jitter(x,amount=.3)
> y <- seq(1:100)
> y <- sin(y)
> y <- jitter(y)
我们现在有一些从1到100之间的抖动x值,y值大约遵循sin曲线。
现在,我们可以使用nls来拟合模型:
model <- nls(y ~ a + b*x + c*sin(d*x+e), start = c(a=0, b = 1, c = 1,d=1,e=0))