如果我知道 R 中的解和其他参数,如何求解交叉距离函数中的参数?
How can I solve for a parameter in a cross distance function if I know the solution and other parameter in R?
使用 R,我想在给定 x 和 y 的情况下求解 s以下等式:
y=(s-x)'(s -x),
其中 s 和 x 是 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
的函数,给定 x
和 y
,如下所示
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
使用 R,我想在给定 x 和 y 的情况下求解 s以下等式:
y=(s-x)'(s -x),
其中 s 和 x 是 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
的函数,给定 x
和 y
,如下所示
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