0

直交多項式と超幾何関数(10)〜幕間:Krawtchouk多項式とKrawtchouk行列〜

32
0

記念すべき第十回目ではあるが、
今回は少し本筋から離れて、Krawtchouk行列と呼ばれる行列について話そうと思う。

直交多項式の行列変数/行列値への拡張であるとか、そういうものは近年盛んに研究がなされているが、
それとは全く違うものである。

ようこそ二項係数の魅せる世界へ。

Krawtchouk行列とは

定義は至ってシンプルである。

Krawtchouk行列

非負整数nに対しn+1次のKrawtchouk行列K(n)=(Ki,j(n))0i,jnを、p=1/2に関する(以下のように適切に正規化された)Krawtchouk多項式の値を成分とする行列として定める。
すなわち各成分Kij(n)を以下のように定める。
Kij(n):=(2)iki(n)(j)|p=1/2=r=0i(1)r(jr)(njir)

(2)iを掛けてあるのは、ある意味トリッキーなのだが、今は説明を端折る。
要はp=1/2に関するKrawtchouk多項式の値を並べました、それだけの話。

対応する重さ関数(二項分布)はp1pの値が等しい、「確率論的」表裏のあるコインをn枚投げる分布に等しい。

具体的な例

n=0から4まで行列の成分を載せることにする。
K(0)=(1)K(1)=(1111)K(2)=(111202111)K(3)=(1111311331131111)K(4)=(1111142024602064202411111)

もちろん定義式から直ちに従うことだが、全ての成分の値は明らかに整数である。

Krawtchouk行列の性質

まず、Krawtchouk多項式の母関数がかなり綺麗な形で書けていたことを思いだす。
それは各Krawtchouk行列の列ベクトルに対応している。

Krawtchouk行列の母関数による特徴づけ

Krawtchouk行列K(n)の成分Ki,j(n)に関する(各行ごとの)母関数は次のように計算できる。
i=0nKi,j(n)vi=(1+v)nj(1v)j
すなわち各行ごとに多項式(1+v)nj(1v)jを展開した係数が成分に現れているということである。

これはKrawtchouk多項式の母関数の式から従う。実際、
i=0nKi,j(n)vi=i=0nki(n)(j)(2v)i={1+12(2v)}j{112(2v)}nj=(1+v)nj(1v)j
となることから従う。(証明終わり)

また、この行列の特筆すべき性質の1つは次の定理である。

Krawtchouk行列の平方はスカラーである

Krawtchouk行列K(n)は等式(K(n))2=2nIn+1を満たしている。

この定理は、Krawtchouk多項式の直交性を焼き直したものである。

行列(K(n))2(i,j)成分を計算すると
(K(n))i,j2=l=0nKi,l(n)Kl,j(n)=l=0n(2)iki(n)(l)(2)lkl(n)(j)
となる。ここで、Krawtchouk多項式ki(n)(j)に関する直交性の式を思い出すと(第8回目の記事内)
l=0nki(n)(l)kj(n)(l)(nl)12l12nl=δij(nj)12j12j
と書くことができていた。さらに、Krawtchouk多項式に関するduality(これも第8回目の記事内)を使うと
kj(n)(l)=(1)j+l(nj)(nl)112jlkl(n)(j)
と書き表される。このdualityを上の直交性の式に代入すると
l=0nki(n)(l){(1)j+l(nj)(nl)112jlkl(n)(j)}(nl)12l12nl=δij(nj)12j12jl=0n(2)j+lki(n)(l)kl(n)(j)=2nδij
という式が得られる。以上よりKrawtchouk行列の平方の値は
(K(n))i,j2=l=0n(2)iki(n)(l)(2)lkl(n)(j)=(2)ijl=0n(2)j+lki(n)(l)kl(n)(j)=(2)ij2nδij=2nδij
のように計算でき、題意の式が従う。(証明終わり)

この式がわかると、このKrawtchouk行列の固有値がわかる。
具体的には、固有値の値の候補は±2n/2のどちらかであり(平方が2nなので)、重複を含めると合計n+1個ある(対角化可能)。
実はもう少し強いことが言える。

Krawtchouk行列のスペクトル分解

