ピタゴラス数とロバート行列 -...
TRANSCRIPT
ピタゴラス数とロバート行列学習院大学理学部数学科
成田 光正
①目的プロログを使って、200以下のピタゴラス数の表を作る。
②手順3 ¤ 3行列の積や3 ¤ 3行列の逆行列をprologで求め、いくつ
かのピタゴラス数を用いてロバート行列を求める。逆に、ピタゴラス数にロバート行列をかけて、1組の1番小
さい値が200以下のピタゴラス数を求める。
ピタゴラス数
c-b=1の時3 5 45 13 127 25 249 41 4011 61 60... ... ...
c-b=9の時15 17 821 29 2033 65 5639 89 8051 149 140... ... ...
c-b=49の時... ... ...
63 65 1677 85 3691 109 60105 137 88119 169 120... ... ...
c-b=289の時629 829 540663 905 616697 985 696731 1069 780765 1157 868... ... ...
行列のかけ算を利用し、ピタゴラス数の一部を使って、ロバート行列を求める。
0@
3 4 521 20 29119 120 169
1AA =
0@
21 20 29119 120 169697 696 985
1A ¢ ¢ ¢ ¤
ロバート行列を求める為、3 ¤ 3行列の積や3 ¤ 3行列の逆行列Bを求める。
3結果逆行列BはB=[[¡100, ¡76, 16], [¡98, ¡88, 18], [140, 116, ¡24]]
B =
0@¡100 ¡76 16¡98 ¡88 18140 116 ¡24
1A
となる。
逆行列Bを用いて、*からロバート行列Aを求めると、A = [[1:0; 2:0; 2:0]; [2:0; 1:0; 2:0]; [2:0; 2:0; 3:0]]
これよりロバート行列は以下のようになる。
A =
0@
1 2 22 1 22 2 3
1A
ピタゴラス数に求めたロバート行列をかけた数もピタゴラス数になることを証明します。ピタゴラス数(x; y; z)
x2 + y2 = z2
(x0; y0; z0) = (x; y; z)
0@
1 2 22 1 22 2 3
1A
を計算するとx0 = x + 2y + 2z, y0 = 2x + y + 2z, z0 = 2x + 2y + 3z
x02 + y02 = 5x2 + 5y2 + 8z2 + 8xy + 12xz + 12yz
= 13z2 + 8xy + 12xz + 12yz
z02 = 13z2 + 8xy + 12xz + 12yz
これより、x02 + y02 = z02となり、証明終わり。
得られたロバート行列を用いて、200以下のピタゴラス数求める。
例1 (0,1,1)
0@
1 2 22 1 22 2 3
1A = (4;3;5)
例2 (3,4,5)
0@
1 2 22 1 22 2 3
1A =(21,20,29) ...
ピタゴラス数は正の組だけではなく、負の数を含む組も考えられるので全部で(3; 4; 5),(¡3; 4; 5),(3;¡4; 5),(3; 4;¡5),(¡3; 4;¡5),(¡3;¡4; 5),(3;¡4;¡5),(¡3,¡4,¡5)の8組のピタゴラス数でロバート行列をかける。
例3 (¡3; 4; 5)
0@
1 2 22 1 22 2 3
1A =(15,8,17)
例4 (¡3;¡4; 5)
0@
1 2 22 1 22 2 3
1A =(-1,0,1)
これらのプログラムから得られた結果を表にまとめる。
[1,0,1]の場合a b c3 4 521 20 29119 120 169... ... ...
[¡3,4,5]の場合a b c15 8 1765 72 97... ... ...
[3,¡4,5]の場合a b c5 12 1355 48 73297 304 425... ... ...
[5,12,13]の場合a b c55 48 73... ... ...
[¡5,12,13]の場合a b c45 28 53... ... ...
[5,¡12,13]の場合a b c7 24 25
105 88 137... ... ...
[7,24,25]の場合a b c
105 88 137... ... ...
[¡7,24,25]の場合a b c91 60 109... ... ...
[7,¡24,25]の場合a b c9 40 41... ... ...
[8,15,17]の場合a b c72 65 97... ... ...
[¡8,15,17]の場合a b c56 33 65... ... ...
[8,¡15,17の場合]a b c12 35 37... ... ...
[¡9,40,41]a b c
153 104 185... ... ...
[9,¡40,41の場合]a b c11 60 61... ... ...
[11,¡60,61]の場合a b c13 84 85... ... ...
[13,¡84,85]の場合a b c15 112 113... ... ...
[15,¡112,113]の場合a b c17 144 145... ... ...
[17,¡144,145]の場合a b c19 180 181... ... ...
ロバート行列を用いて200以下のピタゴラス数をprologで作り出した。
200以下のピタゴラス数a b c0 1 13 4 55 12 137 24 258 15 179 40 4111 60 6112 35 3713 84 8515 112 113
16 63 6517 144 14519 180 18120 21 2920 99 10124 143 14528 45 5328 195 19733 56 6536 77 8539 80 8944 117 12548 55 7351 140 14952 165 173
60 91 10965 72 9785 132 15788 105 13795 168 193104 153 185119 120 169
④考察一番簡単なピタゴラス数 (0; 1; 1)にロバート行列をかけることで、200以下のピタゴラス数がすべて32個作り出せることがわかった。