必ずゼロになる

  • 三角不等式というのがある
    • 「三角形の 2 辺の長さの和は残りの 1 辺の長さよりも大きい」
  • ちょっと違うけれど、どこか似ている話
    • 今、3つの数値、x,y,zがある
    • それらの差の絶対値a=|x-y|,b=|y-z|,c=|z-x|を取る
    • このa,b,cには、min(a+b-c,b+c-a,c+a-b) = 0という関係がある
    • ちなみに、x,y,zがベクトルになると、a,b,cを2つのベクトルの差ベクトルのノルムとすると成り立たない
    • x,y,zのそれぞれの次元成分について考えると、それぞれの成分ごとには成り立つが、その成り立つ場合(a+b-c,b+c-a,c+a-bのどれが最小になるかの場合わけ)が、同一の次元成分で満たされないことになり、成り立たない
x<-runif(10000)
y<-runif(10000)
z<-runif(10000)
A<-abs(x-y)
B<-abs(y-z)
C<-abs(z-x)
plot(A+B-C)
plot(sort(A+B-C))


x<-rnorm(10000)
y<-rnorm(10000)
z<-rnorm(10000)
A<-abs(x-y)
B<-abs(y-z)
C<-abs(z-x)
plot(A+B-C)
plot(sort(A+B-C))

plot(apply(cbind(A+B-C,B+C-A,C+A-B),1,min))

x <- matrix(rnorm(10000*2),ncol=2)
y <- matrix(rnorm(10000*2),ncol=2)
z <- matrix(rnorm(10000*2),ncol=2)

A <- x-y
B <- y-z
C <- z-x

my.norm <- function(v){
	sum(v^2)
}

A.n <- apply(A,1,my.norm)
B.n <- apply(B,1,my.norm)
C.n <- apply(C,1,my.norm)

plot(apply(cbind(A.n+B.n-C.n, B.n+C.n-A.n,C.n+A.n-B.n),1,min))