K(n)の固有値は重複を含めると合計n+1個あり、値は以下のようである。

  • nが偶数のとき、+2n/2n2+1個、2n/2n2
  • nが奇数のとき、+2n/22n/2がそれぞれn+12

これを示すためには、Krawtchouk行列についてより深い考察が必要である。
実はこの記事の後半で、このスペクトル分解を示すことのできる枠組みを手に入れるので
証明はこの記事の後半に回すことにしよう。

Hadamard行列 / Walsh行列

ここで少し話が変わる。
アダマール行列(Hadamard matrix)という行列(の性質)がある。
これはやや広い観点から調べられている行列であり、それについて導入する。

Hadamard matrix

あるn次正方行列がHadamard行列であるとは、以下の2条件を満たすことである。

  • 全ての成分は±1のどちらかである。
  • 各列ベクトルは(行に関しても)互いに直交する。

Hadamard行列は各次数nに対して2つ以上存在することもあるが、存在しないこともある。
ちなみに、Hadamard行列が存在するようなn
n=1,2または4の倍数になる、ことは知られているが
任意の4の倍数のnに対しn次Hadamard行列が存在するかどうかは現在も未解決の問題である。
(n=668の時が2024年10月現在では存在が知られていない最も小さい4の倍数のnである)

例えば、n2の冪の時のHadamard行列の1つの例として、Walsh行列というものが知られている。
(それ自身をHadamard行列と呼ぶことさえもある)
具体的な構成方法は次のとおりである。

Walsh行列の構成

行列HH=H(1)=(1111)で定める。
非負整数nに対し、n次のWalsh行列H(n)=(Hi,j(n))0i,j2n1は次のように帰納的に定義される2n次正方行列である。
H(0)=(1)H(n)=HH(n1)=(H(n1)H(n1)H(n1)H(n1))(ここでは Kronecker積を表す)
ここで成分の添え字は1からではなく0から2n1までとすることに注意する。

このように定めたWalsh行列はHadamard行列になることがすぐにわかる。
また、成分の値も直接的に計算することができる。

例えばn=2のときのWalsh行列は
H(2)=(1111111111111111)

のように計算できる。
上の定義は帰納的に定められるものだが、実は直接的に成分を計算することも可能である。

Walsh行列の成分の値

Walsh行列H(n)(i,j)成分Hi,j(n)(0i,j2n1)は次のように計算できる。

ijを2進数展開する。ijの両方で桁が1になる桁の個数をp(i,j)とするとき
Hi,j(n)=(1)p(i,j)として計算できる。

Walsh行列の帰納的な定義は一意的に定まるので、上の直接的な計算がそれを満たしていることを示せば良い。

まず初項n=0のとき、i=j=0に関してp(i,j)=0となる。
これはWalsh行列の成分H0,0(0)=1であるという事実と合致する。

次にn1の時の成立を仮定し、H(n)の成分の値についても正しいことを示す。
0i,j2n11なるijを1つfixし、それに対して定理が正しいことを仮定する。
次数nの時、対応する(i,j)成分の値を計算すると

  • (i,j)=(i,j)のとき: 明らかにp(i,j)=p(i,j)となり(i,j)成分の値に一致
  • (i,j)=(i+2n1,j)のとき: 2n1の位もiは1、jは0となりp(i,j)の値は変わらない。(i,j)成分の値に一致
  • (i,j)=(i,j+2n1)のとき: 上に同じく(i,j)成分の値に一致
  • (i,j)=(i+2n1,j+2n1)のとき: 2n1の位がi,jともに1であるのでp(i,j)=p(i,j)+1の式が従う。ゆえに(i,j)成分の値の1倍になる

ことを考えると、H(n)=HH(n1)の式を満たしていることがわかる。(証明終わり)

別の言葉で言うと、「成分の添え字同士の論理積(AND関数)の各位の和」などと言い表すこともできる。
この2進数による計算方法は、プログラミングなどでも組みやすいものとなっている。

Hadamard行列とKrawtchouk行列との対応

実はこれら2つの間に対応があるということがわかる。

例えば3番目のWalsh行列H(3)について考える。その位数は8であり
H(3)=(+1+1+1+1+1+1+1+1+11+11+11+11+1+111+1+111+111+1+111+1+1+1+1+11111+11+111+11+1+1+11111+1+1+111+11+1+11)
と書けている。

