[BACK]Return to toric0.txt CVS log [TXT][DIR] Up to [local] / OpenXM / src / k097 / debug

File: [local] / OpenXM / src / k097 / debug / toric0.txt (download)

Revision 1.1.1.1 (vendor branch), Fri Oct 8 02:12:16 1999 UTC (24 years, 8 months ago) by maekawa
Branch: OpenXM, MAIN
CVS Tags: maekawa-ipv6, R_1_3_1-2, RELEASE_20000124, RELEASE_1_3_1_13b, RELEASE_1_2_3_12, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, RELEASE_1_1_3, RELEASE_1_1_2, KNOPPIX_2006, HEAD, DEB_REL_1_2_3-9, ALPHA
Changes since 1.1: +0 -0 lines

o import OpenXM sources

(yacc/debug/toric0.k,  1997, 4/8)

<< 以下で yacc/debug/toric0.k の使い方を説明します. >>


Q. 行列 A で定義される affine toric variety の生成元を計算したい.

A. [1] A = \matrix{1&1&1&1\cr
                   0&1&0&1\cr
                   0&0&1&1\cr} の時の例を示します.
       次のような内容のファイルを作ります.
       名前を, a24.k としましょう.

       load("debug/toric0.k");
       A = [[1,1,1,1],[0,1,0,1],[0,0,1,1]];
       ans = toric(A);

   [2]  k0 を起動します.

      k0

   [3] いくつかメッセージが表示されて, k0 のプロンプト In[??]=

             省略
       Overloaded on pushVariables and popVariables.
       ctrl-C signal is caught in KSexecuteString() and <<Warning>> 
       is regarded as an error.
       In[3]=debug/asir0.k    you need to start k0 with -f option. 
       In[4]=In[5]=

       がこのようにでたら,

       load("a24.k");

       とします.  a24.k がロードされ, 関数 toric が実行されて
       結果が表示されます.

   [4] 画面に, いくつかメッセージが表示された後に,

        ---------- generators of the toric ideal are ----- 
        [    -z[2]*z[1]+z[3]*z[0] ] 
 
       と表示されたら計算が終了です.  上の元が, affine toric variety の
       (イデアルの)生成元です.  この場合には一つしかありません.

   [5] 計算結果は変数 ans にもはいっています.
      (ans = toric(A) と代入しているから.)
     
       ans :

      と入力すれば次のように ans の内容を表示してくれます.

      In[7]=ans :
      [    -z[2]*z[1]+z[3]*z[0] ] 
      In[8]=

  [6] ans の中身を ファイルにセーブしたい場合は,
    
      Save(ans);

      と入力して下さい. sm1out.txt にセーブされます.
      すでに, sm1out.txt が存在する場合は,  ans が追加してかきこまれます.

  [7] quit();  と入力すると k0 を終了します.

  [注意事項] 行列 A の要素は, 負のものを含んではいけません.
  [注意事項] 環を定義したときの変数の最大個数は, 100 です.
             作業用の変数もありますので, 行列 A の縦と横のサイズの和が
             100 に近付いたらもう計算できません.


Q. A-超幾何方程式の Fourier 変換の計算法.

A.
 [1] A = \matrix{1&1&1&1\cr
                   0&1&0&1\cr
                   0&0&1&1\cr} の時の例を示します.
       次のような内容のファイルを作ります.
       名前を, i24.k としましょう.

       load("debug/toric0.k");
       fff = ["z[0]*Dz[0]+z[1]*Dz[1]+z[2]*Dz[2]+z[3]*Dz[3]-z[5]",
              "           z[1]*Dz[1]           +z[3]*Dz[3]-z[6]",
              "                      z[2]*Dz[2]+z[3]*Dz[3]+z[7]",
              "z[0]*z[3]-z[1]*z[2]"];
       ans = zindicial(fff,4,3);


       A-超幾何方程式 の toric part
              "z[0]*z[3]-z[1]*z[2]"
       は, 関数 toric で計算しておいたものを使います.
       
       方程式の変数は必ず, z[i], Dz[i] (i は 0 から) を使います.
       z[i] が空間変数, Dz[i] が, 微分変数です.
       式を "  でかこむことを忘れないで下さい.

       ans = zindicial(fff,4,3);
    
       4 は Dz[i] の現れる最大 index +1 です.  今の場合, Dz[3] が最後の
       微分変数ですから, 4 な訳です.
       n = Dz[i] の現れる最大 index +1
       とおくとパラメータはかならず,
       z[n+1], ..., z[n+m] で与えます.
       ここで, m はパラメータの個数です.
       今の場合, z[5],z[6],z[7] がパラメータです.
       この m,n を用いると, zindicial は
       ans = zindicial(fff,n,m);
       とよぶことになります.


   [2]  k0 を起動します.

      k0

   [3] いくつかメッセージが表示されて, k0 のプロンプト In[??]=

             省略
       Overloaded on pushVariables and popVariables.
       ctrl-C signal is caught in KSexecuteString() and <<Warning>> 
       is regarded as an error.
       In[3]=debug/asir0.k    you need to start k0 with -f option. 
       In[4]=In[5]=

       がこのようにでたら,

       load("i24.k");

       とします.  a24.k がロードされ, 関数 zindicial が実行されて
       結果が表示されます.


Q. 結果を因数分解したい.

A.  save してから, 他の数式処理システムで因数分解して下さい.

  もし, asir がインストールしてあれば,
   k0 -f
  と -f オプションをつけて k0 を起動しておくことにより,  関数
     Factor
  で因数分解ができます.