Metropolis Hastings サンプリングする

# 値の台
xx <- seq(from=-5,to=20,length=1000)

# 適当な(密度関数)
dd <- dnorm(xx) + dnorm(xx,1,2) + dnorm(xx,10,2)

# 確率密度関数っぽい形
plot(xx,dd)

# 
library(mcmc)

# 確率密度に比例したあたいの対数を返す関数を書く
h <- function(x){
	log(dnorm(x) + dnorm(x,1,2) + dnorm(x,10,2))
}
# サンプリングする
# 2番目の引数は、始めに試す乱数の値
# 
out <- metrop(h, 0, 10000)
out$accept

# out[[2]]には試した値が格納される
# out$accept.batchには、0/1が格納され、採択されたものには1が立つのでそれを選ぶ

hist(out[[2]][which(out$accept.batch==1)])

ぱらぱら めくる『現代の量子力学 量子情報・量子測定を中心として』

まえがき

  • 情報理論の観点からの最小限の実験事実に基づいた論理展開」
  • 「確率解釈のボルン則や量子的重ね合わせ状態の存在を証明」
  • 「情報が書き込まれている量子系に対する物理操作の考察からシュレディンガー方程式を一般的な形で導出」
  • 量子力学は、古典力学に出てくる粒子の位置や運動量の値のように測定以前から存在している物理的実在を扱う理論ではなく」
  • 「(量子力学は)物理量の確率分布に基づいた一種の情報理論であると正しく認識させる」
  • 複素数の値をとる波動関数の正体が量子系に関する情報の集まりに過ぎない」
  • 「なぜ自然が量子力学の実装を選択したのかについて考察」
  • 「本書の理解に必要な主な前提知識は、力学、電磁気学複素数も取り入れた線形代数および多変数関数の微積分」
  • 構成

第1章 隠れた変数の理論と量子力学

  • 物理量の期待値
  • 2つの物理量の期待値には、独立な関係もあり、相関する関係もある。相関係数は「期待値の相関の程度を表した値」
  • 期待値を考えるときには、確率分布を想定している。期待値の相関を考えるときには、同時確率分布を想定している
  • しかしこの同時確率分布が確定していると考えること(〜隠れた変数理論が相当する)と相容れない物理事象が観測される
  • それが量子揺らぎの話と繋がる。「チレルソン不等式」→こちら

第2章 二準位系の量子力学

  • 量子状態は、密度行列という表現を持つと考える(もしくは、密度行列によって表現できるようなものが、量子力学で言うところの状態である)
  • 密度行列が状態なので、固有値固有ベクトルは状態に関する大事な情報となる
  • また、ブラ・ケット、演算子をサンドイッチする線形代数計算が量子状態に関する情報や期待値・物理量と関係するのは、量子状態が行列表現を持つから
  • エルミート行列はこの文脈で、密度行列として振舞うための条件を満足する
  • 密度演算子から物理量の観測確率が直接計算できる(ボルン則)ことも、この線形代数計算により導かれる
  • ユニタリー行列は空間回転であるが、複素振幅ベクトル(確率密度の状態を持つベクトル)を変化させる行列の条件を満足する
  • 量子状態の重ね合わせの係数も物理量の期待値に影響を与え、期待値を大きくしたり小さくしたりする。これが、素朴な「線形結合(の延長)」としての理解と異なること(らしく)、干渉効果と呼ぶ

第3章 多準位系の量子力学

  • 自由度を上げた話
  • 物理量であるエルミート行列が2つあって、それらが可換な場合には、それぞれの固有値固有ベクトルをそれぞれ用いて表して、ドッキングできる
  • 異なる固有状態が同じ固有値を持つと「縮退がある」と言う
  • 純粋状態は密度演算子固有値が1で残りの固有値が全て0であるような場合

第4章 合成系の量子状態

  • 数学的概念であるテンソル積は、物理的に独立な量子系を複数考えるときに、その合成系全体の量子状態を記述するのに役立つ
  • 独立な量子系を「独立に」組み合わせること

