【发布时间】:2011-02-20 04:10:25
【问题描述】:
我想检查 NMR 谱图,并使用高斯总和对特定峰进行最佳拟合。使用下面的代码可以将两个高斯拟合到峰值,但是它可以很容易地推广到 n 高斯吗?
freq <- seq(100, 200, 0.1)
signal <- 3.5*exp(-(freq-130)^2/50) + 0.2 + 1.5*exp(-(freq-120)^2/10)
simsignal <- rpois(length(signal), 100*signal) + rnorm(length(signal))
plot(freq, simsignal)
res <- nls(simsignal ~ bg + h1 * exp(-((freq - m1)/s1)^2) + h2 * exp(-((freq - m2)/s2)^2),
start=c(bg = 4, h1 = 300, m1 = 128, s1 = 6, h2 = 200, m2 = 122, s2 = 4), trace=T)
lines(freq, predict(res, freq), col='red')
另一个愿望是可视化每个高斯对原始峰值的贡献,例如。高斯应该并排绘制(而不是像上面那样绘制它们的总和)。
【问题讨论】:
标签: r