2012年5月27日日曜日

Sage Days 39 in Japan

Sage Days in Japanが九大伊都キャンパスで開催されたので,参加・講演してきました.

Sageは,Mathematica, Maple, Magma, Matlabなどの商用数式処理システム,数値計算システムをフリーソフトで置き換えようという野心的なプロジェクトです.現在,Linux各種ディストリビューション,Apple MacOS X,Microsoft Windows上で動きます.また,iOSデバイス(iPadやiPhone),Androidデバイス上で動くものも開発が進められています.

Sage Daysというのは,Sageの開発,また利用普及をするための集まりで,Sageユーザたちが自発的に行っているものです.これまでの様々な催し(世界各地での)についてはWikiにまとめられています.

初日は,主催者の一人横山さんの基調講演「数式処理システム Sage への誘い / A brief tour of some of Sage's features」から開幕.Sageがどんなものでどんなことができるのか,開発プロジェクトを率いるSteinさんの横顔や,実際にSageを使ってどんな計算が出来るのか,のプレゼンテーションでした.

会場に居る人は殆ど皆,ノートパソコンを持参していたようです(主催者が呼びかけたわけではないのに).午後は,それぞれのノートパソコンへSageをインストールするところから.

Macの人は,ほぼ苦労なく,ダウンロードしたものをインストールすることが出来たようでした.一方,Windowsの人は少し苦労があったようです.VirtualBoxという,無償で使える仮想化ソフトの上に,LinuxにSageをインストールしたものを導入するのですが,日本語キーボードや日本語フォントの未搭載など,解決すべき点があったようです.主催者の一人の沼田泰英さんが,相方の西山絢太さんとともに,それこそ残像が残るような機敏な動きで会場を走り回り,火消しに当たっておられました.

Windowsパソコンへの導入を回避する方法がもう一つあって,会場で配布されていたMathLibreを使う,と言うものです.こちらで使っていた方もおられました.MathLibreは,数学ソフトウェアをこれでもかというくらいにたくさん(もちろんSageも)導入した,Linuxディストリビューションです.DVD-ROMやUSBメモリに書き込み,それらからパソコンを起動することで,インストールせずに使うことが出来ます.

午後2コマ目は,実際にSageを試してみるというセッションで,主にSageを使うのに必要な,Pythonの実習でした.

Sageは実は,様々な数学ソフトウェアをPythonで束ねた統合ソフトウェアです.なので,使うには最小限のPythonの知識が必要です.

3コマ目は,福岡大学の濱田龍義先生(Knoppix/Math, MathLibreを作っている方)の,「Sage Days 韓国訪問記」でした.実は韓国で一足先に,Sage Daysが開かれていたのでした.また,Sageについての分厚い書籍(韓国語なので読めないですが,大体分かります)が出版されていたりもするそうです.

2日目は,私がSageを改造・改良するための一連の手順についてお話ししました.(プレゼンテーションスライドを下に貼っておきます.このほかに,実際にSageのソースコードを改変したり,改変したものを起動して計算したりのデモを行いました):



さらに2日目午前の2コマ目は,福岡教育大の藤本光史先生による「タブレット端末上の数式処理システムの現状とその実装」というご講演でした.リナックスの走るザウルス上でのRisa/Asirの実演や,パソコン上での手書き数式認識,また最近のiPadやAndroid端末上での数式処理システムの実装についてのご報告で,実に目を奪われました.

プログラムにあったのは以上ですが,午後は有志で,今回の集まりの反省,今後の,国内で開催するSage Daysについての方針の話し合いなどがもたれました.

会期中・会期後にtwitterでhash tag #SDJ39 付きで呟かれたものは,togetterでまとめを作りました.講演のプレゼンテーションやSageワークシートなどは,全部ではありませんがSage Days in Japan 39のウェブページからたどれます.また,会期中幾つかの講演はUstreamにて中継され,オンラインで視聴しtwitterなどで参加された方も大勢いらっしゃいました.