第5章 物理量の相関と量子もつれ

  • 量子コンピュータなどの様々な量子的デバイスの重要なリソースとなる量子もつれは、古典力学にはなかった物理量の相関の一種である」
  • 古典的情報(01二進法情報)をやり取りし、その情報に基づいて局所操作をすることで、2箇所の状態は、独立から有相関状態にできる。これは「古典相関」
  • 古典相関は、線形式・テンソル積で表現できる
  • 古典相関の式で表現できない「相関」もありえて、それは「量子相関〜量子もつれ
  • 量子もつれがどうやったら作れるか・・・情報のやり取りが古典的ではなく、量子的であるか、局所操作ではない操作をするか、と言うことになろうか・・・
  • 状態とその相関は、情報学的にはエントロピー
  • したがって量子もつれには、エンタングルメントエントロピーの存在が見えてくる

第6章 量子操作および時間発展

  • 「全ての物理操作は必ず対象系と外部系の合成系の状態空間に作用するユニタリー行列で記述できる」
  • 「この事実から量子系の時間発展を記述するシュレーディンガー方程式が導かれる」
  • 「この時間発展における対称性と保存則」
  • アフィン性、トレース保存性、完全正値性、トレース保存完全正値写像(tpcp写像)
  • tcpc写像は、ある補助系を使うと、きれいに書けて、「シュタインスプリング表現」できる
  • トレース保存完全正値写像は、その線形代数的要請から構成するとごちゃごちゃした式表現になるが、それを簡潔に表しており、また、その写像がシンプルな性質を持つことを示しやすくもしてくれる
  • そんなシンプルな性質を表している表現に「クラウス表現」がある
  • この表現から、シュレーディンガー方程式が導出される
  • そして、固有状態、最小固有値に対応する固有状態=基底状態、エネルギー準位などの概念も出てくる

第7章 量子測定

  • 測定にも色々ある
  • 量子測定は物理操作の一つ
  • 物理操作としての特徴は、「系の情報の読み出しを伴う」こと
  • 注目系の量子状態を変化させて「測定できる強さ」に集約することで、非注目系の量子状態が別の状態に変化する
  • 特にその変化においては、「相互に独立」だった2系に量子もつれが発生する
  • 測定は「測定演算子」として記述される
  • 量子測定の分類
    • 一般測定 > 正確な測定 > 理想測定
  • 量子測定に関係すること
    • 量子揺らぎ
    • 演算子の可換性・非可換性と不確定性関係の不等式
    • 小澤不等式

第8章 一次元空間の粒子の量子力学

第9章 量子調和振動子

第10章 磁場中の荷電粒子

第11章 粒子の量子的挙動

  • 自分自身と干渉する
  • 電場や磁場に触れずとも感じる
  • トンネル効果
  • ポテンシャル勾配による反射
  • 離散的束縛状態
  • 連続準位と離散準位の共存

第12章 空間回転と角運動量演算子

第13章 三次元球対称ポテンシャル問題

第14章 量子情報物理学

  • 複製禁止定理:純粋状態に含まれる情報は特別な場合を除いて複製を作れない。。。量子暗号にも使われている原理
  • 量子テレポーテーション量子もつれさせておけば、量子通信によって何かを送らなくても、遠隔地側の状態変化を起こし、結果として情報を伝えることができる
  • 量子計算
    • 回路型量子計算
    • 測定型量子計算

