这与Trilateration for n points的问题类似,并且由于没有答案,询问者发布了答案。
从parent post开始,代码显示为Mathematica,输出中有两个变量(X,Y)。
我在使用nls
函数在R中创建相同的函数时遇到了困难。
我尝试了以下内容:
data <- data.frame( signal = c(98,94,66,49),x=c(6,5,4,4),y=c(6,7,7,6))
weighted_distance <- function(signal, y, x)
{
return(y - (signal^-1)*10*x)
}
NLS_x <- nls(y ~ weighted_distance(signal,y,x), data = data,start = list(x=2,y=1))
我收到以下错误:
Error in numericDeriv(form[[3L]], names(ind), env) :
'Missing value or an infinity produced when evaluating the model'
我理解代码中写的公式是不正确的,因为分母直接作为信号而不是乘以表示距离的常数。
但我不明白如何处理这个问题,并以更简单的方式表示R中的加权非线性平方估计。