Live stream videos at Ustream

2012年5月13日日曜日

残雪期の立山

久しぶりに山登り.

5月の連休の立山は,とにかく大変な人出である.地元にいるのだから,時期を外して登る.好天の予報だったので日曜を一日,山に費やす.

立山駅からケーブルカーで美女平へ,そこからバスで,標高2,500mの室堂まで1時間.外に出てみれば文句なしの青空に,まだ雪がたっぷりと残りまばゆい山々である.

慣れた道ながら(道はないのだが),体が重くペースが上がらない.ぜいぜいいいながら,一ノ越までスキーを履いて登る.スキーはそこで脱いで,アイゼンに履き替えてピッケルをつきつつ雄山に登る.

正午頃の山頂では皆くつろいでいる.東面に滑り込む人たち,山崎カールに滑り込む人たち.私もしばし休んで,また上ってきた道を降りた.

一ノ越からはよろよろとスキーで下る.


上の写真は,雄山山頂から見た剱岳.その他は下のスライドショーからどうぞ.


2012年5月6日日曜日

連休終了

連休後半は特に遠出することもなく,日々を消光致しおり候.

ある日は家人の家で7回忌.お寺さん(という言い方も私にはあまりなじみがないのだが)がいらして読経して下さる.いわゆるお経とは違って,読み下し文のようなものを唱和するのである.な~むあみだ~あぶつ~.

そして別の日には,子供の何かの(あまりよく分かっていない)節目で,神社に行きお祓いを受けるのである.お日柄も良く,光あふれる境内に善男善女が集まっており,かしこぎ~かしこぎ~もうしたてまぁつ~る~,という調子である.

無秩序に本をひっくり返す中,ファインマンさんは超天才 (岩波現代文庫)が面白かった.1995年刊行のものが,岩波現代文個で再発売されていたもの.ハンス・ベーテがマーク・カッツによるファインマン評を引いて曰く:
「普通の天才とは,われわれが今の何倍か頭が良ければ,だれでもなれるような人間のことだ.そういった天才なら,その頭脳の働きになんの神秘もありはしない.彼らが何をやったのかを理解さえしてしまえば,われわれにだってきっとできたはずだと確信できる.ところが魔術師の場合はまったく違う.あの連中は数学の言葉で言うなら,われわれのいる空間の直交補空間にいるのだ.……」(マーク・カッツ「偶然の謎」,1985,同書より孫引き).
ファインマンさんは超天才 (岩波現代文庫)
C.サイクス
岩波書店
売り上げランキング: 195462

2012年5月5日土曜日

Cornacchia-Smithのアルゴリズム:mod 4で1の素数は2平方数の和

4で割って1余る素数pを2つの平方数の和と表す(p=x2+y2)ことの証明をこれまで幾つか見てきた.今回は,pが与えられたときに具体的にx,yを求めるアルゴリズムを紹介する.少し一般化して,奇素数pと,pで割り切れない正整数dが与えられたときに, p=x2+dy2 となるx,yが存在するかを判定し,存在すればx,yを与える,Cornacchia-Smithのアルゴリズムを述べる:

入力:奇素数p, 正整数dpで割り切れないもの.
出力p=x2+dy2となる整数x,yが存在するか否か,存在すればx,yを返す.
アルゴリズム:
  1. もし(d/p)=1ならx,yは存在しない.終了.
  2. x0d(modp)とし,2x0<pならx0=px0と取り直す.
  3. (a,b)=(p,x0), c=pとする.
  4. while (b>c), (a,b)=(b,a(modb)).
  5. t=pb2とし,もしt0(modp)またはt/dが平方でないなら,x,yは存在しない.終了.そうでないなら,(±b,±t/d)が求める解である.

例えばp=37, d=137=x2+y2を解いてみよう.x0136=6(mod37). 26=12<p=37より, x0=376=31と取り直す.c=37=6. すると,4の互除法の過程は(a,b)=(37,31)(31,6)となり,b=6c=6よりこれで終わり.5のステップで,t=pb2=3762=1. t/d=1は平方であるから,(±6,±1)が解である.

