2023年2月9日木曜日

SagetMath は「連分数展開が循環する ⇔ 二次無理数」という定理を知っている模様

早起きしないでいいとなるとすぐ夜更かししてしまう。昨晩は3時過ぎまで起きていてしまった。で今日は早起きしてM2の学生の修論を点検するつもりが、起きたら遅かった。金曜日の深夜にやる「座王」を録画するためにはハードディスクを30分分空けないといけないので、先週の分を見た。面白かった。で洗濯物を洗濯機に放り込んで、職場へ向けて出発。

エポックには6時前に着いた。お茶でも飲んでのんびり。で6時半くらいに生協に晩飯を買いに行くと、何と営業は6時まで。去年は確か8時までやっていたんだが。仕方ないので車を出して、セブンイレブンに買い出し。明日の朝飯も買う。

「プレバト」を見てからしばし SageMath で遊ぶ。ちょっとゆえあって連分数を勉強しているので。有理数の連分数展開は簡単。continued_fraction(355/113) とか、a=355/113; a.continued_fraction() とやれば [3; 7, 16] と返ってくる。意味は自明。では無理数はどうなんだろう?二次無理数の連分数展開は循環するので、やってくれるのでは?と思って、a=sqrt(2) とやった後 a.c でタブキーを押しても候補に continued_fraction が出てこない。じゃあと思って、K.<a>=QuadraticField(2) とやって a.c でタブキーを押したら、候補に continued_fraction があった。実行すると [1; (2)*] と返ってきた。これも意味は自明。二次体の元が連分数展開できることはわかった。では二次体を QuadraticField(2) のようにではなく NumberField(x^2-2) で与えたらどうだろう?と思ったら同じ結果が返ってきた。成程。では三次の無理数だとどうだろう?循環しないが。と思って K.<a>=NumberField(x^3-2) として a.c でタブキーを押したら、候補に continued_fraction は無かった。「無理数 a の連分数が循環する ⇔  a が二次無理数」という定理を知っているということか。SageMath 凄い。e の連分数展開は面白い形をしているが、計算してくれないようだ。いや、桁数を十分大きくして近似分数で与えておけば、ある程度まで計算出来るが、それでは面白くない。やはり理論的にやるしかないか。面白かった。

さて残るは二日。頑張らないと。今日も11時には寝よう。髭を数日剃っていないので、結構見た目が汚らしい。朝剃る時間が無いと困るので、今晩中に剃っておくとしよう。明日は8時半起き。まあエポックに泊まっているので多少寝坊しても大丈夫だが。