One Hat Cyber Team
Your IP :
216.73.216.80
Server IP :
194.44.31.54
Server :
Linux zen.imath.kiev.ua 4.18.0-553.77.1.el8_10.x86_64 #1 SMP Fri Oct 3 14:30:23 UTC 2025 x86_64
Server Software :
Apache/2.4.37 (Rocky Linux) OpenSSL/1.1.1k
PHP Version :
5.6.40
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
Macaulay2
/
HolonomicSystems
/
Edit File:
DiffOps.m2
-- Copyright 1999-2002 by Anton Leykin and Harrison Tsai ------------------------------------------------------------------------ -- This function computes the differential operators of order k or less -- on an affine variety defined by an ideal I in a polynomial ring ------------------------------------------------------------------------ diffOps = method() diffOps (RingElement, ZZ) := (f, k) -> (diffOps(ideal f, k)) diffOps (Ideal, ZZ) := (I, k) -> ( R := ring I; W := makeWeylAlgebra( R, SetVariables=>false); createDpairs W; -- make coeffs of derivations F := gens I; -- make Dk Dbasis := matrix {flatten apply( toList(0..k-1), i -> ( (entries symmetricPower(k-i, matrix{W.dpairVars#1}))#0 ) )}; xbasis := matrix {flatten apply( toList(0..k-1), i -> ( (entries symmetricPower(k-i, vars R))#0 ) )}; smallxbasis := matrix {flatten apply( toList(0..k-2), i -> ( (entries symmetricPower(k-1-i, vars R))#0 ) )}; pInfo(1, "Making the matrix of partial derivatives of elements in I..."); temp := transpose diff(transpose xbasis, F | flatten ((transpose smallxbasis)*F) ); addon := directSum toList(rank target temp:matrix{{F}}); full := temp | addon; pInfo(1, "Computing syzygies on an " | rank source full | " by " | rank target full | " matrix..."); syzy := (syz full)^{0..rank source temp - 1}; pInfo(1, "Reducing matrix of " | rank source syzy | " by " | rank target syzy | " syzygies with respect to I..."); syzy = gens gb (syzy % I); hashTable {PolyGens => syzy, BasisElts => Dbasis} ) ---------------------------------------------------------------- -- Puts Rbasis of diffOps into the Weyl algebra representation ---------------------------------------------------------------- putWeylAlgebra = method() putWeylAlgebra (HashTable) := (h) -> ( (h.BasisElts) * substitute(h.PolyGens, ring h.BasisElts) )
Simpan