類体論へ至る道―初等数論からの代数入門

類体論へ至る道―初等数論からの代数入門

  • 作者: 足立恒雄
  • 出版社/メーカー: 日本評論社
  • 発売日: 2010/02
  • メディア: 単行本
  • 購入: 1人 クリック: 38回
  • この商品を含むブログ (2件) を見る
 

にほんブログ村 科学ブログ 数学へ
にほんブログ村

 

代数的数の和は代数的数になることの証明はこの本を参照してください。著者によれば、この証明は数学者デデキントによるそうです。

この証明が実は構成的でアルゴリズムになっています。つまり代数的数a, bが与えられたときa+bを解として持つ1変数有理係数多項式方程式を実際に構成することができるのです。

正確には、代数的数a, bが、a, bをそれぞれ解として持つ1変数有理係数多項式方程式f(x), g(x)として与えられた時にa+bを解として持つ1変数有理係数多項式方程式を実際に構成することができるのです。

この記事ではこのアルゴリズムをMaximaで実際に実行してみました。その様子をごらん下さい。

この例では ( fleft(x ight):=x^2+1 ) と ( gleft(x ight):=x^3-1 )を例に取り、それぞれの解a, bの和a+bを解とする方程式を求めます。

(%i1) f(x):=x^2+1;

$$ ag{%o1} fleft(x ight):=x^2+1 $$

(%i2) g(x):=x^3-1;

$$ ag{%o2} gleft(x ight):=x^3-1 $$

(%i3) P1:f(a);

$$ ag{%o3} a^2+1 $$

(%i4) P2:g(b);

$$ ag{%o4} b^3-1 $$

(%i5) wlist:flatten(makelist(makelist(a^i,i,0,hipow(P1,a)-1)*b^j,j,0,hipow(P2,b)-1));

$$ ag{%o5} left[ 1 , a , b , a,b , b^2 , a,b^2 ight]  $$

(%i6) wlist*(a+b),expand;

$$ ag{%o6} left[ b+a , a,b+a^2 , b^2+a,b , a,b^2+a^2,b , b^3+a,b^2 , a,b^3+a^2,b^2 ight]  $$

(%i7) map(lambda([p],remainder(p,P1,a)),%);

$$ ag{%o7} left[ b+a , a,b-1 , b^2+a,b , a,b^2-b , b^3+a,b^2 , a,b^3-b^2 ight]  $$

(%i8) cwlist:map(lambda([p],remainder(p,P2,b)),%);

$$ ag{%o8} left[ b+a , a,b-1 , b^2+a,b , a,b^2-b , a,b^2+1 , a-b^2 ight]  $$

(%i9) mcoeff(poly,term):=block([dega,degb],

  [dega,degb]:[hipow(term,a),hipow(term,b)],

  coeff(coeff(expand(poly),a,dega),b,degb));

$$ ag{%o9} mathrm{mcoeff}left(mathrm{poly} , mathrm{term} ight):=mathbf{block};left(left[ mathrm{dega} , mathrm{degb} ight]  , left[ mathrm{dega} , mathrm{degb} ight] :left[ mathrm{hipow}left(mathrm{term} , a ight) , mathrm{hipow}left(mathrm{term} , b ight) ight]  , mathrm{coeff}left(mathrm{coeff}left(mathrm{expand}left(mathrm{poly} ight) , mbox{}a , mathrm{dega} ight) , mbox{}b , mathrm{degb} ight) ight) $$

(%i10) mcoefflist(poly):=block([p],p:expand(poly),map(lambda([term],mcoeff(p,term)),wlist));

$$ ag{%o10} mathrm{mcoefflist}left(mathrm{poly} ight):=mathbf{block};left(left[ p ight]  , p:mathrm{expand}left(mathrm{poly} ight) , mathrm{map}left(lambdaleft(left[ mathrm{term} ight]  , mathrm{mcoeff}left(p , mathrm{term} ight) ight) , mathrm{wlist} ight) ight) $$

(%i11) matrix(mcoefflist(cwlist[1]),

  mcoefflist(cwlist[2]),

  mcoefflist(cwlist[3]),

  mcoefflist(cwlist[4]),

  mcoefflist(cwlist[5]),

  mcoefflist(cwlist[6]));

$$ ag{%o11} egin{pmatrix}0&1&1&0&0&0 -1&0&0&1&0&0 0&0&0&1&1&0 0&0&-1&0&0&1 1&0&0&0&0&1 0&1&0&0&-1&0 end{pmatrix} $$

この行列の特性方程式こそが、求める多項式なのです。

(%i12) charpoly(%,x),ratsimp;

$$ ag{%o12} x^6+3,x^4-2,x^3+3,x^2+6,x+2 $$

早速検算。そのためにはこの方程式を解きます。6次方程式ですが、やっていると、、、。

(%i13) solve(%,x);

$$ ag{%o13} left[ x=-frac{sqrt{3},i}{2}-i-frac{1}{2} , x=frac{sqrt{3},i}{2}-i-frac{1}{2} , x=-frac{sqrt{3},i}{2}+i-frac{1}{2} , x=frac{sqrt{3},i}{2}+i-frac{1}{2} , x=1-i , x=i+1 ight]  $$

f(x), g(x)も目視でも解けますが念のため、、、

(%i14) solve(f(x),x);

$$ ag{%o14} left[ x=-i , x=i ight]  $$

(%i15) solve(g(x),x);

$$ ag{%o15} left[ x=frac{sqrt{3},i-1}{2} , x=-frac{sqrt{3},i+1}{2} , x=1 ight]  $$

確かにf(x)=0の解のひとつとg(x)=0の解の一つを取り出すと、その和は%o13に現れています。