例えばこのH(3)から3番目のKrawtchouk行列K(3)が構成可能である、という話をしたい。
そのために、非負整数の2進weight関数を定義する。

2進weight関数

2進weight関数w:Z0Z0を次のように定める。
nを非負整数とし、その2進展開をn=k=0rak2kとする。(ただしak0または1)
このときw(n):=k=0rakとして定める。

2進展開の係数の和である。
例えばn=57なら57(10)=111001(2)なのでw(57)=4である。

この2進weight関数wを集合{0,1,,2n1}の各元にあてると
最小値はw(0)=0、最大値はw(2n1)=nであり、値域は集合{0,1,,n}に一致する。
すなわちwの逆像w1は集合{0,1,,2n1}の分割を与える。

例えばn=3のときは
w(0)=0w(1)=w(2)=w(4)=1w(3)=w(5)=w(6)=2w(7)=3
のようになるので、集合{0,1,,7}
w1({0})={0},w1({1})={1,2,4},w1({2})={3,5,6},w1({3})={7}
のようにwの逆像で分割できる。

上で定められた2進weight関数の引き戻しが与える集合の分割を行列の添え字に適用する。
すると次の定理が成立する。

Walsh行列とKrawtchouk行列の対応

上で与えたWalsh行列H(n)=(Hi,j(n))i,j(2n次正方行列)とKrawtchouk行列K(n)=(Ki,j(n))i,j(n+1次正方行列)の間には、次の対応がある。
(nj)Ki,j(n)=kw1({i})lw1({j})0k,l2n1Hk,l(n)
すなわち2進weight関数で送ると(i,j)になる添え字集合におけるWalsh行列の成分の和がKrawtchouk多項式の(i,j)成分と対応がある、という主張である。

ここで、上で出てくる値を成分に持つ行列は次のように呼ばれている。

対称Krawtchouk行列

行列S(n)=(Si,j(n))0i,jn:=((nj)Ki,j(n))0i,jnは対称行列になる。
この行列をn次の対称Krawtchouk行列と呼ぶ。

…なので対称Krawtchouk行列の成分になる、と書いても良かったのだが。話の流れ的にやめた。笑

元の論文にはこれの証明が書かれていないので、ここに載せておく。

まずWalsh行列の成分の値について復習する。添え字i及びjについて
i=t=0Rit2t,j=t=0Sjt2t
と2進展開がなされる時に、Hadamard行列の成分Hi,j(n)
Hi,j(n)=(1)#{t0tmin{R,S},it=jt=1}
のように計算できていた。この事実をもとに上の定理の右辺の値を計算する。

さてkw1({i})を1つとめる。具体的にはk=20+21++2i1とする。
別の言い方をすれば、k=000111(2)である。ただし0ni個、1i個。
次にlw1({j})を走らせて、#{t0tn1,it=jt=1}の値を考察する。
しかしこれは大変なので、it=jt=1の個数に関する和と見て式を書き直した方が楽である。

そこで変数s:=#{t0tn1,it=jt=1}を固定する。(sの変域は0smin{i,j}である)
この条件を満たすlw1({j})の個数が何個あるのかを数えれば良い。
満たすべき条件は

  • n桁の2進数、1の個数はj
  • 後ろからi個の中にある1の個数はs

組み合わせ論の問題と化してしまった。
後ろからi個の中にある1の場所の選び方が(is)通り、前ni個の中には1js個あるので(nijs)通り。
このsごとに(1)sが足されるのであった。
そして、kをfixしていたのは、対称性で全ての場合が同じ値になるので、その分の(ni)倍が必要。

以上より
(右辺)=s=0min{i,j}(1)s(ni)(is)(nijs)(=Sj,i(n))=s=0min{i,j}(1)sn!i!(ni)!i!s!(is)!(ni)!(js)!(nij+s)!=s=0min{i,j}(1)sj!s!(js)!n!j!(nj)!(nj)!(is)!(nij+s)!=s=0min{i,j}(1)s(nj)(js)(njis)=(nj)Ki,j(n)=Si,j(n)
となり題意の式が従うことが示された。(証明終わり)

ということで
2進数の論理積の各位の和を通じて、場合の数・二項係数の問題になってしまった。

