指数曲线拟合和梯度和截距的提取

时间:2016-02-03 20:45:05

标签: r exponential nonlinear-functions

我想将指数曲线拟合到垂直温度曲线数据集。有时指数形状是正的,而其他时间是负的,这取决于空气温度条件。 最后,我想拟合每条曲线,然后提取一系列单独的温度曲线的梯度和截距(制作一个拟合和提取参数的循环)

我已经尝试了一些关于stackoverflow和Google的建议,并且无法超越“初步猜测”步骤......任何帮助都将不胜感激。

我最近和最有希望的尝试如下(取自stackoverflow上的一个例子 - (whuber):

我的数据:

Temps1<-c(284.1875, 285.6550, 286.2342, 286.9142, 287.7900,        
290.3492,295.2517, 298.1608)
Temps2<-c(275.6958, 275.0583, 274.7858, 274.4458, 273.9900, 273.1675, 
272.3225, 271.5875)
Depths<-c(-100,-70,-56,-42,-28,-14,0,7)

d <- data.frame(x = Temps1, y = Depths)
c.0 <- min(d[,1]) * 0.5
model.0 <- lm(log(Temps1) - c.0 ~ Depths, data=d)
start <- list(a=exp(coef(model.0)[1]), b=coef(model.0)[2], c=c.0)
model <- nls(d[,1]~ a * exp(b * Depths) + c, data = d, start = start)

我遇到了错误: “nlsModel中的错误(formula,mf,start,wts):   初始参数估计时的奇异梯度矩阵 另外:警告信息: 1:在min(x)中:min没有非缺失参数;返回Inf 2:在max(x)中:max没有非缺失参数;返回-Inf“

1 个答案:

答案 0 :(得分:0)

建议您使用None算法。请注意,输出if empty($field3) { echo "date is not set"; } 中的"plinear".lin1a。您不需要线性参数的起始值:

.lin2