系ファイルの書き方
試すページで「系ファイル(自分で書く)」を選ぶと、自分の系を短いテキストで書いて問える。「ひな形」で例題の系ファイルを読み込み、それを書き換えて始めるのが早い。
いちばん簡単な例
# Lyness 型の写像
name: Lyness type
vars: x, y
params: a = 3, b = 2
map:
x' = y
y' = (a + b*y)/x
| 行 | 意味 |
|---|---|
# から行末 |
コメント |
name: |
系の名前(省略できる) |
vars: |
状態の変数。状態はこの順に並べる(s に 2, 5 と入れると x = 2、y = 5) |
params: |
パラメータ(有理数)。試すページの「パラメータの上書き」(例:a = 5, b = 3)で値を変えられる |
map: |
1 歩の式。変数ごとに x' = … と書く。x' は 1 歩後の x |
式の書き方
- 使えるもの:数(分数は
/で書く)、変数、パラメータ、+ - * /、べき^(または**。指数は 0 以上 64 以下の整数)、かっこ。 - 式は書いたとおりに計算する。分母が 0 になるところでは式が定義されず、そこに来た軌道は途切れる(その状態は正則でない)。
sqrt(c)で定数 c の平方根が書ける(変数は入れられない)。有限体ごとに求め、平方根がない素数ではその系は使えない。- 約せる式は、約した形で書く。展開して大きな共通因子を残すと、検査は正しく終わるが、数秒ではなく数分かかることがある。
1 歩の与え方
次のどれか 1 つを使う。
| 書き方 | 1 歩 |
|---|---|
map:(inverse: も書ける) |
式で書いた有理写像。逆向きの式 inverse: は省略でき、省略すると Structure Computer が求めて記録する。書いた場合は、それが本当に逆になっているかを Q1 が答える |
field: と kahan: h = … |
2 次のベクトル場(dx/dt = … または x' = … と書く)を、刻み h の Kahan の方法で離散化した 1 歩 |
use: 名前 |
既知の系を名前で使う。パラメータは params: で与える。名前は下の表のとおり |
generator 名前: を複数 |
いくつかの写像(生成元)を持つ系。1 つについて問うときは、試すページの「生成元」に名前を入れる |
potential: と alpha: |
ポテンシャルから決まる測地線を離散化した 1 歩。状態は前の点と今の点の組 (x, x')。ポテンシャルには log も書ける |
lagrangian: L = … |
変数とその 1 歩後(x')で書いた離散ラグランジアンから決まる 1 歩。状態は (x, x') |
ベクトル場を Kahan の方法で離散化する例(Euler のコマ)
name: Euler top
vars: x1, x2, x3
params: a1 = 1, a2 = 2, a3 = -3
field:
dx1/dt = a1*x2*x3
dx2/dt = a2*x3*x1
dx3/dt = a3*x1*x2
kahan: h = 1/2
既知の系を名前で使う例
name: Lyness by name
use: lyness
params: a = 3
use: に書ける名前は次のとおり。
| 名前 | 系 |
|---|---|
lyness |
Lyness 写像 |
kahan-euler |
Euler のコマ(Kahan の方法) |
oscillator |
振動子 |
e2 |
双曲面上の離散測地線(E2) |
lyness-type |
Lyness 型 |
lyness-rev |
Lyness 型の逆向き |
linear |
行列式 1 の線形写像 |
parabolic |
放物型の平行移動 |
translation |
平行移動 |
生成元を 2 つ持つ例
name: two generators
vars: x, y
generator r:
x' = -y
y' = x
generator s:
x' = x + y^2
y' = y
potential: と lagrangian: の例は、例題の系ファイルの「E2 geodesic」「discrete oscillator」「quartic midpoint」にある(試すページの「ひな形」でも選べる)。
対称性の宣言(Q6 に必要)
Q6(ホロノミー)は、系ファイルで対称性を宣言したときだけ答える。
name: rational rotation
vars: x, y
map:
x' = (3*x - 4*y)/5
y' = (4*x + 3*y)/5
symmetry:
so: x^2 + y^2
so:に 2 次形式を書くと、それを保つ回転の群を対称性として宣言する。群は、状態の 2〜4 個の座標のまとまりごとに作用する。linear: [[0, -1], [1, 0]]のように、行列で線形の対称性も宣言できる。Q6 が使うのはso:のほうである。
既知の族として見抜かれる系
次の形の系は既知の族として見抜かれ、大きい q でも軌道をたどらずに、定理にもとづいて答える。
(x, y) ↦ (y, (a + b y)/x):Lyness 写像(b = 1)と Lyness 型(x, y) ↦ ((a + b x)/y, x):その逆向き(x, y) ↦ (p x + q y, r x + s y)、ps − qr = 1:行列式 1 の線形写像(振動子を含む)- ベクトル場
(c1 x2 x3, c2 x3 x1, c3 x1 x2)の Kahan 離散化:Euler のコマ
Lyness 写像、不動点を持つ行列式 1 のアフィン写像、Euler のコマは、アフィンな座標の取り替え(x ↦ Mx + c)をしてから書いても見抜かれる。どの場合も、式が定義されない場所まで族と同じであることが条件で、余分な因子で割っていると別の系として扱う。
見抜かれない系は、歩く上限まで軌道をたどって答える。既知の族として扱ってほしくないときは、試すページで「既知の族として認識しない」を選ぶ。
試すページでの手順
- 「系ファイル(自分で書く)」を選ぶ。
- 「ひな形」から近い例題を選ぶか、白紙から書く。
- 必要なら「パラメータの上書き」と「生成元」を入れる。
- 状態 s、t と体を入れて「全部計算する」を押す。
書き間違いがあると、カードにエラーとして理由が出る。