[ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
[ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
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
[ << ] | [ < ] | [上] | [ > ] | [ >> ] |
この文書は3月 16, 2025にtexi2html 5.0を用いて生成されました。