2021年04月01日の日記です


異世界転移の方法  2021-04-01 12:13:24  数学

たまには魔法使いらしく、異世界転移の魔法のことでも書こう。

ここは「魔法使いの森」だからね。



最初に転移魔法の術式から示してしまう。

今回の記事の目的は、この術式を解説することだから。


F(w) = ∫ f(t) e^(iwt) dt


まず、t は「この世界」を意味している。

具体的に言えば、時間によって変化していく世界。t は Time の意味だ。


転移後の世界は w で、これは「周波数」を意味している。

転移後の世界にはもはや時間はなく、周波数が支配する世界だ。


で、f(t) は転移させたいもの。F(w) が転移後の変化した姿。

この術式の主な目的は、「この世界」では強すぎて手も足も出ない敵を、転移させて よわよわ にして、その後で無双を楽しむことだ。



さて、転移の方法だが、術式に書かれた e^(iwt) というのが重要な部分だ。


この中で、t と w はすでに出てきた。時間と周波数だ。

並んで書かれているのは、この2つが密接な関係にあることを意味している。


というわけで、周波数の説明に移ろう。

すでに解っている人もいるかも知れないが、周波数とは「何かを繰り返すときの、一定時間での繰り返し回数」を意味している。

周波数の定義に時間が入っている。だから密接なのは当然で、不可分のものだ。


でも、並んで書く…掛け算を意味するのだけど、固定された w に対して、流れ続ける t をかけ合わせたら、結果の数は大きくなっていくだけだ。

周波数なのに「繰り返し」が出てこない。繰り返しはどこにあるのだろう。




ここで、e と i について説明する必要がある。この術式の最初の重要ポイントだ。

少し長くなるがお付き合いいただこう。


まず、i は √-1 のことだ。「自分自身を掛け合わせると、-1 になる数」だな。


i*i = -1 、と書き直すこともできる。でも、この数は普通は存在し得ない。

数には「同じものを掛け合わせると、必ずプラスになる」という性質があるためだ。


しかし、これは非常に都合が悪い。


我々の使う術式の体系は、完全性が求められる。

ある操作…ここでは √ という操作が決められたら、それは「すべての数」に適用できなくては完全とは言えない。


そこで、今まで知られていた数の体系を拡張し、「同じものを掛け合わせるとマイナスになる」という数を想定することにした。


それが i だ。虚数と呼ばれる。


…と、ここまで理解すると、当然次の疑問が出てくる。

√ は「完全性」を破綻させ、新たな数を想定する必要があった。


では、√i はどうなるのだろう。また破綻してしまうのではないか。


いや、幸いなことにそうではない。


i = ( (1+i) / √2 ) * ( (1+i) / √2 )


計算してみるとわかるが、この式は正しく、i を含む数の体系で √ は完全性を保つ。




1+i 、という形には、普通の数 1 と、虚数 i が入っている。

この形を、複素数と呼ぶ。

1 の部分を 2 , 3 と変化させられるように、i の部分も 2i , 3i というように変化させられる。


数は、直線上に表すことができる。これを数直線と呼ぶ。

しかし、虚数は数直線上には乗らず、独立した「虚数直線」を作る。


そして、複素数を表現するときは、数直線と虚数直線を直交させ、「複素数平面」を作る。


直交しているので、-1 と i は、0 を中心とした角度で言えば 90 度のところに位置する。


i = √-1


という式は、0 を中心に 90 度回転する操作なんだ。


先程 √i を複素数で示した。答えを複素数平面上に乗せると、回転が 45度になっていることがわかる。


√ によって、複素平面上で回転することができるんだ。




ここからは少し話を飛ばす。


√ を使えば、角度を半分づつ制御することができるが、もっと自由な角度に回転する方法が発見された。


e^(ix)


これで、角度が x のときの複素平面上の位置を計算できる。


ここで、e は「ネイピア数」と呼ばれるものだ。自然対数の底を意味する。


自然対数もまた面白い世界なのだが、ここでは詳細は扱わない。

話が長くなりすぎるからね。


今まで話に出てこなかった「自然対数」というものが急に顔を出してくるのは驚きなのだが、とにかくこれで自由な角度を示すことができるようになった。



さて、ここでやっと、最初の疑問に戻ることができる。

最初に書いた、異世界転移の術式をもう一度示そう。


F(w) = ∫ f(t) e^(iwt) dt