2番目のステップで,法pで平方根を求める計算があり,これについてもスタンダードなアルゴリズムの他に,色々と工夫があるのだが,別の機会に譲る.

上のCornacchia-Smithのアルゴリズムは,例えばH. Cohen, A Course in Computational Algebraic Number Theory (Graduate Texts in Mathematics)のアルゴリズム1.5.2, またCrandall-Pomerance著, 和田秀男監訳, 素数全書―計算からのアプローチのアルゴリズム2.3.12がこれである.虚2次体の,判別式Dの整環で,(D/p)=1なる素数の上にある素イデアルが単項イデアルかを判定し,そうならその生成元を与える,と定式化し直した(H. Lenstraによる)アルゴリズムが,R. Schoof, Counting points on elliptic curves over finite fields, JTNB, 7, 1995の定理4.1として述べられている.pari-gpではqfbsolve()という函数として実装されている.きわめて高速で,500桁の素数でも一瞬で答えが求まる.以前述べた,Jacobsthal和の計算では高々数十桁ぐらいまでしか計算できないのと対照的である.(後記:クランドール・ポメランスのリンクが間違っていたので訂正.23:20)

2012年5月4日金曜日

one-sentence-proof: mod 4で1の素数は2平方数の和

4で割って1余る素数pを2つの平方数の和と表す問題の証明のうち,おそらくもっとも有名ではないかと思われるのが,D. Zagierによるone-sentence proofである:

