- 射影変換によって直線状の4点(P,S,R,Q)間の距離に関して「複比」が保存される
- が保存される
- 複比を保存しながら点を並べていったときの値の列xについて複比を計算したいとき
my.doubleratio <- function(x){
if(!is.matrix(x)){
x <- matrix(x,nrow=length(x))
}
P <- x[1:(length(x[,1])-3),]
Q <- x[4:length(x[,1]),]
S <- x[2:(length(x[,1])-2),]
R <- x[3:(length(x[,1])-1),]
((P-R)/(Q-R))/((P-S)/(Q-S))
}
d <- 2
lambdas <- runif(d)
M <- matrix(runif(d^2)*4,d,d)
t <- seq(from=0,to=10,length=20)
z <- matrix(0,length(t),d)
for(i in 1:length(t)){
z[i,] <- exp(lambdas*t[i])
}
x <- t(M %*% t(z))
x <- x/x[,d]
d.r <- matrix(0,length(t)-3,d)
for(i in 1:d){
d.r[,i] <- my.doubleratio(x[,i])
}
matplot(d.r,type="l")