どうも、108Hassiumです。
この記事は周期発散関数に関する記事の第3弾です。
穴の正体
前回と前々回の記事では、「周期発散関数のジュリア集合の穴の形状」と「普通のジュリア集合の収束領域の形状」の関連性について触れました。
☝関係の例:3周期発散関数のジュリア集合の穴は
3周期ジュリア集合の収束領域の形状と似ているまた、以下の記事では3周期発散関数の「新種」について触れ、それもまた収束領域と対応付けられるという話をしました。
実は、これ系の話題の本質のような話が以下の記事に出てきています。
この記事では、以下のような話が出てきます。
f(z)とg(z)について、g(z)=h−1(f(h(z)))が成り立つようなh(z)が存在するとき、「f(z)とg(z)は位相共役である」という。
f(z)とg(z)が位相共役である場合、f(z)とg(z)のジュリア集合は発散・収束の速度、領域の繋がり方、尖り具合や曲がり具合といった様々な特徴が一致する。
※本来はh(z)とh−1(z)が連続写像でないと位相共役とは言えないらしいですが、面倒なので今回は気にしないことにします。
そして、a(z+z1)+bという形の有理関数の中にz2−1c+1(2周期発散関数)と位相共役なものが存在することを紹介しました。
☝c/(z^2-1)+1と位相共役なa(z+1/z)+b型関数のジュリア集合の例上の画像を見ると確かに2周期発散関数のジュリア集合にそっくりなのですが、2周期発散関数における発散領域に見える部分は実は2周期の収束領域になっています。
どうやら、n周期発散関数f(z)に対してh(z)を上手く選ぶことで、h−1(f(h(z)))を「f(z)のジュリア集合とそっくりだが、穴の部分がn周期の収束領域に置き換わったジュリア集合を持つ関数」にできるようです。
ピンとこない人もいると思うので、別の例を挙げます。
まず、−z2−1c3−c2−c+1+cという3周期発散関数があります。
☝-(c^3-c^2-c+1)/(z^2-1)+cのマンデルブロ集合ジュリア集合はこんな感じで、c→1→∞→cという発散サイクルを持ちます。
☝-(c^3-c^2-c+1)/(z^2-1)+cのc=1.4+0.6iのジュリア集合この関数をf(z)とし、さらにh(z)=z+11として、h−1(f(h(z)))のジュリア集合を描画してみるとこうなります。
☝h^{-1}(f(h(z)))のc=1.4+0.6iのジュリア集合白っぽい領域が元のジュリア集合の収束領域に対応する領域で、黒いのはc1−1→0→−1→c1−1という3周期のサイクルに対応する収束領域です。
このc1−1→0→−1→c1−1というサイクルは元の関数の発散サイクルの値にh−1(z)を適用した値でできており、f(z)の発散領域が共役変換により収束領域に変換されたことを表しています。
また、これと逆の操作を行うこともできます。
まず、f(z)=z2−12+1.3+1.46iのジュリア集合はこんな形をしています。
☝2/(z^2-1)+1.3+1.46iのジュリア集合白い領域がz0=0の収束先である6周期の領域で、その他のカラフルな領域がz0=1.3+1.46iに対応する領域です。
z0=0の収束先である6周期サイクルの中身の1つをdとし、h(z)=z1+dとするとh−1(f(h(z)))のジュリア集合はこうなります。
☝h^{-1}(f(h(z)))のジュリア集合6周期の収束領域が発散領域になり、h−1(f(h(z)))は6周期発散関数になりました。
これらが表すのは、周期発散関数の穴と収束領域は実質ほとんど同じような存在であるということです。
3周期発散関数の穴が(少なくとも)3種類あるのは3周期の収束領域が3種類あるのと同じことですし、より一般に収束領域がある特徴を持てば似た特徴の穴を持つ周期発散関数が存在するはずです。
ところで、周期発散関数の見た目の特徴と言えばもう一つ別の話がありました。
周期発散関数の発散領域の模様にはz2−1c+1や−z2−1c3−c2−c+1+cのような網目状のものだけでなく糸状のものがあり、そういった特徴が「極の位数」と結びついているのではないか、という話です。
☝糸状の模様のある2周期発散ジュリア集合の例位数nの極は共役変換により多重度n−1の臨界点に変化させられるのですが、多重度n−1の臨界点があることと収束領域の境界線が糸状になることに関係があるのかはよくわかっていません。
1次型3周期発散関数
突然ですが、新たな用語を一つ定義します。
n周期発散関数のうち、fn(z)の次数が1になるようなものを「1次型」のn周期発散関数と呼ぶことにします。
前々回の記事では周期発散関数の定義に1次型のものを含んでおらず、前回の記事で定義を拡張して1次型を含めるように変更し、そのうえで「1次型の3周期発散関数を見つけるのは難しい」という話をしました。
そして、つい最近になってようやく1次型3周期発散関数の無限族を簡単に見つける方法を発見したので紹介したいと思います。
まず、f(z)=a(z1−z−bc2)+dと置きます。
この形の関数には、以下のような特徴があります。
式変形すると分母が2次になる。
臨界点が2個あり、それらが有理式で表せる。
次に、f(z)が以下のような発散サイクルを持つように係数を決めます。
f(b)=∞
f(∞)=d
f(d)=b
上2つの式は特別な条件が無い限り勝手に満たされるので、最後の方程式だけを解きます。
f(d)=a(d1−d−bc2)+d=d(d−b)a(d−b−c2d)+d=b
aについて解けそうな見た目になったので、解きます。
a=c2d−d+bd(d−b)2
これをf(z)に反映させてDesmosでグラフを描画すると、ちゃんと1次型3周期発散関数になっていることが確認できます。
b,c,dを変化させると、f3(z)のグラフの形状は以下のように変化するようでした。
bを動かすと、∣b∣が小さい場合傾きは不規則に変化するが、ある程度大きくなると0に収束していく。
cを動かすと、b,dの値との組み合わせ次第で1次型でなくなる値がいくつか存在することがあるが、c=±1だとb,dに関係なく必ず1次型ではなくなる。
dを動かすと、bを動かしたときと同様に傾きが不規則に変化するが、∣d∣→∞での傾きの収束先はb,cによって変化する(1を下回ることはなさそう)っぽい。
というわけで、とりあえずb=1,c=2として、マンデルブロ集合を描画するとこんな感じになりました。
☝(c^3-2c^2+c)/(3c+1)(1/z-4/(z-1))+cのマンデルブロ集合(z_0=1/3)
☝(c^3-2c^2+c)/(3c+1)(1/z-4/(z-1))+cのマンデルブロ集合(z_0=-1)前回紹介したものと似たような形になりました。
cを3に変えるとこんな感じになります。
☝(c^3-2c^2+c)/(8c+1)(1/z-9/(z-1))+cのマンデルブロ集合(z_0=0.25)
☝(c^3-2c^2+c)/(8c+1)(1/z-9/(z-1))+cのマンデルブロ集合(z_0=-0.5)ちなみに、以前紹介した5c+4c+1(z1−cz−2c−14c)+c1+1という関数は、途中までは同じ方法を使って見つけたものです。
☝((c+1)/(5c+4))(1/z-4c/(cz-2c-1))+1/c+1のマンデルブロ集合(z_0=1/(3c)+1/3)f(d)=bをaについて解いた後、aを簡単な式にするためにb=d+1としています。
そしてc=2にするのは同じですが、最後に残ったdをそのままc(このcはc=2のcとは別)に書き換えずにd=c1+1と書き換えます。
この書き換えにより、無限遠までずっと伸びている形のマンデルブロ集合が有限のサイズに収まるようになります。
ところで、1次型の周期発散関数で遊ぶにはfn(z)の傾き(無限遠点での微分係数)を気にする必要があります。
2周期の場合は傾きを手計算で求めることができ、3周期の場合もグラフを見て大きさを評価できたのですが、一方で3周期の場合の傾きの厳密値を求められるようなケースはまだ見つかっていません。
前回紹介した数列を用いれば理論上は求められるのですが、実際に試したところあまりにも面倒臭すぎるので断念しました。
というわけで、もう少しマシ(に見えるけど実際は上手くいかない)な方法を紹介します。
まず、f3(z)を合成関数の微分公式だけで展開します。
f(f(f(z)))′=f′(f(f(z)))×(f(f(z))′)=f′(f(f(z)))×f′(f(z))×f′(z)
展開し終わったら、f(z)を求めるのに使った発散サイクルの式を使用してf(f(f(∞)))′を計算します。
※f(z)は0次の有理関数なので、f′(∞)=0です。
f(f(f(∞)))′=f′(f(f(∞)))×f′(f(∞))×f′(∞)=f′(f(d))×f′(d)×0=f′(b)×f′(d)×0=∞×f′(d)×0
f′(d)は有限の値になりますが、残りの部分が∞×0なのでこれ以上計算できません。
z→∞limf′(z)の収束とz→∞limf′(f(f(z)))の発散の速度がそれぞれ評価できればいいのですが、私には無理でした。
5周期発散関数を求めて
前回の記事では5周期発散関数について「求められそうな方法を発見したが、面倒臭いので試してはいない」と書いたのですが、実は前回紹介した方法には欠陥がありました。
前回の記事の投稿後に色々と改善策を探したのですが、未だに「臨界点が有理式で表せる有理係数5周期発散関数」の具体例は見つけられていません。
※先に紹介した共役変換を利用した方法では係数が有理式にならない(例として使用した画像では近似値を使用)ので論外です。
というわけで、失敗したアプローチの例をいくつか紹介します。
まず、前回紹介した「ラグランジュ補完みたいな方法」を試します。
まず、f(z)=(z−a)(z−b)(z−c)d(z−g)(z−h)+j(z−g)(z−k)+m(z−h)(z−k)+gとします。
この場合、以下のような発散サイクルを持たせられそうです。
f(a)=∞
f(∞)=g
f(g)=h
f(h)=k
f(k)=a
最初の2本の式は自然に成り立つので、下の3本を連立方程式として解きます。
⎩⎨⎧(g−a)(g−b)(g−c)m(g−h)(g−k)+g=h(h−a)(h−b)(h−c)j(h−g)(h−k)+g=k(k−a)(k−b)(k−c)d(k−g)(k−h)+g=a
d、j、mについて解くとこうなります。
d=(k−g)(k−h)(a−g)(k−a)(k−b)(k−c)
j=(h−g)(h−k)(k−g)(h−a)(h−b)(h−c)
m=−g−k(g−a)(g−b)(g−c)
次に、臨界点に関する条件を決めるためにf(z)を微分します。
f(z)′=(z3−(a+b+c)z2+(ab+bc+ac)z−abc(d+j+m)z2−(dh+dg+jg+jk+mh+mk)z+dgh+jgk+mhk+g)′=(z3−(a+b+c)z2+(ab+bc+ac)z−abc)2(2(d+j+m)z−dh−dg−jg−jk−mh−mk)(z−a)(z−b)(z−c)−((d+j+m)z2−(dh+dg+jg+jk+mh+mk)z+dgh+jgk+mhk)(3z2−2(a+b+c)z+ab+bc+ac)
はい、もう無理です。
これを整理して分母=0(4次方程式)の解が有理式になるような条件を見つけるとか、正気の沙汰ではありません。
というわけで、もう少しマシな方法を考えました。
まず、f(z)=(z−a)(b(z−c)(z−d)+g(z−d)(z−h)+j(z−h)(z−c))1+cと置きます。
この場合、以下のような発散サイクルを持たせられそうです。
f(a)=∞
f(∞)=c
f(c)=d
f(d)=h
f(h)=a
⎩⎨⎧g(c−a)(c−d)(c−h)1+c=dj(d−a)(d−h)(d−c)1+c=hb(h−a)(h−c)(h−d)1+c=a
b=(a−c)(h−a)(h−c)(h−d)1
j=(h−c)(d−a)(d−h)(d−c)1
g=−(c−a)(c−d)2(c−h)1
f(z)を微分します。
f′(z)=(z−a)2(b(z−c)(z−d)+g(z−d)(z−h)+j(z−h)(z−c))2b(z−c)(z−d)+g(z−d)(z−h)+j(z−h)(z−c)+(z−a)(b(2z−c−d)+g(2z−d−h)+j(2z−h−c))=(z−a)2(b(z−c)(z−d)+g(z−d)(z−h)+j(z−h)(z−c))2(b+g+j)z2−(bc+bd+gd+gh+jh+jc)z+bcd+gdh+jhc+(z−a)((2b+2g+2j)z−bc−bd−gd−gh−jh−jc)=(z−a)2(b(z−c)(z−d)+g(z−d)(z−h)+j(z−h)(z−c))23(b+g+j)z2−2(bc+bd+gd+gh+jh+jc+ab+ag+aj)z+bcd+gdh+jhc−abc−abd−agd−agh−ajh−ajc
めちゃくちゃ長い式になりましたが、bcd+gdh+jhc−abc−abd−agd−agh−ajh−ajc=0が成り立てば分子=0の解の一つがz=0になり、残りの解も有理式で表せるようになりそうです。
bcd+gdh+jhc−abc−abd−agd−agh−ajh−ajc=(cd−ac−ad)b+(dh−ad−ah)g+(hc−ah−ac)j=(a−c)(h−a)(h−c)(h−d)(cd−ac−ad)−(c−a)(c−d)2(c−h)(dh−ad−ah)+(h−c)(d−a)(d−h)(d−c)(hc−ah−ac)=0
分母の次数を下げるために、d=c−k、h=c−mと置いてみます。
(a−c)(h−a)(h−c)(h−d)(cd−ac−ad)−(c−a)(c−d)2(c−h)(dh−ad−ah)+(h−c)(d−a)(d−h)(d−c)(hc−ah−ac)=(a−c)(c−m−a)(c−m−c)(c−m−c+k)c(c−k)−ac−a(c−k)−(c−a)(c−c+k)2(c−c+m)(c−k)(c−m)−a(c−k)−a(c−m)+(c−m−c)(c−k−a)(c−k−c+m)(c−k−c)(c−m)c−a(c−m)−ac=−m(k−m)(a−c)(c−a−m)c2−ck−2ac+ak−k2m(c−a)c2−cm−ck+km−2ac+ak+am+km(c−a−k)(m−k)c2−cm−2ac+am=0
分母を払ってaとcの2次式になればパラメータ解が求められそうなのですが、どう見ても3次以上になりそうです。
Desmosで確認してみたところ、こうなりました。
☝a=x,c=y,m=3としてkを動かしたときのグラフいかにもどうしようもなさそうな感じが見て取れます。
次に、d=kc、h=mcという変換を試してみます。
(a−c)(h−a)(h−c)(h−d)cd−ac−ad−(c−a)(c−d)2(c−h)dh−ad−ah+(h−c)(d−a)(d−h)(d−c)hc−ah−ac=(a−c)(mc−a)(mc−c)(mc−kc)kc2−ac−kac−(c−a)(c−kc)2(c−mc)kmc2−kac−mac+(mc−c)(kc−a)(kc−mc)(kc−c)mc2−mac−ac=c(a−c)(mc−a)(m−1)(m−k)kc−a−ka−c2(c−a)(1−k)2(1−m)kmc−ka−ma+c2(m−1)(kc−a)(k−m)(k−1)mc−ma−a
こっちもダメそうです。
ちなみにd=c−kやd=kcという式はどこから来たのかというと、元はb+g+j=0という方程式を解こうとしていた時に思い付いた手法でした。
b+g+j=0が成り立つとf′(z)の分子の次数が下がるのですが、実際に解いてみるとaとcの2次式に帰着させることはできるもののそこから大どんでん返しが発生して結局パラメータ解は求りませんでした。
また、そもそもb+g+j=0が成り立つとf(z)の分母の次数が2次に下がってしまい、分母を3次にした意味がなくなってしまいます。
分母が2次の場合も色々と試行錯誤して、ようやく解に辿り着いたと思いきやf5(z)=zになってしまった、というオチを踏んでしまって挫折しました。