S={(x,y,z)N3|x2+4yz=p}とするとき,S上のinvolution (x,y,z){(x+2z,z,yxy), if x<yz,(2yx,y,xy+z), if yz<x<2y,(x2y,xy+z,y), if x>2y, はただ一つの固定点を持ち,よってSは奇数個の元からなるが,一方でinvolution (x,y,z)(x,z,y) も固定点を持つ.」 問題は,何故これで証明されたのかが直ちには了解しづらい点である.

この元になったのが,Heath-Brownによる証明である.まず行列MM=(020200001) と定義する.Mを使ってZ3内の部分集合を, S={v=(x,y,z)tZ3|vtMv=p} と定義する.vtMv=4xy+z2=pである(tは転置の記号とする).行列をもう3つ,A, B, Cを次のように定義する: A=(010100001),B=(010100001),C=(111010021). A, B, Cはいずれも可逆行列で,A2=B2=C2=I, さらにAtMA=BtMB=CtMC=M. また,Sの部分集合T, Uを次のように定義する: T={(x,y,z)S|z>0},U={(x,y,z)S|x+z>y}. すると,以下の各主張が成立する:

主張1: A:SS, B:TT, C:UU.
主張2: S=TAT=UAU.

(証明は原論文を).よって#T=#AT, #U=#AUから#S=2#T=2#Uとなり,#T=#U.

主張3: #Uは奇数.

証明:C2=Iより,CUへの作用でのそれぞれの軌道は,1つ,もしくは2つの元しか含まない.軌道が1つの元と言うことは,固定点と言うことである.C(x,y,z)t=(x,y,z)tから,y=zが出るが,するとp=y(4x+y)となり,よってy=1, x=(p1)/4. 従って, Cの作用でのUの固定点は唯一で,他の軌道はすべて2元からなる.よって#Uは奇数である.

すると,#T=#Uも奇数であり,BTへの作用において奇数個の固定点が存在する.特にBの作用での固定点がTに存在するが,この固定点は(Bxyを入れ替えるので)x=y. すると p=4xy+z2=4x2+z2=(2x)2+z2. これが求める結果であった.

参考文献は,上掲のZagier, Heath-Brownの論文の他,Aigner, Ziegler, Proofs from THE BOOKの4章がこの証明(の他に,A. Thueによる別の証明)を詳細に解説している.

2012年5月3日木曜日

モジュラー形式・テータ級数(2):mod 4で1の素数は2平方数の和

昨日の記事では,4で割って1余る素数を2つの平方数の和と表す問題から,CM楕円曲線を経由してモジュラー形式に至った.今日はより直接的にモジュラー形式と関連するお話.

まず,指標付きのEisenstein級数Gk,χ(z)を定義する.χを法Nに対するDirichlet指標(群準同型χ:(Z/NZ)×C×を,(n,N)1ならχ(n)=0としてχ:ZCへ伸ばしたもの)とする.正整数kN, 法NのDirichlet指標に対して Gk,χ(z)=ck(χ)+n=1(dnχ(d)dk1)qn と定義する.但しχ(1)=(1)kを仮定し,また ck(χ)=12L(1k,χ) は,Dirichlet指標χに対するDirichlet L函数の1kでの値の半分で,これは代数的数になる.すると,Gk,χ(z)は,重みk, レベルN, 指標χを持つモジュラー形式になる.

一方,テータ級数θ(z)θ(z)=nZqn2=1+2n1qn2 とする.その2θ(z)2は,重みが1, レベル4, 指標χ4()=(4/)をもつモジュラー形式になり,整数を二平方数の和に書き表す書き方 r2(n)=#{(x,y)|x2+y2=n,x,yZ} と次のような関係があることが分かる: θ(z)2=(nZqn2)(mZqm2)=n0r2(n)qn.

さて,重みが1, レベル4, 指標χ4をもつモジュラー形式でq展開が0でない定数項を持つものの全体は複素1次元なので,G1,χ4(z)θ(z)2は定数倍で一致する.この定数はL(0,χ4)=1/2から4であること(4G1,χ4(z)=θ(z)2)が分かる.よって,p1(mod4)なる素数については, r2(p)=4(χ4(1)+χ4(p))=8. 特にそのような素数は,二平方数の和である事(更に,二平方数和としての表し方が順番と負号の付け方を除いて一意である事)が分かる.

参考文献は,Zagierの1-2-3の論説の§3.1.

2012年5月2日水曜日

モジュラー形式・テータ級数:mod 4で1の素数は2平方数の和

E:y2=x3DxのHasse-Weil L函数が,Hecke L函数に一致すること(Deuring-Weil)を見た.今回は更に,これらがあるモジュラー形式のL函数である事を見る.

特にD=1, つまりE:y2=x3xの場合を考えると,対応するHecke指標は,P2の上にある素イデアルならχ(P)=0, それ以外の場合はχ(P)=π, P=(π), π1(mod2+21), となる.このときEに対応するモジュラー形式は,重み2, レベル32のテータ級数(CMモジュラー形式) fE(z)=aZ[1]χ(a)qN(a)=a,baqa2+b2, 但しq=exp(2π1z), aZ[1]0でないイデアルを走り,またa, ba1(mod4), b0(mod2)を走る.

更に,このモジュラー形式は,η函数 η(z)=q1/24n=1(1qn), により, fE(z)=η(4z)2η(8z)2 と表示される.(重み2, レベル32のカスプ形式の空間が1次元である事から).

すると,考えている楕円曲線Eappは素数)は,fE(z))qpの係数に等しかったので,最終的に上の式の右辺をq展開した係数に等しいことがわかる.Jacobsthal和が,そしてx2+y2=pの解が,上のような無限積の係数と関係付くのは大変ふしぎなことである.

参考文献は,D. Zagier, Elliptic Modular Forms and Their Appliation, in The 1-2-3 of Modular Forms, The 1-2-3 of Modular Forms: Lectures at a Summer School in Nordfjordeid, Norway (Universitext) §6.4, 並びに,橋本喜一朗先生の連載記事「数のジャングル・数論の迷宮」第15回「森の広場(スクエア):素数たちの饗宴(2)」,数学セミナー 2010年 09月号 [雑誌] ,である.