如果我知道 R 中的解和其他参数,如何求解交叉距离函数中的参数?

How can I solve for a parameter in a cross distance function if I know the solution and other parameter in R?

使用 R,我想在给定 xy 的情况下求解 s以下等式:

y=(s-x)'(s -x),

其中 sx 是 1x2 向量。我该怎么做?需要注意的是s会有很多解法,我想获取这整套解法

我目前的工作:

crossdist <- function(s,x){
  c1 <- complex(real=s[1], imaginary=s[2])
  c2 <- complex(real=x[1], imaginary=x[2])
  dist <- outer(c1,c2,function(z1,z2) Mod(z1-z2))
  dist
}


x=c(2,4)

y=.5

solcrossdist <- function(y,x) {
  return(polyroot(function(s) y - crossdist(s,x)))
}

但是,这无法正常工作。我觉得这里缺少一个非常简单的解决方案。

更新:

使用 ThomasIsCoding 提供的函数,我使用以下代码生成了该问题的大量解决方案:

n=100000
s.save=rep(0,n)
for(k in 1:n){
  s.save[k]=s(k/100)
}

在数学上,s 可以写成 u 的函数,给定 xy,如下所示

s <- function(u,x = c(2,4), y = 0.5) c(x%*%c(1,1i)) + sqrt(y)*exp(1i*u)

然后你可以尝试 s(u) 的任何真实 u 并检查 y == Mod((2+4i)- s(u))**2