既約多項式、整拡大、モニック多項式

こちらの動画をまとめ、体験する。

  • 知りたいのは以下のこと。
    • 多項式が既約とはどういうことか
    • 拡大とはどういうことか
    • モニック多項式について
    • 行列表現とは、何をどう行列にしたものか
      • これは、多項式を掛け算して、積のあまりを考えるので、これは、結局多項式のあまりをベクトルとみなすと、ベクトルの変換をしている、と見なせる。
      • ベクトルの変換は、行列でかける。
        • 回転行列や、平行移動、相似、反転
    • 多項式の逆元とはどういうことか
      • 行列に変換をしたときに、かけて1となるような、相方のこと。
  • なので、前3つが課題。

始めましょうか

  • 多項式が既約であること、を調べると、既約多項式というものが出てきた。
  • 既約多項式について調べる。こちらのサイト
    • 代数学において、既約多項式とは、多項式環多項式の足し算や掛け算が定義されている構造)での既約元のこと。
    • 既約元については、こちら
      • 既約元とは、抽象代数学において、整域の0でも単元でもない元が、それが非単元の積でないとき、既約という。
      • ちなみに、整域について、こちらのサイトを見た
        • 環は、足し算についてはアーベル群(単位元とか結合、逆元、可換)で、掛け算の結合と、掛け算と足し算の分配法則を満たすやつ
        • 掛け算に対しても単位元を持つ環を、1(単位元)をもつ環
        • 掛け算が可換で、掛け算で0以外で逆元があるとき、体
        • つまり、体は、加法についてアーベル群、乗法について0除けばアーベル群、ということ
        • 本題に戻って、整域とは、1をもつ可換環であり、0以外の元が零因子ではないこと
        • 零因子とは、0以外のものを(左か右から)掛けたら0になる可能性のある要素。詳しくはこちら
        • 例えば、6で割ったあまりを同一視する時、2は3を掛けたら0になるので、零因子
      • 整域とは、、つまり、単位元をもつ可換環で、0以外の零因子のないものである。そして、単元については、こちら
        • 一般に代数系の乗法と呼ばれる二項演算に対する逆元を持つ元のこと、
        • 冪等元とは、二項演算で、自分と自分を掛け合わせて、自分が生まれる、というような「自分」のことを冪等であるという。自分 is a 冪等元。
          • 蛙の子は蛙。
        • 写像における冪等は、 f(f(x)) = f(x)
        • 環の冪等元とは、環の乗法に関して冪等である元
        • 環の冪等元全体の集合には、半順序を決められる
          • 0は最小な、1は最大な冪等元
        • いくつかの冪等元をもつ半群に対して、元Aに対して、ある元Bとある冪等元Eが存在して、AB=Eとなるとき、AをEに対する右可逆元という。左はBA=E。
        • それで、単位的半群について。こちら
          • 結合律と単位元の存在を認めた、(集合、二項演算、単位元)をモノイド、または、単位的半群という。
          • モノイドを作る最低限の材料を生成系という。
            • 生成系という部分集合から、二項演算繰り返して、モノイドが作れる
          • つまり、群の、「逆元の存在性」ぬき
            • 寿司のさび抜き(シャリと魚はあり)
        • モノイドについて、その単位元に対する、可逆な元を単元という。
      • まとめると、いくつかの冪等元(自分を合わせると自分になるやつ)を持つ単位的半群について、その単位元(冪等なやつ)に対して可逆な元を、単元という。
        • ある意味、逆元みたいなやつがおる元、と感じられる。
        • さっきの零因子は、なにか掛けたら零になるかもしれないやつ。今回の単元は、なにかかけたら単位元(冪等元)になるかもしれないやつ。
      • 整域の0でも単元でもない元が、二つの非単元の積でないとき、既約。
        • これは、整域という縛りで、0以外の零因子(ゼロになるかもなやつ)を除外して、そして、0を除外して、単位元になるかもしれないやつを除外した、残りの単位元をもつ可換環に属する、要素が、分解できない(割り切れない)ことを指す
        • 単元を除くのは、e×e=eを除いたり、ab=eのときa=ea=(ab)a=a(ba)、となるのを防ぐため。
          • 要は水増し請求(延べ人数作戦)を防ぐため
    • 既約元は既約な元なので、これでわかった。
    • 既約多項式について、もう少し詳しく書く
    • なので、結局、既約多項式とは、多項式環という中の要素で、零とか零因子(ぜろっぽい)とか単元でない、素数みたいなやつ。
  • 拡大について。こちらは軽く調べる
    • 整拡大。可換環Bとその部分環Aについて、Bの元bがA係数のモニック多項式の根であるとき、bはA上整であるという。
    • B上の全ての元が、A上整なら、BはAの整拡大という。
    • 整数環上整な有理数体の元は、整数のみ。
      • これは、整数環係数のモニック多項式について、有理数体に含まれる要素である根は、整数のみ。ということ。
    • ガウス整数はZ上整。つまり、Z拡大である。
  • モニック多項式について。こちら。

 

ここまでわかれば、後は実際に体験する。

import math
import sympy
import numpy as np

def Irreducible_Polynomial(A,X):
  #Xは行列に落とし込みたい多項式、最大次数はn-1,大きい次数順に係数があるリスト
  m = len(A)
  #Aをモニック多項式の係数のリストとする。nをAの最大次数とする。
  n = m-1
  B = [[0]*n for i in range(n)]
  #行列を入れるようの器となる零行列
  
  for i in range(n):
    temp = X.copy()
    if i == 0 :
      for l in range(n):
        B[l][n-1] = X[l]
        continue
    else:
      use = X.copy()
      #ここからのfor loopが多項式の割り算を頑張る部分
      for j in range(i):
        #いったん係数のリストを預かる
        for k in range(n-1):
          temp[k] = use[k+1] - use[0] * A[k+1]
        else:
          temp[n-1] = -use[0] * A[n]
        use = temp.copy()

      for l in range(n):
        B[l][n-1-i] = temp[l] 
        #行列に更新している。
      
  return(B)

a = [1,0,-3,4]
x = [1,1,1]
matrix = Irreducible_Polynomial(a,x)

#逆行列を求める。
matrix_inv = np.linalg.inv(matrix)

print(matrix_inv)