第15章 なぜ自然は「量子力学」を選んだのだろうか

  • 量子力学は、隠れた変数理論の理論よりも強い相関を持つ」
  • 量子力学以外にも、隠れた変数の理論よりも強い相関を持つ数学的な理論は無数にあることが知られている」
  • チレルソン不等式(量子力学
  • ポペスク=ローリッヒ箱:チレルソン限界を超えた、無信号条件を満たす箱
    • 情報因果律というタイプの相対論的な因果律を破ることが知られている
    • 「一般に情報因果律とは、Mを任意の自然数としてアリスがボブにMビットのメッセージを送るとき、そのメッセージからボブが知ることができるアリスのデータに関する情報量はMビットを超えないこと」
  • 量子力学はたくさんある情報や確率の数学理論の一つに過ぎない。なぜ自然がその中から量子力学という体系を選んで自分に実装したのかは現在わかっていない。しかし情報因果律という概念が、もしかしたら量子力学を導出する重要な原理となる可能性がある」
    • 量子力学とその他の情報・確率の理論との違いが「情報因果律」の保持の有無で弁別できるから、このように述べているらしい

ぱらぱら めくる『Projective geometry, toric algebra and tropical computations』のIntroduction

Projective geometry, toric algebra and tropical computations

  • 代数幾何は連立多項式の零点集合を扱う、求解の話
  • トーリック幾何・多様体代数多様体の特別な部分クラスであって、離散データや凸多面体と関係が深い
  • トロピカル幾何は埋め込まれた多様体の組み合わせ的な側面と関係する。そして、埋め込まれた多様体の特定条件下での極限的性質を明らかにする
  • 代数統計・代数計算機計算が可能になるにつれ、シンボル演算を用いた計算機的取り組みが現実的な方法となってきている
  • 代数幾何計算機科学」への着目、と言い換えられる
  • 代数幾何計算機科学」において注目されている2つのトピックがある
  • その理由は代数多様体全般よりも、組み合わせ論的な特徴を持っていることによって計算がしやすいことにある
  • トーリック多様体は解きやすいサブクラスを与える
  • トロピカル化は、トーリック多様体でないために解きにくい問題をトーリック多様体にdegenerateしつつ、大事な不変量を維持してくれると言う意味で、両者は関係する
  • 具体的にこのペイパーが扱っているのは・・・
    • 次元削減が大事である時に、トーリック多様体は、次元削減しやすいと言う特徴がある。組み合わせ構造とそれは関係する
    • トロピカル化による、トーリックdegenerationについて述べる
    • トロピカル化してトーリックdegenerationmするための計算機実装について述べる
    • トーリック多様体の基底を、組み合わせ構造の視点で捉えて、計算機実装が改善されるらしい

代数幾何と量子計算で素数分解

www.nature.com
arxiv.org

  • 具体的な課題として、素数p,qの積がMになるかどうかの判定問題を扱っている
  • 自然数p,qを二進法で表すことで、{0,1}の二値制約のある変数のセットによって、満足すべき式を書き下している
  • その変数セットをy_1,....,y_mとすると、それらに対して、新たにy_i - x_i = 0という制約がある、と考えることで、y_i-x_iイデアルの生成元とする
  • また、制約多項式に登場する、\prod y_i^{a_i}なる単項式については、y_i \times y_jの組み合わせ的に取り扱うことにしている
  • 制約式に現れる単項式の中に登場するすべてのペアy_i \times y_jに対して、追加のx_ky_i y_j - x_k = 0という制約として入れ込む
  • このyとxとからなる制約式はいずれも、二項の式で、単項の差になっている。ここから求まるラジカル・イデアルも同様で、トーリックイデアルの特徴をもっている
  • これに対して、グレブナー基底を計算してやることで、求める解が「理論的」には得られる
  • グレブナー基底では、変数順序を入れて、掃き出し法を適用することにより、y,xの混合生成元のうち、yのみでできた「部分グレブナー基底(とそれに対応するイデアル)を求めることができるから
  • しかしながら、この方式だと、追加変数 x の個数がどんどん増えてしまうので、このままやるのは得策ではない
  • ちなみに、変数 x の個数に応じて量子計算機のビット数が増えてしまうのが、その理由
  • どうするか。。。
  • 制約多項式を「最適化問題的には同じ」だが、字数が低い多項式に変形する作戦を取る。これをNormal formを取る、という。Normal formを取るにあたり、適当な基底多項式を用いるが、このときグレブナー基底を用いることができる
  • また、Normal formを取って、制約式が簡素になっても、変数 x の数が多ければ、量子ビット数負荷は変わらないが、グレブナー基底を参照することで、xの取り換えを行って、現れる x の個数を減らすことができる。特に、トーリックイデアルになっており、この取り換えが容易に進む
  • 結局、トーリックイデアルの都合よさ、グレブナー基底の都合よさを用いて、制約を二次の項の差の式のセットに落とせて、しかも、追加した変数 x を含まない y のみの制約も判明し、最適化問題の解にたどり着く
  • 実際には、問題設定をこのようにした後、量子回路埋め込み問題でさらに工夫をする必要がある模様だが、その点は、現在の興味の対象外

グレブナー基底で連立多項式を解く、量子計算機でグレブナー基底を探す

https://arxiv.org/pdf/1903.08270.pdf

from sympy import *
x,y,z = symbols('x y z')
eqs =[x**2 + y**2 + z**2 - 4, x**2 + 2 * y**2 - 5, x*z-1]
result = groebner(eqs,x,y,z,order='lex')
for eq in list(result):
    print(eq)
    print('\n')
x + 2*z**3 - 3*z
y**2 - z**2 - 1
2*z**4 - 3*z**2 + 1
  • これにより、x^2 + y^2 + z^2=0,x^2 + 2 y^2-5=0,xz-1=0を満足する零点集合がx + 2z^3 -3z =0,y^2-z^2-1=0,2z^4-3z^2+1=0の零点しゅうごうであることがわかる
  • sagemathではどうなるか
R = PolynomialRing(ZZ,3,"xyz",order="lex") # 3変数の整数係数多項式環を作る。3変数はx,y,zでlex(辞書式)順序
x,y,z = R.gens() # x,y,zという変数をpython/sagemathで使うときに、作成した環 R の生成変数として指定する
eq1 = x^2 + y^2 + z^2 - 4 # イデアルの生成式の1番
eq2 = x^2 + 2 * y^2 - 5 # 同2番
eq3 = x * z -1 # 同3番
I = (eq1,eq2,eq3) * R  # イデアル I は、生成式に多項式環の要素すべてをかけたものなので、このようにする
B = I.groebner_basis() # イデアルIのグレブナー基底を計算する
B
[x + 2*z^3 - 3*z, y^2 - z^2 - 1, 2*z^4 - 3*z^2 + 1]
  • これを「見て」みる
  • Rを使って、xyzグリッド点を発生し、連立方程式をだいたい満足する点がかさなることを図示し、また、zの値が0.5のときに、3つの方程式が0に近いかどうかを絶対値で表したときの値が、2つの連立方程式でどのような関係になるかを図示する。値は違うが、0に近い(x,y,z=0.5)座標は共有されることがわかる

f:id:ryamada22:20210602112707p:plain

x <- y <- z <- seq(from=-2,to=2,length=50)
xyz <- as.matrix(expand.grid(x,y,z))
v1 <- xyz[,1]^2 + xyz[,2]^2 + xyz[,3]^2 -4
v2 <- xyz[,1]^2 + 2 *xyz[,2]^2 -5
v3 <- xyz[,1] * xyz[,3] -1

V <- v1**2 + v2**2 + v3**2

library(rgl)

#plot3d(xyz[which(V.<1),])

#plot3d(xyz[which(v1 < 0.0001),])

v1. <- xyz[,1] + 2 * xyz[,3]^2 -3 * xyz[,3]
v2. <- xyz[,2]^2 - xyz[,3]^2 - 1
v3. <- 2 * xyz[,3]^4 - 3 * xyz[,3]^2 + 1

V. <- v1.**2 + v2.**2 + v3.**2

plot(V[which(V<0.5)],V.[which(V<0.5)])

plot3d(xyz[which(V.<0.5),])
spheres3d(xyz[which(V<1),],radius=0.01,color="green")

f:id:ryamada22:20210602112729p:plain

x <- y <- seq(from=-2,to=2,length=50)
xy <- as.matrix(expand.grid(x,y))
z <- 0.5

xyz <- cbind(xy,rep(z,length(xy[,1])))
v1 <- xyz[,1]^2 + xyz[,2]^2 + xyz[,3]^2 -4
v2 <- xyz[,1]^2 + 2 *xyz[,2]^2 -5
v3 <- xyz[,1] * xyz[,3] -1

V <- v1**2 + v2**2 + v3**2

library(rgl)

#plot3d(xyz[which(V.<1),])

#plot3d(xyz[which(v1 < 0.0001),])

v1. <- xyz[,1] + 2 * xyz[,3]^2 -3 * xyz[,3]
v2. <- xyz[,2]^2 - xyz[,3]^2 - 1
v3. <- 2 * xyz[,3]^4 - 3 * xyz[,3]^2 + 1

V. <- v1.**2 + v2.**2 + v3.**2

plot(V[which(V<0.5)],V.[which(V<0.5)])

plot3d(cbind(xyz[,1:2],V))
spheres3d(cbind(xyz[,1:2],V.),radius=0.1,color="green")
  • {0,1}を取る変数があるときに、それを満足する解を探すには、x(x-1)=0を零点集合の満足条件に加えればよい
    • sagemathでやってみる
R = PolynomialRing(ZZ,6,"x1,x2,x3,a2,b1,b2",order="lex")
x1,x2,x3,a2,b1,b2 = R.gens()
eqs = [x1+x2+x3-b1,x1+a2*x2-b2]
eqs = eqs + [x*(x-1) for x in [x1,x2,x3]] # 3変数 x1,x2,x3につき xi(xi-1)=0の条件を付与
eqst = tuple(eqs) # リストをタプルにする
I = eqst * R 
B = I.groebner_basis()
for eq in list(B):
    print(str(eq)+",")
    • グレブナー基底は「変数順序での掃き出し」になっているので、後半には、xi変数は入っていない(最後の7つの式)。これが、x1,x2,x3 \in \{0,1\}を満足する条件の下での、a2,b1,b2の満足条件となる
x1 + x2 + x3 - b1,
x2^2 - x2,
x2*x3 - x2*b1 + x2*b2 - x3 + b1 - b2,
x2*a2 - x2 - x3 + b1 - b2,
x2*b1^2 - 3*x2*b1 + 2*x2 - 4*x3*b1 + 4*x3*b2 + 4*x3 + 2*a2*b1^2 - 4*a2*b1*b2 - 2*a2*b1 + 4*a2*b2 + b1^3 - 4*b1^2*b2 - b1^2 + 4*b1*b2^2 + 4*b1*b2 - 4*b2^2,
x2*b2^2 + x2*b2 - 2*x2 - 4*x3*b1 + 6*x3*b2 + 2*x3 + 3*a2*b1^2 - 6*a2*b1*b2 - 3*a2*b1 + 6*a2*b2 + 2*b1^3 - 6*b1^2*b2 - 4*b1^2 + 6*b1*b2^2 + 6*b1*b2 + 4*b1 - 7*b2^2 - b2,
2*x2*b2 - 2*x2 + 2*x3*b1 - 4*x3 - b1^2 + 3*b1 - 2*b2,
x3^2 - x3,
x3*a2 + 2*x3*b1 - 2*x3*b2 - 2*x3 - a2*b1 + a2*b2 - b1^2 + 2*b1*b2 + b1 - b2^2 - b2,
x3*b1^2 - x3*b1 - 2*x3*b2 - a2*b1^2 + 2*a2*b1*b2 + a2*b1 - 2*a2*b2 - b1^3 + 2*b1^2*b2 + 2*b1^2 - 2*b1*b2^2 - 2*b1*b2 - b1 + 2*b2^2,
2*x3*b1*b2 - 4*x3*b2 - b1^2*b2 + 3*b1*b2 - 2*b2,
6*x3*b1 - 6*x3*b2 - 6*x3 - 3*a2*b1^2 + 6*a2*b1*b2 + 3*a2*b1 - 6*a2*b2 - 2*b1^3 + 6*b1^2*b2 + 3*b1^2 - 6*b1*b2^2 - 6*b1*b2 - b1 + 6*b2^2,
x3*b2^2 - x3*b2 - a2*b2^2 + a2*b2 - b1*b2^2 + b1*b2 + b2^3 - b2,
a2^2*b1^2 - 2*a2^2*b1*b2 - a2^2*b1 + 2*a2^2*b2 + a2*b1^2 - 2*a2*b1*b2 - a2*b1 + 4*a2*b2^2 - 2*a2*b2 - 3*b1^2*b2^2 + 3*b1^2*b2 + 2*b1*b2^3 + 9*b1*b2^2 - 11*b1*b2 - 6*b2^3 - 2*b2^2 + 8*b2,
a2^2*b2^2 - a2^2*b2 - 2*a2*b2^3 + 3*a2*b2^2 - a2*b2 + b2^4 - 2*b2^3 + b2^2,
a2*b1^3 - 3*a2*b1^2 + 2*a2*b1 + b1^3 - 3*b1^2*b2 - 3*b1^2 + 9*b1*b2 + 2*b1 - 6*b2,
a2*b1^2*b2 - 3*a2*b1*b2 + 2*a2*b2 - b1^2*b2^2 + b1^2*b2 + 3*b1*b2^2 - 3*b1*b2 - 2*b2^2 + 2*b2,
2*a2*b1*b2^2 - 2*a2*b1*b2 - 4*a2*b2^2 + 4*a2*b2 + b1^2*b2^2 - b1^2*b2 - 2*b1*b2^3 - b1*b2^2 + 3*b1*b2 + 4*b2^3 - 2*b2^2 - 2*b2,
b1^4 - 6*b1^3 + 11*b1^2 - 6*b1,
b1^3*b2 - 6*b1^2*b2 + 11*b1*b2 - 6*b2,
  • y1+2y2+3y3+3y4-z=0,y1+y+2y3+y4-3=0,yi \in \{0,1\}を満足するような整数zを求め、その最小値を知りたい…
R = PolynomialRing(QQ,5,"y1,y2,y3,y4,z",order="lex")
y1,y2,y3,y4,z = R.gens()
eqs = [y1+2*y2+3*y3+3*y4-z,y1+y2+2*y3+y4-3]
eqs = eqs + [x*(x-1) for x in [y1,y2,y3,y4]]
eqst = tuple(eqs)
I = eqst * R 
B = I.groebner_basis()
lasteq = B[-1]
lasteq
Z = var("z")
solve(Z^3-15*Z^2+74*Z-120,Z)
[y1 + y3 - 1/2*z^2 + 11/2*z - 16, y2 + y3 + z^2 - 10*z + 23, y3^2 - y3, y3*z - 6*y3 - z + 6, y4 - 1/2*z^2 + 9/2*z - 10, z^3 - 15*z^2 + 74*z - 120]

z^3 - 15*z^2 + 74*z - 120

[z == 4, z == 5, z == 6]
    • なので、満足するzのうち、最小なのは4
  • トーリックイデアルグレブナー基底を探す
    • 行列A= \begin{pmatrix} 4 & 5 & 1 & 0\\ 2 & 3 & 0 & 1 \end{pmatrix}が与えられたとき、これがトーリックイデアルを指定する。Aは配置と呼ばれる
    • A \begin{pmatrix}x \\ y \\ z \\ w \end{pmatrix} = \begin{pmatrix} 4x+5y + z \\ 2x + 3y + w \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \end{pmatrix}を考える
    • このような(x,y,z,w)(x,y,z,w) = a(1,0,-4,-2) + b(0,1,-5,-3)=(a,b,-4a-5b,-2a-3b)と、a,bを使って表せる。a,bを整数に取れば、特定の格子点であって、式を満足する点ということになる
    • ここで、(a,b,-4a-5b,-2a-3b)が、例えば、(-2,1,3,1)だったときに、この長さ4のベクトルの正の要素と負の要素を別々に扱って、y z ^3 w - x^2というような2個の単項式の差の形をとる多項式に対応付けることにする
    • このような多項式(が複数あるときに、そ)の零点集合を考えることがトーリックイデアル
    • 整数ベクトルはその要素の符号を気にすることで、2個の単項式の差の式を取れることが、トーリックイデアルの特徴である
    • 今、このように制約のある多項式集合(イデアル)を、いい感じの生成元多項式のセットに結び付けたい
    • グレブナー基底はそういういい感じの生成元多項式のセット
    • グレブナー基底は、単項式に順序をつけることで、取られ方が変わる
  • 量子計算機では、この探索を、整数格子点最適化問題にして、探索する(らしい)
    • 格子点を量子ビット表現して、あるコスト関数を最小にするような格子点を探す問題として求解する
    • コスト関数としては、変数(x,y,z,w)に重みをつけることで、単項式の辞書式順序がコストになるようにする。また、量子計算機が計算しやすいように、辞書式順序がコストになるような値を、(x,y,z,w)の重みベクトルに行列を掛けて変換し、その変換してできたベクトルの二乗ノルムをコスト関数とする
    • この話が、本記事の冒頭で引用したペイパーの節6の話
    • ちなみに、この配置Aにまつわるグレブナー基底をパイソン計算するコードは以下。w,z,y,xの順のグレブナー基底多項式セットとしてw,z,y,x順でのグレブナー基底を求めると、グレブナー基底そのものが得られるし、その多項式セットに、元のイデアルに含まれる多項式を付け加えても同じこと。x,y,z,wの順のグレブナー基底を求めると、もとの設定が単純だったこともあり、2つの多項式が基底として得られている
from sympy import *
x,y,z,w = symbols('x y z w')
eqs =[x*z*w - y,y**2*z**2-x**3,x**4*w-y**3*z,z**4*w**2 - x,y*z**3*w -x**2]
eqs1 = eqs + [x - z**4 * w**2,y - z**5 * w**3,x * y - z**9 * w**5,y - x*z*w]
result = groebner(eqs,w,z,y,x,order='lex')
result1 = groebner(eqs1,w,z,y,x,order='lex')
for eq in list(result):
    print(eq)
    print('\n')

print("----")
for eq in list(result1):
    print(eq)
    print('\n')
print("=====")
result = groebner(eqs,x,y,z,w,order='lex')
result1 = groebner(eqs1,x,y,z,w,order='lex')
for eq in list(result):
    print(eq)
    print('\n')
print("----")
for eq in list(result1):
    print(eq)
    print('\n')
w**2*z**4 - x


w*y*z**3 - x**2


w*x*z - y


w*x**4 - y**3*z


-x**3 + y**2*z**2


----
w**2*z**4 - x


w*y*z**3 - x**2


w*x*z - y


w*x**4 - y**3*z

続きを読む

指数型分布族・クロネッカー積・トロピカル化で極限、指数型分布族と射影空間、トロピカル多様体・指数和

  • 文献メモ
  • Dimension of Marginals of Kronecker Product Models Geometry of hidden-visible products of exponential families

arxiv.org

  • TROPICAL VARIETIES FOR EXPONENTIAL SUMS

https://www.math.tamu.edu/~rojas/c.pdf

  • Exponential Varieties

https://arxiv.org/pdf/1412.6185.pdf

  • A geometry on the space of probabilities II. Projective spaces and exponential families

ems.press