疑問は、wt は周波数…繰り返しを決めるもののはずなのに、掛け算だけでは大きくなる一方だ、ということだった。


その答えが、e^(iwt) 全体にある。

e^(ix) の形は、複素平面上で 0 を中心とした角度 x の位置にある、距離 1 の点を示すものだ。

簡単に言い換えれば x を変化させると「円を描く」。


円を描くのだから、当然繰り返しになる。wt は時間とともに大きくなるが、全体は繰り返すのだ。

このときの周波数は、w によって決まることになる。




この円こそが、異世界転移のための転移門となる、魔法陣だ。

魔法陣は円でなくてはならない。円は完全を意味するためだ。


もっとも、状況に応じて多少の装飾が行われる場合もある。

特定状況ではその方が効率が高まるためだが、今回は詳細に立ち入らない。


さて、魔法陣が描けたら、転移させたいものを魔法陣に載せる。

転移させたいものは、この世界 f(t) だった。


もう一度術式を示すと、


F(w) = ∫ f(t) e^(iwt) dt


魔法陣の隣に f(t) が並べられているのがわかる。


さて、ここでもう一度魔法陣に話を戻すと、これは複素平面上のものだ。

そのため、f(t) も複素平面に載る必要がある。


しかし、現実世界には虚数軸がない。


厳密にいえば、世界に虚数軸はあるのだ。

しかし、我々人間は、虚数軸方向の世界を感知することができない。

そのため、世界には虚数軸はないように思える。


こればかりは仕方がない。感じられないので、虚数軸は常に「0」でも入れておくことにしよう。

それでも複素平面に載りさえすれば大丈夫。


載せ方だが、術式の上では掛け算になっている。これは、ベクトルの内積を意味する。

内積は射影を意味するのだが…この理解が、異世界転移の術式の2番目のポイントとなる。




射影、「影がさす」というのはつまり、ある面の真上から光を当てたときに、別の面がどのような影を落とすか、という意味だ。


例えば、sin cos は、0 を中心とした、ある角度をもった長さ 1 の線に対して、座標軸に対する「射影」を求める操作になる。

意味が分かってもらえるだろうか?


これを、座標軸ではなく「2つの線」…ここでいう線というのはベクトルなのだが、原点を共有する2つのベクトルが作る射影が「内積」となる。


ここまではなんとなく理解できただろうか?

ここから、話はさらに飛んでいくので、いちいち立ち止まって理解しながら進んで欲しい。


さて、2つの線の長さが共に 1 である、という前提があった場合、内積は「同じ方向を向いているか」を示す指標となる。


直交する場合、内積は 0 になる。重なる場合、内積は 1 になる。

完全に逆方向を向いていると、-1 になる。


ここまでも大丈夫だろうか? 繰り返すが、理解しながら進んで欲しい。


さて、再び術式を振り返ろう。


F(w) = ∫ f(t) e^(iwt) dt


「世界」と「魔法陣」の内積を、∫ ~ dt で囲んでいる。

これは、「すべての t について計算し、足し合わせよ」という意味だ。


ここで、魔法陣は時間とともに、一定の速度でぐるぐる回る。

「世界」の側は、時間とともに変わるが無秩序だ。


無秩序ということは、内積は時間によっては 0 になったり 1 になったり、-1 になったりする。

いや、そんなわかりやすい値はめったになく、0.8256 だったり、-0.2429 だったり、とにかく無秩序だろう。


それらを全部足すと、おそらくプラスとマイナスが打ち消しあい、 0 になる。

厳密に 0 でなかったとしても、それに近い値になるだろう。

本当に無秩序なら、ね。


実際には、本当の無秩序というのはなかなかあるものではない。

いろいろな事象が重なり合ってわかりにくくはなっているが、世の中は波でできているのだ。


昔の偉大な魔法使いも、こんな言葉を残している、

プサイにファイ、世の中すべて波だらけ」と。


ともかく、魔法陣の周波数と、世界の周波数の重なりがあると、結果に秩序が現れる。

無秩序の場合は結果が 0 付近になるが、秩序があると十分に大きな値が返される。

このとき、値の大きさはその周波数成分の強さを意味する。


つまり、術式によって世界を形作る波の周波数は解析され、「特定の」周波数の成分の強さを知ることができる。


…ん? 特定の?




繰り返しになるが術式を示す。


F(w) = ∫ f(t) e^(iwt) dt


ここで、術式で得られる F(w) は、「特定の」w についてのものだ。

