
数学において、アーノルドの猫マップは、トーラスからトーラス自身へのカオス的なマップであり、1960年代に猫の画像を使ってその効果を実証したウラジミール・アーノルドにちなんで名付けられました。[ 1 ]これは、双曲トーラス自己同型写像の単純で教育的な例です。
トーラスについて考える商空間としてアーノルドの猫マップは変換です :\mathbb {T} ^{2}\to \mathbb {T} ^{2}} は、 次の式で与えられます。
同様に、行列表記では、これは
つまり、正方形画像の幅に等しい単位を加えると、画像は1単位上にせん断され、次に2単位右にせん断され、その単位正方形の外側にあるものはすべて、正方形の内側に入るまで単位だけ後方にシフトされる。
この地図の名前は、アーノルドがアンドレ・アヴェズと共著した1967年の原稿『古典力学のエルゴード的問題』 [ 1 ]に由来しており、その原稿では、トーラス上での地図の作用を説明するために猫の輪郭が使用されていた。元の本では、ユーモラスな脚注が付けられていた。
動物保護協会は、この画像を含む複数の画像の複製を許可しています。
アーノルドの母国語であるロシア語では、この地図は「猫のオクロシカ(冷たいスープ)」(ロシア語:окрошка из кошки)として知られており、これは地図の混合特性に由来し、言葉遊びにもなっている。アーノルドは後に、英語や他の言語でこの地図が知られている「アーノルドの猫」という名前を「奇妙だ」と感じたと書いている。[ 2 ]


It is possible to define a discrete analogue of the cat map. One of this map's features is that image being apparently randomized by the transformation but returning to its original state after a number of steps. As can be seen in the adjacent picture, the original image of the cat is sheared and then wrapped around in the first iteration of the transformation. After some iterations, the resulting image appears rather random or disordered, yet after further iterations the image appears to have further order—ghost-like images of the cat, multiple smaller copies arranged in a repeating structure and even upside-down copies of the original image—and ultimately returns to the original image.
The discrete cat map describes the phase space flow corresponding to the discrete dynamics of a bead hopping from site () to site on a circular ring with circumference , according to the second order equation:
Defining the momentum variable , the above second order dynamics can be re-written as a mapping of the square (the phase space of the discrete dynamical system) onto itself:
This Arnold cat mapping shows mixing behavior typical for chaotic systems. However, since the transformation has a determinant equal to unity, it is area-preserving and therefore invertible, the inverse transformation being:
For real variables and , it is common to set . In that case a mapping of the unit square with periodic boundary conditions onto itself results.
When is set to an integer value, the position and momentum variables can be restricted to integers and the mapping becomes a mapping of a toroidial square grid of points onto itself. Such an integer cat map is commonly used to demonstrate mixing behavior with Poincaré recurrence utilising digital images. The number of iterations needed to restore the image can be shown never to exceed .[5]
For an image, the relationship between iterations could be expressed as follows:
importosfromPIL.Imageimportopenasload_pic,newasnew_picdef main ( path , iterations , keep_all = False , name = "arnold_cat- {name} - {index} .png" ): """ パラメータ path:str 写真のパス iterations:int 計算する反復回数 name:str ファイル名のテンプレートとして使用するフォーマット可能な文字列 """ title = os . path . splitext ( os . path . split ( path )[ 1 ])[ 0 ] counter = 0 while counter < iterations : with load_pic ( path ) as image : dim = width , height = image . size with new_pic ( image . mode , dim ) as canvas : for x in range ( width ): for y in range ( height ): nx = ( 2 * x + y ) % width ny = ( x + y ) % heightcanvas.putpixel (( nx , height - ny - 1 ) , image.getpixel ( ( x , height - y - 1 ) ) )if counter > 0 and not keep_all : os.remove ( path ) counter + = 1 print ( counter , end = " \ r " ) path = name.format ( name = title , index = counter ) canvas.save ( path )キャンバスを返すif __name__ == " __main__" : path = input ( "画像のパスを入力してください: \ n\t " ) while not os.path.exists ( path ) : path = input ( "選択した画像が見つかりませんでした。もう一度お試しください: \n\t " ) result = main ( path , 3 ) result.show ( )