0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Beautiful roots!!]Littlewood 多項式の根を描いてみた

Posted at

Littlewood 多項式の根を描いてみた

数学的にどこまで意味があるかは分からないけれど、「美しい画像を作ってみたい」というモチベーションで、休日に少し遊んでみました。

Littlewood 多項式とは

係数がすべて $1$または$−1$ の多項式を Littlewood 多項式 と呼びます。
例えば、$x^3+x^2-x-1=0 $もその一つです。この根を複素平面上にプロットします。
三次根.png

$3$次多項式に限定すると、係数の組み合わせは$8$通り(最高次の係数は $1$に固定)。それぞれ根が$3$つあるので、計$24$点を描画できます。

20次多項式を描画してみた

次に、$20$次のLittlewood多項式を対象にしました。
$20$次の場合、係数の組み合わせは $2^{20}$通りあり、それぞれ根が$20$個。
合計で $2^{20} \cdot 20$ 個の点が複素平面にプロットされます。

結果がこちらです。

全体

変換.png

  • ※軸は見栄えが悪かったので非表示
  • ※描画範囲は $−2<x<2,−2<y<2$
  • ※画像中央は原点

左上拡大

左上.png

(1,0)付近

1付近.png

見事に対称性とフラクタル的な模様が浮かび上がり、まさに Beautiful roots!!

ここまでは、先駆者がいらっしゃいます。
https://neofronteras.com/especiales/?p=172

重心を取ってみる

各多項式ごとの根の重心を計算してプロットすれば、フラクタル性を維持したまま、また違った美しい図形が得られるのでは?

ところが実際にやってみると、Littlewood 多項式には強い対称性があるため、すべての重心は たった2点 に集約されてしまいます。つまり、せっかく $2^{20}$ 本の多項式を計算しても、結果は2点を描いただけでまったく嬉しくありませんでした。

対称性を壊す ― ランダム除外

そこで発想を変えました。
各多項式の$20$個の根から ランダムに$1$つを除外し、重心を計算してみました。
結果がこちらです。

全体

全体.png

下部拡大

下部.png

  • 中心の穴が2つに増えた
  • フラクタル的な模様が残っている

ノイズを加えることで、圧縮され失われていた構造が再び浮かび上がったように見えます。情報を潰すと$2$点しか残らないが、形の全容が見えるようになったように解釈しました.(小学生並みの感想)

技術的メモ

  • 根は MySQL で管理($20$次の全根を一晩かけて計算して保存)
  • CSV などでも扱えると思うが、練習も兼ねて DBMS を採用
  • SQL だと速度は出ないが、トライ&エラーの試行はしやすい
  • 描画には Python + matplotlib を使用
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?