Krawtchouk行列の拡張

さて、次はKrawtchouk行列を拡張していい性質を満たすものがある、そんな論文を見てみよう。

α,β,γ,δは4つの複素数とする。(一般に何かしらの体の元でよさそう)
非負整数Nに対し、行列{(αγβδ)}N=(αγβδ)Nを、次で定められる(N+1)次正方行列とする。
(*)((αγβδ)N)i,j=v=max{0,i+jN}min{i,j}(jv)(Njiv)αNij+vβivγjvδv(0i,jn)

名前がついていないので、適当に「(*)型の行列」とか呼んでおくことにする。

Krawtchouk行列を含むこと

Krawtchouk行列は(*)型の行列として書き表すことができる:K(N)=(1111)Nである。

これは実際にα=β=γ=1及びδ=1を代入することで、(i,j)成分の値が
((1111)N)i,j=v=max{0,i+jN}min{i,j}(jv)(Njiv)(1)v
と書けていることから明らかに従う。
和の範囲が違って見えるのは二項係数が意味を持つ範囲を正確に書いただけであることに注意する。(証明終わり)

ここで出てきた行列がWalsh行列H(1)と一致しているのは偶然か幻か。

さて、実はこうやって作った(*)型の行列が持つ一番興味深い性質は次のものである。

(*)型の行列における積構造

Nの値が揃った(*)型の行列同士には次のように積構造を持つことがわかる。
(αγβδ)N(acbd)N={(αγβδ)(acbd)}N(=(αa+γbαc+γdβa+δbβc+δd)N)
このことから、αδβγ0を満たす(*)型の行列全体にはGL2(C)から誘導される群構造が入る。

なんだこれ。初めて見た時は私は声が出ました。
まさかKrawtchouk行列の成分を拡張してGL2と同型な群が作れているとは。
逆に言うと2次元の表現がある…という話は今は一旦スルーで。

とりあえず証明しよう。

証明したくなーいのでやっぱり元論文で。なんかもっと簡明な証明方法はないんかいこれ。

ということで、積構造を保つということは、対角化を保つということになる。
すなわち、(*)型の行列、特にKrawtchouk行列の対角化が可能になるということである。

定理3の証明

実際、計算をしてみよう。
H(1)は明らかに対角化可能であり、具体的な固有値・固有ベクトルは
H(1)=(1111)=(1+21121)1(22)(1+21121)
のように書き表すことができる。従ってKrawtchouk行列に対しても
K(N)=(1111)N=(1+21121)N1(22)N(1+21121)N
のように計算することができる。(これが上の定理のすごいところである)

まず真ん中の行列を計算する。これが対角行列になっているならば嬉しい。
(i,j)成分の値は
((2002)N)i,j=2Ni(2)iδij(iv=jv=0 の時のみ意味を持つ)
となり対角行列となることがわかる。
i番目の対角成分は2Ni(2)i=(1)i2N/2となることから、例えばNが偶数の時は+2N/2N2+1個、2N/2N2個であることが従う。Nが奇数の時も同様である。(証明終わり)

さらに、Krawtchouk行列の固有ベクトルの成分も計算できてしまう。具体的には
(1+21121)N
という(*)型の行列の行ベクトルに他ならない。
が、これを展開してもあまり綺麗な式にはならないので、これはこのまま止めておこう。

Walsh行列とKrawtchouk行列、再訪

やっぱりKrawtchouk行列の(*)型の表示にH(1)が出てきたことは、何かしら理論があるであろう。

ここで行列A=(αγβδ)に対し、次のようにして考えられる行列族(A(n))を考える:
A(0)=(1)A(n)=AA(n1)=(αA(n1)γA(n1)βA(n1)δA(n1))
以上は構成法としてWalsh行列の構成法を一般的に拡張したものになっている。
今定められたA(n)に対し、行列J(n)
Ji,j(n)=kw1(i)lw1(j)Ak,l(n)
として定め、Krawtchouk行列のときと同様に行列J(n)を作ってみる。

Question: この行列J(n)に関してもKrawtchouk行列のときと同様の対応があるのか!?

(新規結果?) (*)型の行列におけるWalsh-Krawtchouk行列間の対応の類似