異世界に転移するには「すべての」 w について操作を行い、完全な F を作り出さなくてはならない。


これには多大な計算力が必要になる。

「すべての t を足し合わせる」という操作を「すべての w について」行う必要があるのだ。


ここでは深く扱わないが、FFT とか DCT という改良型の術式があって、それらを使うと劇的に計算量が減る。

でも、基本はここに書かれた術式だ。




さて、なんでこんなややこしい術式が必要かというと、異世界転移で無双するためだ。

最後にそれについて記しておこう。


世の中みんな波だらけなのだが、この波には傾向があることが知られている。

いわゆる、1/f ゆらぎ、という現象だ。名前を聞いたことがある人もいるかもしれない。


ここでいう f は、w / 2π のことで、w とだいたい同じものだ。


(厳密にいえば、f が周波数で w を角周波数という)



1/f ゆらぎとは、周波数と振幅の関係性を示すものだ。

これによれば、周波数が高いほど振幅が小さくなり、「些細なもの」になる傾向にある。


これが異世界転移の利点の一つ。

実世界の「波」のままでは何が何だかわからなかった敵でも、周波数にすると重要な部分が見えてくる。

重要でない場合は、ばっさばっさと切り捨ててしまおう。


残ったのは、大切な部分だけを残して、いらない部分を切り捨てたデータだ。

これはデータの圧縮にすごく役立つ。


音楽とか、動画とか、すごく大きいデータを驚くほど小さく圧縮するのには、こうした技術が活躍している。




楽器とか、人の声とか、いろいろな「音」には特定の周波数領域がある。

人の声に注目したいとき、それ以外の周波数はノイズだろう。


波のままでは、何がノイズなのか全くわからない。

しかし、周波数に分解すると、どこにノイズがあるのか見えてくる。


さらに、人の声でも個人によって音の高低はある。

しかし、発声する際に特定の「同時に出される周波数の比率」とか、「時間による周波数の上げ下げ」などはあり、これは個人の声の高低とは別に、ある程度の共通性がある。


こうした部分に注目すると、機械に音声を認識させることができる。

こちらも、波のままではとても処理できないのだが、周波数に分解すると処理できる。



いずれにしても、波というのは捉えどころがなくて、どう処理してよいかわからない。

これが周波数空間に転移すると、自由自在に扱えるようになる。


これが無双でなくて何であろう。


ちなみに、「完全12平均律から多少音程がずれたときに、補正してくれる」なんてソフトもある。

誰かの歌をそのソフトにかけると、周波数解析して、音程がずれているときには一番近い音に揃えて出力してくれるの。


音痴でも上手に聞こえる魔法のソフト、だな。

CD だと歌がうまいのに、LIVE だと…なんて人は ゴニョゴニョ。


もう 20 年以上前に、アメリカの歌手 Cher がこれを効果的な「エフェクト」として使って話題を呼び、世界的な大ヒット曲となった


元々歌がうまい人で、音痴補正はいらない。

でも、これで「滑らかに音程を変える」歌い方を処理すると、声が階段状にカクカクと変化する、非常に不思議な歌声になるのだ。


通称 Cher Effect。一時期使われすぎて食傷気味になって消えたのだけど、20年たってまた最近使われるようになっている、気がする。

(先日ラジオでこのエフェクトを使っている歌を聞いた)




さて、ここらへんで終了するが、一応エイプリルフールのネタだ。


術式自体は、フーリエ変換という数式で、これを使うと実世界のデータを周波数空間に変換できるのは事実。


先日、微分積分について書いたときに、最後に「フーリエ変換についても書きたかったけどやめた」と書いた。

その話はそれで終わりだったのだけど、今朝「今日は4月1日」と気づいたときに、このくだらないネタを書く好機だと思ったのだ。


ギャグは解説しすぎると面白くないので、細かな解説は省いた。


単に数学的な説明が面倒だった、ともいう。

そういう点でも、説明しないことの言い訳ができる今日は好機だった。



同じテーマの日記(最近の一覧)

数学

別年同日の日記

04年 呪われているのか?

09年 春眠暁を覚えず

14年 おかしな言語仕様

15年 ビッグエンディアンとリトルエンディアン(1980)

15年 エド・ロバーツ 命日(2010)

16年 卒園

23年 城ヶ島


申し訳ありませんが、現在意見投稿をできない状態にしています


戻る
トップページへ

-- share --

0000

-- follow --




- Reverse Link -