Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 尝试拟合某些数据,但尝试运行nls时启动值和参数出错_R_Curve Fitting_Nls - Fatal编程技术网

R 尝试拟合某些数据,但尝试运行nls时启动值和参数出错

R 尝试拟合某些数据,但尝试运行nls时启动值和参数出错,r,curve-fitting,nls,R,Curve Fitting,Nls,我试图将一些数据拟合到一个方程,并不断遇到相同的错误: nlsy~A+B*exp1*-x-K^2/2*E^2+G*中出现错误: “数据”中没有起始值的参数:B、K、E、G、H、J gausform <- function(x, A, B, K, E, G, H, J) { A + (B * exp(1) * ((-(x - K)^2)/(2 * (E)^2))) + (G * exp(1) *((-(x - H)^2)/(2 * (J)^2))) } new <- data.

我试图将一些数据拟合到一个方程,并不断遇到相同的错误: nlsy~A+B*exp1*-x-K^2/2*E^2+G*中出现错误: “数据”中没有起始值的参数:B、K、E、G、H、J

 gausform <- function(x, A, B, K, E, G, H, J) {
  A + (B * exp(1) * ((-(x - K)^2)/(2 * (E)^2))) + (G * exp(1) *((-(x - H)^2)/(2 * (J)^2)))
}

new <- data.frame(x,y)
st1 <- list(c(A = min(y), B = mx1, K = cen1, E = width1, G = mx2,  H = cen2,  J = width2))
fit <- nls(y ~ gausform(x, A, B, K, E, G, H, J), data = new, start = st1)
对R来说非常陌生,所以很有可能是出了严重的问题,下面是我要做的: x和y是我的数据 A、 B,K,E,G,H和J是我试图从拟合中得到的值 mx1、cen1、width1、mx2、cen2和width2都是我根据数据计算出来的值,我希望用作初始起始值

我不确定我弄糟的线是否使B到J不是从设置为st1的开始

非常感谢您的任何提示或见解

您遇到的特定问题之所以发生,是因为您意外地构建了一个包含单个向量的列表,而不是一个参数列表,即listc。。。。如果省略c:

这可能会让你进入下一步——更多有用的信息,请参见@onyanbu的评论,即,你似乎不太可能希望将二次项乘以exp1,而不是将二次项求幂


提供一个可复制的示例会有很大的帮助…

首先,您的意思是使用exp-x-k^2/2*E^2还是使用-x-k^2/2*E^2*2.718282??因为你有第二个。计算机如何区分B和G,K和H,E和J??你想解一个混合的法线吗???是的,我想在公式中使用欧拉数,我想拟合我的数据,它看起来像一个双高斯函数。我知道Matlab的一些代码能够将数据拟合到公式中,所以我认为它应该是可以做到的,但是因为我不熟悉任何编码语言,我似乎不知道如何做到这一点!希望澄清!如果你使用欧拉数,它看起来不像高斯分布。高斯是exp-x^2/2而不是-x^2/2*exp1Ah谢谢你Onyanbu!是 啊我甚至没有看到。他可以用c。。。或列表。。。但不是listc。。。。这完全正确,多亏了你们两个!!离解决这个问题又近了一步!
st1 <- list(A = min(y), B = mx1, K = cen1, E = width1,
            G = mx2,  H = cen2,  J = width2)