上の Question は正しい。より具体的に書くと
Ji,j(n)=(nj)((αγβδ)n)i,j
という等式が任意のn0及び任意の0i,jnに対して成立する。
ただし、これらを成分に持つ行列、すなわちJ(n)は条件β=γを満たさない限りは対称行列ではない。

類似、と言うか、主張として真に含んでますね。

ここまで話を大風呂敷に広げておいて、間違っていたらどうするんだい。笑
たぶん新規性がありそうな気がするのだが、既存の結果であることをご存知の方はコメントお願いします。

証明も似た流れで行う。
まずはWalsh-likeの行列A(n)の成分Ai,j(n)について、i及びjの二進展開から計算できることを言う。
すなわち
i=k=0n1ik2k及びj=k=0n1jk2k(ただしik,jkは0または1)としたときに、次の4つの数を計算する。
a(i,j,n)=#{k0kn1,ik=jk=0}b(i,j,n)=#{k0kn1,ik=1,jk=0}c(i,j,n)=#{k0kn1,ik=0,jk=1}d(i,j,n)=#{k0kn1,ik=jk=1}
もちろんこれら4つの数を加えるとnと一致するはずである。
このとき、A(n)の構成法から次が従う。
Ai,j(n)=αa(i,j,n)βb(i,j,n)γc(i,j,n)δd(i,j,n)
これの証明は全く同様なので省略する。(4つの場合分けそれぞれでα,β,γ,δが掛かることを言えば良い)

さて次に2進モーメントの各点の逆像を変域で足し合わせるフェーズに取り掛かる。
今回は和の取り方の順番を変えようと思う。
具体的には、まず最初にlw1(j)を1つfixしておく。
ここの選び方は(nj)通りであり、l000111(2)の形にしておく。

次にkw1(i)を動かして、Ak,l(n)の値を計算していく。
ここで変数を取り直して、d(k,l,n)=vとおき変数vについての足し算だと見ていく。
まずkにおける1の桁数はi桁なので、b(k,l,n)+d(k,l,n)=iである。ゆえにb(k,l,n)=iv
同様にlにおける1の桁数はj桁なので、c(k,l,n)+d(k,l,n)=jである。ゆえにc(k,l,n)=jv
最後にa(k,l,n)については、全体の和がnであることから
a(k,l,n)=nv(iv)(jv)=nij+vと計算することができる。
またこれらの個数を実現するkの選び方は、
lの後ろj個の1の中でv個の1を選ぶ:(jv)通り
lの前nj個の0の中でiv個の1を選ぶ:(njiv)通り
これらで決定することができる。

以上をまとめると
Ji,j(n)=v(nj)(jv)(njiv)αnij+vβivγjvδv
がわかり題意の式を示すことができた。(証明終わり)

まとめ

幕間とか言いながら、話が長くなってしまった。

Krawtchouk行列と呼ばれる、Krawtchouk多項式の特殊値を成分に持つ行列を考えた。
この行列の特徴として、
Hadamard行列の一種であるWalsh行列から添え字の2進数展開に関する適切な範囲で和を取ると得られる
ということが知られていた。

この事実の一般化に繋がる概念として(*)型の行列を導入した。
群構造がGLから埋め込まれる、すなわち2次元の表現を持つことが重要な性質の一つであった。
さらに、Walsh行列からKrawtchouk行列の構成法が一般の(*)型の行列に対しても同様にできることを言った。

これらの内容は表現論のもう少し深い観点から見つめ直すことができるのだが、
話していると本題から外れすぎてしまう。
またいつか書くことにしよう。

先にHahn多項式系の話を片付けるはずだったのだ。

次の記事では、Krawtchouk多項式の極限として現れるCharlier多項式についてまとめる。

投稿日:2024109
更新日:20241010
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

整数論を研究中。 本音は組合せ論がやりたい。 最近は直交多項式・超幾何級数にお熱。 だけど幾何と解析は鬼弱い。

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. Krawtchouk行列とは
  2. Krawtchouk行列の性質
  3. Hadamard行列 / Walsh行列
  4. Hadamard行列とKrawtchouk行列との対応
  5. Krawtchouk行列の拡張
  6. Walsh行列とKrawtchouk行列、再訪
  7. まとめ