見出し画像

【フラクタル解説】FNFE Project #16「惨事方程式」

どうもこんにちは。FNFE Projectへようこそ!
FNFE Projectでは「FNFE=For New Fractal Enthusiast(新たなフラクタル愛好家のため)」という理念の上、フラクタルについて分かりやすく解説していきます。
フラクタルについて全く知らなかったり、記事を読んだだけではなにがなんだかという人も楽しめるので是非読んでみてください!

今回は「ニュートンフラクタル」についてやっていきます。

球根

皆さんは三次方程式の解の公式を知っていますか?
これです。

分かりやすいように一部をまとめました。

※∛xの定義:(∛x)³=x

…だる。ちなみに本来はもっとえげつない分量だったのですがなんとかまとめました。
さて見て分かる通り非常にヤバい形をしている三次方程式の解の公式ですが、公式を用いる以外にも解の求め方がいくつかあります。
その一つが「ニュートン法」と呼ばれる方法です。というわけで解説おにいさんにニュートン法の解説をお任せしていこうと思います。よろしくお願いします。

(解説おにいさん)ということでニュートン法について解説します。
ニュートン法とは、方程式の解を漸化式によって求めるアルゴリズムのことです。三次方程式だけでなく、二次方程式や四次方程式、n次方程式ならなんでもできます。
関数f(x)と方程式f(x)=0を考えます。そして適当な初期値x₀をとり、以下のような漸化式を考えます。
$${x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)}}$$
ここで、f'(x)はf(x)の導関数を表します。

微分の方法はもう知っていますでしょうか。もしわからなければ、ここで解説しておきます。

★方程式の微分

nの微分を(n)'としたとき、
・定数項aの微分(a)'=0
・一次の項axの微分(ax)'=a
・(axⁿ)'=anxⁿ⁻¹
という計算をそれぞれの項で行います。

例えば、5x²+3x-4を微分すると、
=(5x²)'+(3x)'+(-4)'
=(5×2×x¹)+3+0
=10x+3
となります。

☆彡一般的な微分

f(x)の導関数f'(x)を求めることをf(x)を微分するといいます。
求め方はこんな感じです。

limは限りなく近づくというイメージでおk(死語)です

例えば、f(x)=x²であれば
$${=\frac{(x+h)^2-x^2}{h}}$$
$${=\frac{x^2+2hx+h^2-x^2}{h}}$$
$${=\frac{2hx+h^2}{h}}$$
=2x+h
=2x
となります。

N starts

