トロピカル幾何、トロピカル曲面

  • トロピカル代数では、2つの演算、積と和があるが、トロピカル積\odotは、普通の和、トロピカル和\oplusは、最大値を取る、というルール
  • トロピカル多項式 1 \odot x_1^2 \oplus 1 \odot x_2^2 \oplus 2 \odot x_1 x_2 \oplus 2 \odot x_1 \oplus 2 \odot x_2 \oplus 2
  • max(1 + 2 x_1, 1 + 2 x_2, 2 + x_1 x_2, 2 + x_1, 2 + x_2, 2)
  • これをRで計算して図示してみる

f:id:ryamada:20210318101247p:plain

x1 <- x2 <- seq(from=-1,to=3,length=50)
x1x2 <- expand.grid(x1,x2)

f1 <- function(x){1 + 2 * x[,1]}
f2 <- function(x){1 + 2 * x[,2]}
f3 <- function(x){2 + x[,1] + x[,2]}
f4 <- function(x){2 + x[,1]}
f5 <- function(x){2 + x[,2]}
f6 <- function(x){2}

fs <- list(f1,f2,f3,f4,f5,f6)

y <- matrix(0,length(x1x2[,1]),length(fs))
for(i in 1:length(fs)){
	tmp.f <- fs[[i]]
	for(j in 1:length(x1x2[,1])){
		y[j,i] <- tmp.f(x1x2[j,])
	}
}

minf <- apply(y,1,which.max)

image(x1,x2,matrix(minf,length(x1),length(x2)))