この記事は日曜数学 Advent Calendar 2023の3日目の記事です。
どうも、108Hassiumです。
タイトル通り、f(z)=a(z+z1)+bという形の関数の中からちょっと珍しい性質を持つものを紹介したいと思います。
前提知識
本題に入る前に、前提知識の説明をさせてください。
以下の記事を読了済みであり、内容を完璧に覚えていると断言できる方は読まなくても大丈夫です。
ジュリア集合
z0=αとしてzn+1=f(zn)という数列を計算し、発散・収束速度などに応じた色で複素平面上にαをプロットすることで得られる図形を「f(z)のジュリア集合」と呼ぶことにする。
wikipedia等に載っている(おそらく正式であろう)定義とは異なりますが、利便性等の都合によりこちらの定義を使用します。
同値な言いかえですらない完全な別物ですが、この記事では厳密な数学数学した議論をするわけではないのでこれで通します。
ジュリア集合と聞くと、以下のような「z2+cのジュリア集合」を思い浮かべる方が多いと思います。
☝z^2-0.1+0.7iのジュリア集合
☝z^2+0.3+0.5iのジュリア集合
☝z^2+0.24+0.51iのジュリア集合z2+cのジュリア集合は、znが固定点や周期サイクルに収束する領域と無限大に発散する領域でできています。(本当は各領域の境界線上に特殊な性質を持つ点が集まっているのですが、この記事では無視することにします)
以下、znが無限大に発散する領域を「発散領域」、収束していく領域を「収束領域」と呼ぶことにします。
ちなみにz2+cのジュリア集合は、cの値によっては以下のように収束領域が存在しなくなることもあります。
☝z^2+0.28+0.01iz2+cのジュリア集合は無限遠まで広がる発散領域の中にポツンと収束領域が存在している(ない場合もある)構造になっていますが、これはz2+cに限らず2次以上の多項式関数全般に共通する特徴です。
一方で多項式関数でない有理関数(多項式÷多項式で表せる関数)、例えばz21+cのジュリア集合はこんな形をしています。
☝1/z^2-1.6
☝1/z^2+0.2+0.61i
☝1/z^2-1.84複素平面全体が収束領域になり、複雑な曲線で領域が分割されています。
マンデルブロ集合
z0=αとしてzn+1=f(zn,c)という数列を計算し、発散・収束速度などに応じた色で複素平面上にcをプロットすることで得られる図形を「(αを初期値とする)f(z,c)のマンデルブロ集合」と呼ぶことにする。
ジュリア集合とは異なり、マンデルブロ集合は2変数の関数で定義される概念で、さらに初期値にも依存しています。
☝z^2+cのマンデルブロ集合(z_0=0)
☝z^2+cのマンデルブロ集合(z_0=1)
☝z^2+cのマンデルブロ集合(z_0=i)マンデルブロ集合もジュリア集合と同じくznが発散する領域と収束する領域に分かれているので、それぞれ発散・収束領域と呼ぶことにします。
ジュリア集合とマンデルブロ集合の関係
初期値を適切に決めることで、マンデルブロ集合からジュリア集合に関する情報を読み取ることができます。
例えばz2+cのz0=0のマンデルブロ集合からは、z2+cのジュリア集合の収束領域の有無が読み取れます。
☝z^2+cのz_0=0のマンデルブロ集合とz^2+cのジュリア集合の対応関係定数cがマンデルブロ集合の収束領域の中にあればz2+cのジュリア集合は収束領域を持ち、発散領域の中にあれば収束領域を持たないようです。
説明は面倒なので省略しますが、収束領域の有無以外にも枝分かれの仕方、尖り具合や曲がり具合、発散領域の模様の細かさなどの外見的特徴もマンデルブロ集合から読み取れる場合があります。
このような性質を利用して、私は特定の形の関数のジュリア集合の中から面白いものを見つけ出したいとき、まず最初にマンデルブロ集合を描画してみてそれを見ながらジュリア集合のパラメータを調整する、という事をよくやっています。
そして理由は不明なのですが、どうやら初期値が「f(z,c)のzについての臨界点(微分係数が0になる点)」であるときにf(z,c)のマンデルブロ集合はこのような性質を持つらしいです。
実際にz2+cをzで微分すると2zになり、z=0のときは2z=0になっています。
企画概要
f(z)=a(z+z1)+bという形の関数は、z=1とz=−1という2つの臨界点を持ちます。
そのため、(a,bをcの関数として)a(z+z1)+bのマンデルブロ集合からジュリア集合の情報を得ようにも2種類のマンデルブロ集合ができてしまいます。
☝c(z+1/z)-2のz_0=±1のマンデルブロ集合
☝(1+0.1i)(z+1/z)+cのz_0=±1のマンデルブロ集合こういった場合はどちらか一方が正解というわけではなく、2つのマンデルブロ集合の情報を同時に調べることでジュリア集合の情報(収束領域の存在・形状など)が見えるようになる場合が多く、そのような状況はジュリア集合を楽しむうえでは少しだけ面倒です。
しかし、例えば一方のマンデルブロ集合が何の情報も持っていなかったり、2つのマンデルブロ集合が全く同じ形だったりすると、1個のマンデルブロ集合だけからa(z+z1)+bのジュリア集合の情報が得られることになります。
このような「マンデルブロ集合が実質1種類しかないa(z+z1)+b型関数」こそが表題の「ちょっと珍しい[略]関数」で、この記事ではそのような関数の具体例をたくさん紹介したいと思います。
ちなみに、そもそもなぜa(z+z1)+bという形の関数に着目したのかというと、単にこの形の関数が「臨界点が2個しかない有理関数」の中でもシンプルな形の関数だからです。
同様な性質を持つ関数としては3次関数がありますが、3次関数では以下の通りすでに同じ調査を行っているので今回はa(z+z1)+bを選んだというわけです。
f(1)=-1
f(1)=−1が成り立つと、z0=1の数列はz0=−1の数列と同じ値が並ぶことになる、つまり全く同じ挙動になるので計算する必要が無くなります。
f(z)=c(z+z1)+dとすると、f(1)=−1という方程式は2c+d=−1と表せます。
この式をdについて解いてf(z)の定義式に代入して少し整理すると、f(z)=c(z+z1−2)−1という関数が得られます。
☝c(z+1/z-2)-1のマンデルブロ集合(z_0=-1)中央の円より外側がznが発散していく領域で、円の内側にある青や黄色の領域はznが周期数列に収束していく領域、その他のモザイク状の模様の部分はカオス的挙動を示す領域(途中で大きい値になるので発散したと判定されている)です。
☝c=-0.6+0.5i,z_0=-1の数列が(たまに大きい値をとりながら)カオス的に変動する様子z0=1の方のマンデルブロ集合を描画してみると、確かにz0=−1のものと同じ形になっています。
☝c(z+1/z-2)-1のマンデルブロ集合(z_0=1)ジュリア集合は以下のような感じです。
☝(-0.1+0.7i)(z+1/z-2)-1のジュリア集合
☝(-0.9+0.4i)(z+1/z-2)-1のジュリア集合
☝(0.9+0.4i)(z+1/z-2)-1のジュリア集合
☝-0.14(z+1/z-2)-1のジュリア集合f(1)=1
cの値に関係なく常にf(1)=1が成り立つ場合、z0=1の数列は常に1に収束することになるので計算する必要が無くなります。
先程と同様にf(z)=c(z+z1)+dとして立式して解くと、f(z)=c(z+z1−2)+1という解が得られます。
☝c(z+1/z-2)+1のマンデルブロ集合(z0=-1)z0=1とすると収束先も収束速度もどこでも同じなので、マンデルブロ集合は何の模様もないまっさらな画像になります。
☝c(z+1/z-2)+1のマンデルブロ集合(z0=1)ジュリア集合はこんな感じです。
☝(0.5+0.3i)(z+1/z-2)+1のジュリア集合
☝(0.7+0.7i)(z+1/z-2)+1のジュリア集合
☝(-0.8+0.15i)(z+1/z-2)+1のジュリア集合暗い青色の領域が1に収束するような初期値に、その他の明るい色の領域がz0=−1の数列と同じサイクルに収束する初期値に対応しています。
☝(0.9+0.4i)(z+1/z-2)+1のジュリア集合これはz0=−1でも1に収束する場合のジュリア集合で、色の違いは収束速度の違いを表しています。
ところで、c(z+z1−2)+1のジュリア集合の「1に収束する領域がz0=−1のサイクルに収束する領域を囲んでいる」という性質は、「1に収束する領域」を「発散領域」に置き換えると多項式関数のジュリア集合と似ていることがわかります。
実は、c(z+z1−2)+1のジュリア集合は以下のようにしてz2+γという形の関数のジュリア集合と関連付けることができます。
まずf(z)=c(z+z1−2)+1とし、さらにh(z)=2cz−12+1という関数を考えます。
そして、h−1(f(h(z)))(h−1(z)はh(z)の逆関数)を計算します。
h−1(z)=c(z−1)1+2c1なので、h−1(f(h(z)))は以下のようになります。
h−1(f(h(z)))=h−1(f(2cz−12+1))=h−1(c(2cz−12+1+2cz+12cz−1−2)+1)=h−1(c((2cz−1)(2cz+1)2(2cz+1)+(2cz−1)2−(2cz−1)(2cz+1))+1)=h−1(4c2z2−14c+1)=c(4c2z2−14c+1−1)1+2c1=4c24c2z2−1+2c1=z2−4c21+2c1
ここで−4c21+2c1=γと置くことで、h−1(f(h(z)))をz2+γという形に変形できたことになります。(以下、g(z)=z2+γとします)
2つの関数f(z)とg(z)の間にh−1(f(h(z)))=g(z)が成り立つようなh(z)が存在するとき、「f(z)とg(z)は位相共役である」というそうです。
位相共役であることに何の意味があるかというと、an+1=g(an)という数列とb0=h(a0),bn+1=f(bn)という数列の間に以下のような関係が成り立ちます。
a1=g(a0)=h−1(f(h(a0)))=h−1(f(b0))=h−1(b1)
a2=g(a1)=h−1(f(h(h−1(b1))))=h−1(f(b1))=h−1(b2)
a3=g(a2)=h−1(f(h(h−1(b2))))=h−1(f(b2))=h−1(b3)
a4=g(a3)=h−1(f(h(h−1(b3))))=h−1(f(b3))=h−1(b4)
・・・という風に、常にan=h−1(bn)が成り立ちます。
ということは、例えばanが固定点へ収束すればbnも固定点へ収束し、anが周期サイクルに収束すればbnも全く同じ長さの周期サイクルに収束し、anがカオス挙動をするならbnもカオスになる、といったようにanとbnは常に似たような挙動をすることになります。
そしてジュリア集合においては、枝分かれの仕方や収束領域の尖り具合・曲がり具合といった視覚的な特徴を共有することになります。
☝(0.5+0.3i)(z+1/z-2)+1のジュリア集合と、z^2-1/(4c^2)+1/(2c)のc=0.5+0.3iのジュリア集合
☝(0.7+0.7i)(z+1/z-2)+1のジュリア集合と、z^2-1/(4c^2)+1/(2c)のc=0.7+0.7iのジュリア集合
☝(-0.8+0.15i)(z+1/z-2)+1のジュリア集合と、z^2-1/(4c^2)+1/(2c)のc=-0.8+0.15iのジュリア集合
☝(0.9+0.4i)(z+1/z-2)+1のジュリア集合と、z^2-1/(4c^2)+1/(2c)のc=0.9+0.4iのジュリア集合ちなみにマンデルブロ集合は全く同じ形になります。
☝c(z+1/z-2)+1のマンデルブロ集合(z_0=-1)と、
z^2-1/(4c^2)+1/(2c)のマンデルブロ集合(z_0=0)実はこのような性質は既に紹介したf(1)=−1の関数にもあり、
・・・とすると、c(z+z1−2)−1はz21+γと位相共役になります。
f(1)=0
f(0)=∞なので、f(1)=0が成り立つならz0=1の数列は常に発散することになるので計算する必要が無くなります。
☝c(z+1/z-2)のマンデルブロ集合(z_0=-1)中央の円の内側をよく見ると、所々に灰色の丸い模様が見られます。
☝c=-0.2+0.4i付近前述の通りモザイク状の領域はznがカオスになる領域なのですが、何故この関数のマンデルブロ集合では斑点模様が現れ、何故同じくモザイク状領域のあるc(z+z1−2)−1では現れなのか、というのは今のところ謎です。
☝(0.7+0.7i)(z+1/z-2)のジュリア集合
☝(-0.7+0.7i)(z+1/z-2)のジュリア集合
☝(-0.3+0.94i)(z+1/z-2)のジュリア集合
☝(-0.88+0.22i)(z+1/z-2)のジュリア集合ジュリア集合に関しては、あまり目立った特徴はなさそうでした。
f(1)=f(-1)
f(1)=f(−1)が成り立つと、f(1)=−1のときと同じ理屈でz0=1の計算が要らなくなります。
しかし、f(z)=a(z+z1)+bとして方程式を立てるとa=0になってしまい、a=0だとf(z)は定数関数になってしまい面白くないので「解無し」として扱います。
なお、c(z+z1)+d型関数の臨界点が実質1個しかないと見做せる条件としては「f(−1)=−1」や「f(−1)=1」等もあります。
しかし、1と-1の入れ替えで同じになる条件(例えばf(−1)=−1とf(1)=1、f(−1)=1とf(1)=−1など)から生成される関数のジュリア集合・マンデルブロ集合は同じ見た目になるっぽいので省略していきます。
f(f(1))=-1
f(1)=−1と同じような、数列が合流してマンデルブロ集合が同じ形になるパターンです。
これまでに求めてきた関数を並べてみると、以下のようになります。
c(z+z1−2)−1
c(z+z1−2)+1
c(z+z1−2)
どの関数もa(z+z1)+bではなくa(z+z1−2)+bという形になっています。
こうなった理由は元々は「そのような形に整理でき、なおかつそうした方が見栄えが良かったから」というだけだったのですが、実はこの形にすると「f(1)が簡単な式になり、計算が少し楽になる」というメリットがあります。
というわけで、f(z)=a(z+z1−2)+bと置いてf(f(1))=−1を解いてみます。
f(f(1))+1=f(b)+1=a(b+b1−2)+b+1=0
a(b2+1−2b)+b2+b=0
aについて1次、bについて2次になったので、aについて解いてb=cとすることでf(z)=(−1−c2−2c+13c−1)(z+z1−2)+cという解が得られます。
☝(-1-(3c-1)/(c^2-2c+1))(z+1/z-2)+cのマンデルブロ集合(z_0=-1)今までのものとは大きく異なるシルエットのマンデルブロ集合になりました。
☝(-1-(3c-1)/(c^2-2c+1))(z+1/z-2)+cのc=-1.46+1.4iのジュリア集合
☝(-1-(3c-1)/(c^2-2c+1))(z+1/z-2)+cのc=0.26+0.5iのジュリア集合
☝(-1-(3c-1)/(c^2-2c+1))(z+1/z-2)+cのc=0.08のジュリア集合
☝(-1-(3c-1)/(c^2-2c+1))(z+1/z-2)+cのc=0.2+1.3iのジュリア集合ジュリア集合に関しては、あまり面白い特徴はなさそうです。(f(1)=−1のときと同じくz21+cのジュリア集合に似ている気がするのですが、関連性は見つけられませんでした)
f(f(1))=1
f(1)=1と同じような、数列が確定で収束するパターンです。
先程と同様にf(z)=a(z+z1−2)+bと置くことで、最終的にf(z)=c(z+z1−2)+1−c+11という解が得られます。
ちなみにf(z)=c(z+z1−2)+1という解もあるのですが、こちらはf(1)=1の解として既に紹介したものと同一です。
☝c(z+1/z-2)+1-1/(c+1)のマンデルブロ集合(z_0=-1)f(1)=1のものと似た、モザイク領域が無い円形のマンデルブロ集合ですが、f(1)=1のものには無かった網目状の模様が見られます。
☝c(z+1/z-2)+1-1/(c+1)のc=0.3iのジュリア集合
☝c(z+1/z-2)+1-1/(c+1)のc=-0.13+0.28iのジュリア集合
☝c(z+1/z-2)+1-1/(c+1)のc=-0.35+0.8iのジュリア集合
☝c(z+1/z-2)+1-1/(c+1)のc=-0.94+0.1iのジュリア集合実はこの関数、h(z)=−(2c+1)z+12+1、γ=(2c+1)38c(c+1)2とするとz2−1γ+1と位相共役になります。
「z2−1γ+1って何だよ、そんな関数知らねーよ」と思った人もいるかと思いますが、これは私が個人的に好きな関数の一つです。
z2−1c+1はジュリア集合もマンデルブロ集合も非常に特徴的で、私の記事の中でもことあるごとに触れています。
☝note上での「c/(z^2-1)+1」の検索結果ところで、最初に位相共役の説明をした時からずっと、h(z)をどうやって見つけたのか気になっている人もいると思います。
これに関しては上手い方法が思い付かず、かといって計算力でゴリ押しすることもできなかったので以下のような方法を使いました。
h1(x)=x+ab+dとし、グラフ描画ツールでh1−1(f(h1(x)))のグラフを描画する。
a、b、dの値を動かし、h1−1(f(h1(x)))のグラフがg(x)のグラフと似た形になるようなパラメータの組み合わせを見つける。
f2(x)=h1−1(f(h1(x)))、h2(z)=jx+kとし、h2−1(f2(h2(x)))がg(x)と同じ形になるようなj、kを求める。
h(z)=h1(h2(z))とする。
f(x)=c(x+x1−2)+1−c+11、g(x)=x2−1γ+1の場合、まず(a,b,d)=(0,1,1)とするとh1−1(f(h1(x)))のグラフが(cに依存せず常に)g(x)のグラフと似た形になりました。
☝g(x)のグラフこの値でh1−1(f(h1(x)))を計算すると(x−c)(x+c+1)c(c+1)2−c−1となり、これをf2(x)とします。
次にh2(z)=jx+kとしてh2−1(f2(h2(x)))を計算し、
分母がx2−1の定数倍になる
定数項が1になる
・・・という条件を満たすjとkの組み合わせを求めます。
そして最後にh1(h2(x))を計算すればh(x)が求まり、h−1(f(h(z)))を計算すればγも算出できます。
この方法(特に手順1)が上手くいく根拠は全く無かったので、3回連続で成功したのは私目線ではほぼ奇跡です。
f(f(1))=0
f(1)=0と同じような、数列が確定で発散するタイプです。
☝(-1-(2c-1)/(c^2-2c+1))(z+1/z-2)+cのマンデルブロ集合(z_0=-1)f(1)=0のときと同様に、モザイク状の領域の中に灰色の斑点が現れています。
☝(-1-(2c-1)/(c^2-2c+1))(z+1/z-2)+cのc=0.3+0.1iのジュリア集合
☝(-1-(2c-1)/(c^2-2c+1))(z+1/z-2)+cのc=-0.2+0.82iのジュリア集合
☝(-1-(2c-1)/(c^2-2c+1))(z+1/z-2)+cのc=-0.1+0.81iのジュリア集合ジュリア集合については特に面白い特徴はなさそうです。
f(f(1))=f(1)
f(1)=1やf(f(1))=1と同じような確定収束パターンですが、残念ながら紹介済みのものと異なる解はなさそうでした。
f(z)=a(z+z1−2)+bとしてf(f(1))−f(1)を計算すると、
f(f(1))−f(1)=f(b)−b=a(b+b1−2)=ba(b2+1−2b)=ba(b−1)2
・・・となり、f(f(1))−f(1)=0の解はa=0かb=1しかないようです。
また、f(f(1))=f(−1)も同様に既知の解しか存在しないようでした。
f(f(1))=f(f(-1))
☝(c/4-1/(4c))(z+1/z-2)+cのマンデルブロ集合(z_0=-1)巨大な楕円状の概形のマンデルブロ集合ですが、よく見ると真ん中に穴が開いていてドーナツ状になっています。
☝c=0付近ジュリア集合はこんな感じです。
☝(c/4-1/(4c))(z+1/z-2)+cのc=-1.9+0.1iのジュリア集合
☝(c/4-1/(4c))(z+1/z-2)+cのc=-1.9+0.1iのジュリア集合
☝(c/4-1/(4c))(z+1/z-2)+cのc=-1.9+0.1iのジュリア集合あまり目立った特徴はなさそうです。
☝(c/4-1/(4c))(z+1/z-2)+cのc=0.2+0.1iのジュリア集合
☝(c/4-1/(4c))(z+1/z-2)+cのc=0.1+4iのジュリア集合今までの例では紹介していませんでしたが、cがマンデルブロ集合の発散領域にあるときはこんな感じのジュリア集合になります。
この関数の場合、cが楕円の外側にあるときと内側の穴の中にあるかで目立った違いはなさそうです。
f(f(f(1)))=-1
関数の合成回数が多い条件になってくると、「方程式が複雑すぎてaとbをcについての有理関数として表せなくなる」という事態が発生します。
f(f(f(1)))=−1(f(z)=a(z+z1−2)+b)の場合、aとbの方程式にすると以下のようになります。
a(a(b−1)2+b2−b)2+(b2+b)(a(b−1)2+b2)=0
aについて3次、bについては4次という恐ろしい方程式になってしまい、置換や因数分解といった道具が通用しなかったので「解けない」と判断しました。
同様に、fの合成回数が3回までのものについては以下の4本が解けないものと判断しました。
f(f(f(1)))=1
f(f(f(1)))=0
f(f(f(1)))=f(f(−1))
f(f(f(1)))=f(f(f(−1)))
高次方程式については私は全くの素人(?)ですので、もしかしたらこの中に本当は解けるようなものが混ざっているかもしれません。
f(z)=b2−2b+1ab−b2(z+z1−2)+bと置いたりするとf(f(f(1)))=0とかはかなり惜しい感じになるので、良かったらぜひチャレンジしてみてください。
f(f(f(1)))=f(1)
こちらは既知の解と同じ物しか存在しないパターンです。
どうやら一般に、fn(1)=f(1)(fn(z)はf(z)のn重合成関数)はより合成回数の少ない条件式に対応する解しか持たないようです。
実際に、f(z)=a(z+z1−2)+bとするとfn(1)−f(1)は以下のように変形できます。
fn(1)−f(1)=a(fn−1(1)+fn−1(1)1−2)+b−b=fn−1(1)a(fn−1(1)−1)2
よって、fn(1)−f(1)=0はfn−1(1)−1=0、つまりfn−1(1)=1と同じ解しか持たないことがわかります。
これと同様に、fn(1)=f(−1)もfn−1(1)=−1と同じ解しか持たないようでした。
f(f(f(1)))=f(f(1))
f3(1)系の方程式の中で唯一残ったf(f(f(1)))=f(f(1))には、f(z)=c(z+z1−2)+1−c+12という解がありました。(f4(1)が出てくるものに関しては、新たな解は一つも見つけられませんでした)
☝c(z+1/z-2)+1-2/(c+1)のマンデルブロ集合(z_0=-1)中央の円の左端に謎の黒い丸がありますが、おそらく計算精度に関する不具合による描画ミスです。
☝c(z+1/z-2)+1-2/(c+1)のc=0.9iのジュリア集合
☝c(z+1/z-2)+1-2/(c+1)のc=-0.7+0.7iのジュリア集合
☝c(z+1/z-2)+1-2/(c+1)のc=0.6iのジュリア集合その他
今までのものと少し毛色の違う関数として、f(z)=c(z+z1)があります。
☝c(z+1/z)のマンデルブロ集合(z_0=-1)h(z)=−zとするとh−1(f(h(z)))=f(z)が成り立ち、さらにh(1)=−1も成り立っています。
よってznの挙動(収束・発散性や周期など)はz0=1とz0=−1のときで同じになり、マンデルブロ集合も同じ見た目になります。
☝c(z+1/z)のマンデルブロ集合(z_0=1)ジュリア集合はこんな感じです。
☝(0.04+0.22i)(z+1/z)のジュリア集合
☝(0.81+0.4i)(z+1/z)のジュリア集合赤がz0=1、緑がz0=−1と同じサイクルに収束する領域です。
ちなみに私のnoteのアイコン画像は(0.81+0.4i)(z+z1)のジュリア集合です。
☝(0.7+0.7i)(z+1/z)のジュリア集合
☝(0.95+0.31i)(z+1/z)のジュリア集合z0=±1の数列は必ずしも別々のサイクルに収束するわけではなく、同じサイクルに収束して1色のジュリア集合になることもあるようです。
☝(0.76+0.64i)(z+1/z)のジュリア集合
☝(-0.76+0.64i)(z+1/z)のジュリア集合
☝(0.5+0.51i)(z+1/z)のジュリア集合
☝(-0.5+0.51i)(z+1/z)のジュリア集合c=±x+iyのジュリア集合は収束領域の輪郭だけ見れば同じ形(鏡像)になっているようですが、色の別れ方は一致しないこともあるようです。
さて、この手の関数を求めるには今までのものとは少し違った計算が必要になります。
例として、f(z)=a(z+z1)+b、h(z)=jz+kとしてh−1(f(h(z)))=f(z)を満たすような関数の組み合わせを探してみます。
まずh−1(f(h(z)))=f(z)をf(h(z))=h(f(z))と変形し、両辺を展開します。
f(h(z))=f(jz+k)=a(jz+k+jz+k1)+b
h(f(z))=h(a(z+z1)+b)=aj(z+z1)+bj+k
それぞれz(jz+k)を掛けて分母を払います。
z(jz+k)(a(jz+k+jz+k1)+b)=z(a((jz+k)2+1)+b(jz+k))=z(a(j2z2+2jkz+k2+1)+bjz+bk)=z(aj2z2+(2ajk+bj)z+ak2+a+bk)=aj2z3+(2ajk+bj)z2+(ak2+a+bk)z
z(jz+k)(aj(z+z1)+bj+k)=(jz+k)(aj(z2+1)+z(bj+k))=(jz+k)(ajz2+(bj+k)z+aj)=aj2z3+(bj2+jk)z2+aj2z+ajkz2+(bjk+k2)z+ajk=aj2z3+(bj2+jk+ajk)z2+(aj2+bjk+k2)z+ajk
この2つが常に等しくなるためには、z3~z0までの係数が全て等しくなければなりません。
というわけで、以下のような連立方程式を解くことになります。
⎩⎨⎧2ajk+bj=bj2+jk+ajkak2+a+bk=aj2+bjk+k20=ajk
これの解法は省略しますが、最終的にh(z)もf(z)も定数関数にならず、なおかつh(1)=−1も成り立つような組み合わせは「f(z)=a(z+z1)、h(z)=−z」しか見つかりませんでした。
また、h(z)が1次関数ではなくz+jkz+lという形になるケースも計算してみたのですが、膨大な量の計算の末に1個も解が見つからなくてキレそうになりました。(他の所でのh(z)の計算で変なやり方をしていたのはこれが原因です)
他にもh(z)が2次関数のケースやf(f(h(z)))=h(f(f(z)))みたいな条件も考えられるのですが、条件を少し複雑にするだけで連立方程式の本数が急激に増えるので面白い解は見つからないんじゃないかと思います。
最後に
明日の日曜数学 Advent Calendar 2023の記事は、integers_blogさんの担当です。
本稿執筆時点(2023/12/02/1:39)での概要は「まずは登録することが大事」とのことですが、一体どんな記事になるんでしょうか?
追記(2023/12/05)
「解けそうで解けない」と紹介したf(f(f(1)))=0を解く(a,bをcの有理式で表す)ことに成功しました。
☝-(c^4/256-c^2/64+c/4+43/128-(192c^3+36c^2-81)/(256c^4))(z+1/z-2)+1+64c^3/(c^6-2c^5+3c^4-12c^3-9c^2-18c-27)のマンデルブロ集合(z_0=-1)
☝-(c^4/256-c^2/64+c/4+43/128-(192c^3+36c^2-81)/(256c^4))(z+1/z-2)+1+64c^3/(c^6-2c^5+3c^4-12c^3-9c^2-18c-27)のc=-1+0.9iのジュリア集合
☝-(c^4/256-c^2/64+c/4+43/128-(192c^3+36c^2-81)/(256c^4))(z+1/z-2)+1+64c^3/(c^6-2c^5+3c^4-12c^3-9c^2-18c-27)のc=-1.1+0.3iのジュリア集合
☝-(c^4/256-c^2/64+c/4+43/128-(192c^3+36c^2-81)/(256c^4))(z+1/z-2)+1+64c^3/(c^6-2c^5+3c^4-12c^3-9c^2-18c-27)のc=-0.8+1.9iのジュリア集合
☝-(c^4/256-c^2/64+c/4+43/128-(192c^3+36c^2-81)/(256c^4))(z+1/z-2)+1+64c^3/(c^6-2c^5+3c^4-12c^3-9c^2-18c-27)のc=0.5+1.3iのジュリア集合
☝-(c^4/256-c^2/64+c/4+43/128-(192c^3+36c^2-81)/(256c^4))(z+1/z-2)+1+64c^3/(c^6-2c^5+3c^4-12c^3-9c^2-18c-27)のc=0.6+0.9iのジュリア集合
☝-(c^4/256-c^2/64+c/4+43/128-(192c^3+36c^2-81)/(256c^4))(z+1/z-2)+1+64c^3/(c^6-2c^5+3c^4-12c^3-9c^2-18c-27)のc=0.5+1.2iのジュリア集合f(f(f(1)))=0を解くには、まずg(z)=b2(z+1)(a−b)(b+1)z2+bと置きます。
この式だけ見ると意味不明だと思いますが、これには以下のような意味があります。
まず、z+1az2+bという形の関数はa(z+z1−2)+bとよく似た関数で、例えばグラフを見比べてみるとほぼ同じ形をしています。
☝a(x+1/x-2)+bとax^2/(x+1)+bのグラフということは、a(z+z1−2)+b型関数の問題をz+1az2+bの問題に帰着させ、得られた解を元の問題の解に変換する、という事ができそうです。
a(z+z1−2)+bよりもz+1az2+bの方が式が短いので、a(z+z1−2)+bという形だと難しい問題でもz+1az2+bで考えれば難易度が下がるだろう、と考えました。
g(z)=z+1αz2+β、h(z)=z−1と置くとh−1(g(h(z)))=α(z+z1−2)+1+βとなるので、これをf(z)とします。
するとf(f(f(1)))=0という条件は、
f(f(f(1)))=h−1(g(h(h−1(g(h(h−1(g(h(1)))))))))=h−1(g(g(g(h(1)))))=g(g(g(0)))+1=0
・・・という風に書き換えることができます。
このままg(g(g(0)))を計算しようとしてもまだ式が複雑すぎるので、さらにもう一つ小細工をします。
α=b2(a−b)(b+1)、β=bとすると、g(g(0))は以下のようになります。
g(g(0))=g(0+1α×02+b)=g(b)=b2(a−b)(b+1)×b+1b2+b=a−b+b=a
このようにg2(0)が短い式になるので、g(g(g(0)))+1も少しは簡単になりそうです。
実際に計算してみるとg(g(g(0)))+1=(b+1)(b2(a+1)(a−b)a2+1)になりますが、b=−1だとb2(a−b)(b+1)=0になり最終的にf(z)が定数関数になってしまいます。
残りの部分を整理すると(a+1)b2−a2b+a3=0というbについての2次方程式になり、解の公式を使うとb=2a+2a2±−a3(3a+4)になります。
ここでa=−d2と置くと、
b=−2d2+2d4±d6(−3d2+4)=−2d2+2d4±d3−3d2+4
・・・と変形でき、あとは−3d2+4が何らかの有理式の2乗になればa,bを両方とも有理式で表せそうです。
最初の方で紹介した3次関数の記事でも同じ状況に何度も遭遇しており、対処法はそちらで紹介済みなので説明は省略します。
結果的にd=−c2+34cと置くことで−3d2+4=(cd+2)2となり、aとbをcの有理式で表す準備が整いました。
まとめると、
g(z)=z+1αz2+β
h(z)=z−1
f(z)=h−1(g(h(z)))=α(z+z1−2)+1+β
α=b2(a−b)(b+1)
β=b
b=2a+2a2±−a3(3a+4)
a=−d2
d=−c2+34c
・・・となり、bの符号で+を選んでひたすら代入と整理を行うとf(z)=−(256c4−64c2+4c+12843−256c4192c3+36c2−81)(z+z1−2)+1+c6−2c5+3c4−12c3−9c2−81c−2764c3という解が得られます。
ちなみに符号選択で-を選んだ場合はf(z)=−(256c4−64c2−4c+12843+256c4192c3−36c2+81)(z+z1−2)+1−c6+2c5+3c4+12c3−9c2+81c−2764c3という解になるのですが、実はこれはプラスの方の解のcを−cに置き換えただけの解です。
☝マイナスの方の関数のマンデルブロ集合マンデルブロ集合は180度回転した見た目になり、ジュリア集合もプラスの方と同じ見た目のものしか存在しないようです。