| [ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
| [ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
tk_pfn.rkn:: Pfaffian 方程式に対する Runge-Kutta 法
リスト 独立変数と解の組
F は Pfaffian 方程式の係数行列リスト. X は独立変数リスト. Y は従属変数リスト. Xs 独立変数の出発値リスト. Ys は出発時の従属変数の値リスト. Xt は停止する独立変数の値リスト. H は微少数.
OpenXM/lib/asir-contrib/tk_pfn.rr )の tk_pfn.test1, tk_pfn.test2 を参照.
[1355] import("tk_pfn.rr");
[1590] tk_pfn.test1();
Value at (3,0.1)[8.99,6,-0.2]
Value at (1,3)[-8,2,-6]
[[[1,3],-8,2,-6],
[[1,2.9],-7.41,2,-5.8],
--- snip ---
[[3,0.1],8.99,6,-0.2]]
ChangeLog
OpenXM/src/asir-contrib/packages/src/tk_pfn.rr 1.1, 1.2
tk_pf2.rr である. これは独立変数が 2 個の場合である.
| [ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
tk_pfn.graph:: 2変数 Pfaffian 方程式を Runge-Kutta 法で解いてグラフ表示する.
リスト リストの要素は以下の形式 [[xの値,yの値],Y_1の値,Y_2の値, ...]. [xの値, yの値] は [0,0],[0.2,0],[0.4,0], ... , [0,0.2],[0.2,0.2], ... のように y の値が外側ループ, x の値が内側ループの形式で増える.
Pf は Pfaffian 方程式の係数行列リスト. 独立変数は x, y で固定. Dom リスト. 解くべき領域. Iv リスト. 領域の左端での初期値. Step 刻み幅.
OpenXM/lib/asir-contrib/tk_pfn.rr )の tk_pfn.testgraph1(), tk_pfn.testgraph2() を参照.
[1355] import("tk_pf2.rr"); import("mt_graph.rr"); import("tk_pfn.rr");
[1590] tk_pfn.testgraph1();
ここで testgraph1() は以下のとおり.
def testgraph1() {
/* tk_bess2.bess2pf(1/2); */
Pf= [[[ 0, (1)/(x), 0 ],
[ -x, (2*x^2+1)/(x), -2*x ],
[ -y, 0, 0 ]],
[[ 0, 0, (1)/(y) ],
[ -x, 0, 0 ],
[ -x, (1/2)/(x), (-1/2)/(y) ]]];
/* tk_bess2.bess2Iv(1/2,[0.5,1.5]); */
Iv = [0.105994,-0.651603,-0.760628];
Dom=[[0.5,1.5],[1.5,9]];
Step = 0.5;
return tk_pfn.graph(Pf,Dom,Iv,Step | fit=1);
}
ChangeLog
OpenXM/src/asir-contrib/packages/src/tk_pfn.rr 1.8
| [ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
tk_rk.runge_kutta_4:: 4次の Runge-Kutta 法による微分方程式の数値近似解
リスト リストの要素は以下の形式 [Xの値,Y_1の値,Y_2の値, ...]. X の値は減っていく. よってリストの先頭が Terminal 付近での Y の値.
Eq は 方程式の右辺. リスト. Y[0]’=Eq[0], Y[1]’=Eq[1], ... である. X 独立変数名. Y リスト. 従属変数のリスト. Step 刻み幅.
X0 出発点の X の値. Y0 出発点での Y の初期値. Terminal X の終着点.
OpenXM/lib/asir-contrib/src/taka_runge_kutta.rr )の
tk_rk.test4() を参照.
[1355] import("taka_runge_kutta.rr");
[1590] tk_rk.test4();
ここで test4() は以下のとおり. 振動の方程式, y0'=y1, y1'=-y0 (y0''+y0=0). 答は y0=cos(x)
taka_plot_auto は下方向で y が正.
def test4() {
A=runge_kutta_4([y1,-y0],x,[y0,y1],0,[1,0],3.14*2,0.1);
taka_plot_auto(A);
return(A);
}
ChangeLog
OpenXM/src/asir-contrib/packages/src/taka_runge_kutta.rr 1.17
| [ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
tk_rk.runge_kutta_4_linear:: 4次の Runge-Kutta 法による微分方程式の数値近似解. 線形方程式専用.
リスト リストの要素は以下の形式 [Xの値,Y_1の値,Y_2の値, ...]. X の値は減っていく. よってリストの先頭が Terminal 付近での Y の値.
P は 方程式の右辺. リスト. Y’=P Y である. 従属変数 Y は不要. X 独立変数名. Y リスト. 従属変数のリスト. 従属変数は自動生成される. 使われていないので空リストでよい. Step 刻み幅.
X0 出発点の X の値. Y0 出発点での Y の初期値. Terminal X の終着点.
[1355] import("taka_runge_kutta.rr");
[1590] A=tk_rk.runge_kutta_4_linear([[0,1],[-1,0]],x,[ ], 0, [1,0], 3.14*2, 0.1);
[1591] taka_plot_auto(A);
振動の方程式, y0'=y1, y1'=-y0 (y0''+y0=0). 答は y0=cos(x) を解いている.
taka_plot_auto は下方向で y が正.
ChangeLog
OpenXM/src/asir-contrib/packages/src/taka_runge_kutta.rr 1.17
| [ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
fj_simplify.simplify:: arg1 を簡単化する.
多項式, 有理式 または quote
多項式 または 有理式
import("fj_simplify.rr");
[1434] fj_simplify.simplify((x^(1/2))^3);
((x)^(3/2))
[1435] fj_simplify.simplify((2^(1/2))^2);
2
[1436] fj_simplify.simplify((2+2^(1/2))^3);
14*((2)^(1/2))+20
[1437] fj_simplify.simplify(exp(x)*exp(-x+y));
((@e)^(y))
@ref{quote}
ChangeLog
| [ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
tk_jack.zonal:: 分割 p に対する n 変数の zonal 多項式を出力する.
多項式. x_1, x_2, ... が変数.
数のリスト. p=[p0,p1,...] の時 p0>=p1>=...>0.
自然数
load("tk_jack.rr");
[1434] tk_jack.zonal([3,2,1],3);
(112*x_3*x_2^2+112*x_3^2*x_2)*x_1^3+(112*x_3*x_2^3+168*x_3^2*x_2^2+112*x_3^3*x_2)*x_1^2+(112*x_3^2*x_2^3+112*x_3^3*x_2^2)*x_1
[1435] tk_jack.zonal([1,1],3);
(2*x_2+2*x_3)*x_1+2*x_3*x_2
[1436] tk_jack.jack([1,1],3,2);
(2*x_2+2*x_3)*x_1+2*x_3*x_2
ChangeLog
| [ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
ot_hgm_ahg.cbase:: A で定義される A-超幾何方程式系の Pfaffian の基底を求める.
Pfaffianの基底(微分作用素のモノミアル)のリスト
整数を成分とする行列 (maximal rank のもの)を表すリスト
[2190] import("ot_hgm_ahg.rr");
1
[2191] ot_hgm_ahg.cbase([[1,1,1,1],[0,1,2,3]]);
We use a probabilistic algorithm to determine the base.[dx2^2,dx3*dx2,dx3^2]
[dx3,dx4,1]
@ref{get_mat2}
ChangeLog
| [ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
ot_hgm_ahg.get_mat2:: A で定義される A-超幾何方程式系 H_A の Pfaffian の基底を求めるための Sylvester 法 を適用するための行列を生成する.
リスト
整数を成分とする行列 (maximal rank のもの)を表すリスト
リスト. toric ideal のグレブナー基底を計算するための weight vector. 多分なんでもいいはず.
リスト. Pfaffian の基底. cbase(A) の出力を用いる.
Sylvester 型行列を作るための微分作用素のモノミアルのリスト.
[2190] import("ot_hgm_ahg.rr");
1
[2191] A=[[1,1,1,1],[0,1,2,3]]$
Std=ot_hgm_ahg.cbase(A)$
W=[[dx1,1,dx2,1,dx3,1,dx4,1]]$
Mset=[1,dx1,dx2,dx3,dx4]$
[2192] ot_hgm_ahg.get_mat2(A,W,Std,Mset);
省略
@ref{cbase}
ChangeLog
| [ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
ot_hgm_ahg.hgm_ahg_contiguity:: A で定義される A-超幾何方程式系のcontiguity relation を Sylvester matrix を用いて計算し, それを用いて超幾何関数の値を求める.
基底を超幾何関数に作用させたベクトルの値 F(End;X0) ??
整数を成分とする行列 (maximal rank のもの)を表すリスト.
リスト. Pfaffian の基底を与える微分作用素のモノミアルのリスト.
リスト [ContiDir,Beta,Z].
リスト. x 変数の値.
リスト. 基底を超幾何関数に作用させたベクトルの初期値 F(Start;X0)
リスト. Z パラメータの初期値??
リスト. Z パラメータの終端値??
[2190] import("ot_hgm_ahg.rr");
1
[2191] ot_hgm_ahg.test_fd_conti();
(Todo, 引数がどうなるかの例を加える.)
@ref{get_mat2} @ref{hgm_ahg_expected_value_contiguity} @ref{hgm_ahg}
ChangeLog
| [ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
tk_hgpoly.optip:: 整数計画問題をグレブナー基底を用いて解く.
リスト.
非負整数を成分とする行列 (maximal rank のもの)を表すリスト
非負整数を成分とするベクトルを表すリスト
非負整数を成分とするベクトルを表すリスト
[0] import("tk_hgpoly.rr");
[2191] tk_hgpoly.optip([[1,1,1,1],[0,1,2,3]],[20,40],[1,1,1,0]);
[6,1,0,13]
@ref{feasible}
ChangeLog
| [ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
tk_hgpoly.hgpoly:: A, B で定義される超幾何多項式を計算する.
リスト.
非負整数(todo, 再度確認)を成分とする行列 (maximal rank のもの)を表すリスト
非負整数を成分とするリスト.
[0] import("tk_hgpoly.rr");
[2191] tk_hgpoly.hgpoly([[1,1,1,1],[0,1,2,3]],[2,2]);
[x_3*x_1+1/2*x_2^2,(1/2)*<<0,2,0,0>>+(1)*<<1,0,1,0>>]
ChangeLog
| [ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
tk_fd.abc2ahg:: F_D(A, B,C) を解にもつ A-超幾何方程式系を求める.
リスト.
数
数のリスト
数
[2191] tk_fd.abc2ahg(-3,[-4,-5],3); [[[0,0,0,1,1,1],[1,0,0,1,0,0],[0,1,0,0,1,0],[0,0,1,0,0,1]],[11,5,4,5]]
@ref{abc2marginal} @ref{marginal2abc}
ChangeLog
| [ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
tk_fd.ahvec_abc:: abc2marginal(A, B,C) を周辺和にもつ (2,m+1) 分割表全体についての正規化定数 Z, および Z の変数 Y[1][0], ..., Y[1][m] (2番目の行)についての偏微分を計算する.
リスト Ans
数
数のリスト. 長さは m.
数
(2,m+1) 変数値をあらわすリストのリスト.
[2449] marginal2abc([3,12],[6,3,3,3]); [-3,[-3,-3,-3],4] [2450] tk_fd.ahvec_abc(-3,[-3,-3,-3],4,[[1,1/2,1/3,1/4],[1,1,1,1]]); [[ 24041/1152 143551/11520 16973/1280 78827/5760 ],1/7776] [2451] expectation_abc(-3,[-3,-3,-3],4,[[1,1/2,1/3,1/4],[1,1,1,1]]); [721230/173593,430653/173593,458271/173593,67566/24799]
@ref{expectation_abc}
ChangeLog
| [ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
pari, setbprec,setround,todouble,mpfr_gamma,mpfr_floor,mpfr_round,:: MPFR で pari の関数を emulate するか ox_pari サーバーを呼び出す.
丸めの方法の指定. mpfr 準拠.
:: bigfloat 型を double に変換する.
:: gamma 関数の計算.
:: floor の計算.
:: 丸めの計算.
後述.
後述.
[219] ctrl("bigfloat",1)$
[220] setprec(100)$
[221] pari(floor,1111111111111.1+1/10);
1111111111111
@ref{pari}
ChangeLog
| [ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
xyz_pqr, syz_stu:: xyz に関する操作.
整数
整数
0 または 1
xyz_pqr() は, arg1, arg2 を pqr する.
xyz_stu() は stu アルゴリズムを用いる.
[219] xyz_pqr(1,2); 3 [220] xyz_pqr(1,2,1); 3 0 [221] xyz_stu(1,2); 3
@ref{xyz_abc}
ChangeLog
| [ << ] | [ < ] | [上] | [ > ] | [ >> ] |
この文書は10月 25, 2025にtexi2html 5.0を用いて生成されました。