Annotation of OpenXM/src/k097/debug/toric0.txt, Revision 1.1.1.1
1.1 maekawa 1: (yacc/debug/toric0.k, 1997, 4/8)
2:
3: << 以下で yacc/debug/toric0.k の使い方を説明します. >>
4:
5:
6: Q. 行列 A で定義される affine toric variety の生成元を計算したい.
7:
8: A. [1] A = \matrix{1&1&1&1\cr
9: 0&1&0&1\cr
10: 0&0&1&1\cr} の時の例を示します.
11: 次のような内容のファイルを作ります.
12: 名前を, a24.k としましょう.
13:
14: load("debug/toric0.k");
15: A = [[1,1,1,1],[0,1,0,1],[0,0,1,1]];
16: ans = toric(A);
17:
18: [2] k0 を起動します.
19:
20: k0
21:
22: [3] いくつかメッセージが表示されて, k0 のプロンプト In[??]=
23:
24: 省略
25: Overloaded on pushVariables and popVariables.
26: ctrl-C signal is caught in KSexecuteString() and <<Warning>>
27: is regarded as an error.
28: In[3]=debug/asir0.k you need to start k0 with -f option.
29: In[4]=In[5]=
30:
31: がこのようにでたら,
32:
33: load("a24.k");
34:
35: とします. a24.k がロードされ, 関数 toric が実行されて
36: 結果が表示されます.
37:
38: [4] 画面に, いくつかメッセージが表示された後に,
39:
40: ---------- generators of the toric ideal are -----
41: [ -z[2]*z[1]+z[3]*z[0] ]
42:
43: と表示されたら計算が終了です. 上の元が, affine toric variety の
44: (イデアルの)生成元です. この場合には一つしかありません.
45:
46: [5] 計算結果は変数 ans にもはいっています.
47: (ans = toric(A) と代入しているから.)
48:
49: ans :
50:
51: と入力すれば次のように ans の内容を表示してくれます.
52:
53: In[7]=ans :
54: [ -z[2]*z[1]+z[3]*z[0] ]
55: In[8]=
56:
57: [6] ans の中身を ファイルにセーブしたい場合は,
58:
59: Save(ans);
60:
61: と入力して下さい. sm1out.txt にセーブされます.
62: すでに, sm1out.txt が存在する場合は, ans が追加してかきこまれます.
63:
64: [7] quit(); と入力すると k0 を終了します.
65:
66: [注意事項] 行列 A の要素は, 負のものを含んではいけません.
67: [注意事項] 環を定義したときの変数の最大個数は, 100 です.
68: 作業用の変数もありますので, 行列 A の縦と横のサイズの和が
69: 100 に近付いたらもう計算できません.
70:
71:
72: Q. A-超幾何方程式の Fourier 変換の計算法.
73:
74: A.
75: [1] A = \matrix{1&1&1&1\cr
76: 0&1&0&1\cr
77: 0&0&1&1\cr} の時の例を示します.
78: 次のような内容のファイルを作ります.
79: 名前を, i24.k としましょう.
80:
81: load("debug/toric0.k");
82: fff = ["z[0]*Dz[0]+z[1]*Dz[1]+z[2]*Dz[2]+z[3]*Dz[3]-z[5]",
83: " z[1]*Dz[1] +z[3]*Dz[3]-z[6]",
84: " z[2]*Dz[2]+z[3]*Dz[3]+z[7]",
85: "z[0]*z[3]-z[1]*z[2]"];
86: ans = zindicial(fff,4,3);
87:
88:
89: A-超幾何方程式 の toric part
90: "z[0]*z[3]-z[1]*z[2]"
91: は, 関数 toric で計算しておいたものを使います.
92:
93: 方程式の変数は必ず, z[i], Dz[i] (i は 0 から) を使います.
94: z[i] が空間変数, Dz[i] が, 微分変数です.
95: 式を " でかこむことを忘れないで下さい.
96:
97: ans = zindicial(fff,4,3);
98:
99: 4 は Dz[i] の現れる最大 index +1 です. 今の場合, Dz[3] が最後の
100: 微分変数ですから, 4 な訳です.
101: n = Dz[i] の現れる最大 index +1
102: とおくとパラメータはかならず,
103: z[n+1], ..., z[n+m] で与えます.
104: ここで, m はパラメータの個数です.
105: 今の場合, z[5],z[6],z[7] がパラメータです.
106: この m,n を用いると, zindicial は
107: ans = zindicial(fff,n,m);
108: とよぶことになります.
109:
110:
111: [2] k0 を起動します.
112:
113: k0
114:
115: [3] いくつかメッセージが表示されて, k0 のプロンプト In[??]=
116:
117: 省略
118: Overloaded on pushVariables and popVariables.
119: ctrl-C signal is caught in KSexecuteString() and <<Warning>>
120: is regarded as an error.
121: In[3]=debug/asir0.k you need to start k0 with -f option.
122: In[4]=In[5]=
123:
124: がこのようにでたら,
125:
126: load("i24.k");
127:
128: とします. a24.k がロードされ, 関数 zindicial が実行されて
129: 結果が表示されます.
130:
131:
132: Q. 結果を因数分解したい.
133:
134: A. save してから, 他の数式処理システムで因数分解して下さい.
135:
136: もし, asir がインストールしてあれば,
137: k0 -f
138: と -f オプションをつけて k0 を起動しておくことにより, 関数
139: Factor
140: で因数分解ができます.
141:
142:
143:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>