f(x)=0のとき、
$${x_{n+1}=\frac{f(x_n)}{f'(x_n)}}$$

で、ニュートン法は👆が方程式の解に収束していくという話なのですが、解が複数ある時にどの解に収束するのかは実はx₀によって変化します。
例えば、x²-1=0という方程式を考えます。この方程式は解が1と-1と2つあります。
x²-1の微分は2xなので、ニュートン法での式は$${x_{n+1}=x_n-\frac{x^2-1}{2x}}$$となります。
x₀=2として計算すると、このようになります。

x₁=1.25
x₂=1.0003048780487804
x₃=1.0000000464611474
x₄=1.000000000000001…

すごい勢いで1に収束していきます。

一方、x₀=-2として計算すると、このようになります。

x₁=-1.25
x₂=-1.0003048780487804
x₃=-1.0000000464611474
x₄=-1.000000000000001…

さっきの符号が逆になっただけですね。

ただx₀が何でもいいというわけではなく、上の例ではx₀に0を取ると分母がゼロになってしまい計算できなくなってしまうので注意が必要です。

というように、ニュートン法によって求められる解はx₀によって変わって来るという話でした。
今回の僕の出番はここまで。ありがとうございました。

N₃

ようやく本編に入れました…

ニュートンフラクタルとは、ニュートン法と三次方程式を基にして生成されるフラクタルです。
作り方を解説します。まず、x³-1=0という式を考え、その解をニュートン法で求めます。このとき、解は3つとなります。
・1
・ω
・ω̄
このωとω̄はさっき出てきたやつと同じです。それぞれ$${\frac{-1+\sqrt{3}i}{2}}$$と$${\frac{-1-\sqrt{3}i}{2}}$$ですね。
で、先ほどx₀によってどの解に収束するかが変わるという話がありましたが、これを利用して複素数平面を彩色します。
複素数平面上の点pをx₀としてx³-1=0の解をニュートン法で求めた時、xₙが
・1に収束するなら赤で
・ωに収束するなら緑で
・ω̄に収束するなら青で
pを彩色します。これがニュートンフラクタルの作り方で、以下のような見た目となります。

色の濃淡が変化しているところは、収束速度で地味に変えたものです。

ニュートンフラクタルにはある面白い性質があります。実はごく初期の#5で言っていました。
#5なんて遠い遠い過去(2ヶ月前と2週間前)のことを覚えてる人なんて、どれくらいいるのでしょうか。あの頃は珠莉亜ちゃんも解説おにいさんもまだ登場していなくて、解説はてなくんに名前がついたばっかの頃でした。

実は解説はてなくんは#4で初登場した最も歴史の古いキャラです

そうです。3つの図形が同じ境界を共有するのです。

👆和田の湖

ただしニュートンフラクタルは和田の湖とは異なり、図形同士が離れていて端がありません。

(解説おねえさん)新コーナーの今絶対お前疑問に思ってるやろコーナーです。
多分あなたは今、「収束しない点とか変なループ入る点はどうすんねん」って思っていると思います。いい視点で読めていますね。

でしゃばるいい視点ですね君

特殊なパターンに入る場合は、以下のような感じで塗り分けるのが一般的です。
・黒…解以外に収束する場合や、ループに入る場合
・パステルカラー…発散する場合
ただこれは慣例なのでこれとは違う色で塗られている場合もあります。
今絶対お前疑問に思ってるやろコーナーはここまで。ありがとうございました。

お察しの通りベースとなる式を変えるとニュートンフラクタルの形が変化します。
式を変えると、本家(?)ニュートンフラクタルではx₀=0など、特定の一点でだけ見られる収束しない領域がまとまって発生することがあります。

x^3-x
x³−2x+2
注意!赤いところが解に収束しない領域です

x³だけでなく、x⁴などといったより高次の方程式についても同じような図形を考えることが出来ます。

x⁴-1
x⁴-x+1
x⁴+2x²-1

普通の多項式だけでなく、分数関数でも同じことが出来ます。

(x³+1)/(x²+1)
(z³+1)/2z
(x⁴+1)/(2x-1)

式によってはバーニングシップフラクタルで見たようなモザイク状の領域(カオス)が出来ることもあります。

追記:どうやら違うようです。詳しくは追記を見てください。

(x⁴-2)/(x³-1)
???????

NV(a)

※Newton VariantsでNVです。

ニュートンフラクタルは以下のようにして一般化できます。
$${x_{n+1}=a\frac{f(x_n)}{f'(x_n)}}$$
※aは任意の複素数

aを自由に変えることで、同じ式をベースとしても違った見た目のフラクタルを生成できます。

いくつか実例を見てみましょう。
※いい感じのプログラムが見つからなかったので収束先で色を変えるのは諦めました。

x³-1, a=1+0.5i
x³-1, a=0.4+0.1i
x³-1, a=0.4+0.7i
x³-1, a=1.5
x³-1, a=1+0.9i
なんかこういうやつ仮称:マドかロボトミーコーポレーションにおらんかった?

上のやつらはいずれもx³-1がベースの場合でしたが、式を変えると他にも様々な図形が見られます。

x⁴-1, a=0.7+0.4i
x³+x-1, a=0.7+0.7i
x³-x, a=1+0.5i
(x³+1)/(x²+1), a=0.5+0.3i

aを1以外にすると、黒領域が全く見られなくなるようです。a≠1の一般ニュートンフラクタルで黒領域があるものを知っている、あるいは存在しないという証明を知っているという人はお知らせください。

追記: 存在するようです。詳しくは追記を見てください。

NxV(A)

一般ニュートンフラクタルをさらに発展させたものに、こんなものがあります。
$${x_{n+1}=a\frac{f(x_n)}{f'(x_n)}+c}$$
※a,cは任意の複素数
これはノヴァ・フラクタル(Nova Fractal)と呼ばれています。

x³-1, a=1, c=-0.5
x³-1, a=1, c=-0.5-0.2i
x³-1, a=1+0.2i, c=-0.3+0.1i
x³-1, a=0.7+0.7i, c≒-0.329+0.571i
x⁴-1, a=1i, c=-0.15+0.15i

ニュートンフラクタルとかノヴァフラクタルとかの良いところってどこまでも拡大できるしどこまでも縮小できることだと思います。
マンデルブロ集合やその変種では、xₙ(zₙ)が一定の値を超えると必ず発散していました。これに対しニュートンフラクタル類ではどこまで大きな初期値でも(普通は)発散せずにそのまま美しい模様を描いてくれます。

また、cを変化させ、黒領域が有るか無いかで塗り分けた、いわばマンデルブロ集合のようなものも存在します。

x³-1, a=1

作り方はこんな感じです。
➀ベースの式とaを決める
②cを動かし、式・a・cのノヴァフラクタルを見る
③黒領域があれば、複素数平面上のcにあたる点を黒で塗る
④黒領域がなければ、$${x_{n+1}=a\frac{f(x_n)}{f'(x_n)}+c}$$の解をpとし、pの色で複素数平面上のcにあたる点を塗る

ちなみにこれを拡大すると…

マンデルブロ集合「どうも~~~」

います。

#13の使い回しでごめん

ちなみにニュートンフラクタルはカオスと関わりがあってですね、

驚いて手を抑える時手の甲で抑える人あんま居ないよ?

ニュートン法こそが初期値を少し変えると挙動が大きく変わるというカオスですし、先ほど見たようなノイズ状の領域、あれも激しいカオスの一例です。
この辺りの話は次回詳しく!!!!!!!!!やろうと思うのでお楽しみに!

20241006追記

108Hassiumさんにこのような情報をいただきました。

・(x⁴-2)/(x³-1)のニュートンフラクタルで、ノイズ状になっている領域があるが、これはカオスではなく発散する領域である。

これは多分僕とプログラムのミスです。
「参考にしたサイト」の欄に記載のある2つのプログラムで試したところ、いずれでもノイズ状の領域ができたので掲載したのですが、どうもこれは普通と異なる事情が起きているようです。
どうやらノイズ状の領域では、2周期発散といってn→∞→n→∞→n→∞→…のサイクルに収束するという特殊な状態になっており、そのせいで収束・発散の判定に変なことが起きていたようです。
とはいえちゃんと確認しなかった僕が悪いです。誤った情報をお伝えてしてしまい本当に申し訳ございません。

・aが1に非常に近いときは、一般化ニュートンフラクタルでも黒領域が現れる。

これは気づけませんでした。教えていただきありがとうございます。
ちなみに|a-1|>1のときは平面全体が黒領域に覆われてしまうらしいです。興味深いですね。

まとめ

いかがでしたか?今回は「ニュートンフラクタル」について解説しました。
ニュートンフラクタルは方程式の解を求める方法であるニュートン法を基にしてできるフラクタルだと学びました。
方程式の解を求める方法からフラクタルが生まれるなんて意外ですね。複雑な図形は全てどの解に収束するかからできるのが凄いと思います。
他にも発展形はより豊かな形をしていました。ノヴァフラクタルのマンデルブロ集合に本家マンデルブロ集合がいたのは意外でしたね。
次回もニュートンフラクタルについて追っていきます。お楽しみに!

次回予告

才木珠莉亜「ニュートン法以外にも似たような方程式の解き方があるわけ!?じゃあ一生解説しきれないじゃん!!!」
俺「そうはならんやろ。」

俺「何でお前は一生ついてくるんだよ!!!!!」
解説はてなくん「それはね、虚数と二乗がそこにいるからだよ」
いい視点ですね君「はてなくん、いい視点ですね!!!!!!」

#17「なにゆーとん?」(仮)
9月29日公開!お楽しみに!

参考にしたサイト

👆ニュートンフラクタルの画像は大体これと「Fractal Zoomer」というソフトウェアで生成しました。その他の画像はパブリックドメインのものか自作です。

余談

函菜ちゃんは髪飾りのレパートリーがℵ₂個あります。

ロボトミーコーポレーションはどういう奴が居るのかと大まかな内容しか知りません。

スライスチーズってそのまま生で食ってええん?

中間テストが近いのですが方程式の話と記述式と美術の練習ということにして自分を正当化しています。

おまけ

雑多画像コレクション。

(x⁴+z-1)/(x²-2)
(x³+1)/(x³+2)
x⁴-x²+1
x⁴-x³+1
(x⁴+1)/(x³-x-2)
(x³-1)/2x+1
x³-1/x
x⁴-2x²-1, a=1.2+0.5i
(x³+1)/(x²+1), a=0.5-0.1i

いいなと思ったら応援しよう!