【发布时间】:2021-06-27 14:18:46
【问题描述】:
我正在尝试使用以下等式将模型拟合到数据集。
C[n] = C[n-1]+Ces*((1-C[n-1])/(1-C[n-1]*p))
数据集如下所示:。
空心圆圈是数据,红线是我希望使用某种曲线拟合程序实现的目标。数据中的第一个值可用于表示C[[1]],我正在寻找解决C、Ces 和p 的问题。我已经包含了一个原始数据示例和一些对其建模的代码(如上图所示)。我已经使用 R 中的 nls 包进行指数拟合,但这有点不同,我无法弄清楚如何最好地运行它。
C<-c(-0.003, 0.072, 0.149, 0.239, 0.320, 0.413, 0.456, 0.526, 0.554,
0.611, 0.632, 0.648, 0.703, 0.714, 0.725, 0.771, 0.801, 0.770, 0.787,
0.809, 0.836, 0.871, 0.866, 0.861, 0.873, 0.891, 0.887, 0.895,
0.919, 0.930, 0.924, 0.927, 0.939, 0.929, 0.977, 0.929, 0.948, 0.944,
0.947, 0.990, 0.981, 0.967, 0.973, 0.970, 1.005, 1.002, 0.978, 0.997,
1.001, 1.008, 1.008, 1.016, 0.989, 1.037, 1.001, 1.030, 1.032, 0.999,
1.031, 1.007, 1.015, 1.018)
Ces<-0.09
p<-0.01
Cd<-C[1]
Ce<-c(Cd)
I<-2
for (I in 2:length(C)) {
Ct<-Cd+Ces*((1-Cd)/(1-Cd*p))
Ce<-append(Ce, Ct)
Cd<-Ct
}
summary(lm(C ~ Ce))$coefficients
plot(C, ylim=c(-0.5,1))
par(new=TRUE)
plot(Ce, type="l", col="red", ylim=c(-0.5,1))
【问题讨论】:
标签: r curve-fitting differential-equations