線形不定方程式を解く

lineqZ.c

これをファイル lineqZ.c に貼り付けて保存. コンパイル, 実行は
cc lineqZ.c
./a.out
数字を入力して enter(return)キー 
$103 c_1 + 23 c_2 = 1$ の解はたとえば $(c_1,c_2)=(-2,9)$. この結果から mod 103 での $23$ の逆元は $9$ がわかる.
他の方程式も解いてみる.

lineqZ.rr

これをファイル lineqZ.rr に貼り付けて保存. asir メニューから, start asir, execute current buffer.

lineqP.rr

一変数多項式環で不定方程式
$ c_0 f + c_1 g = 1 $
を解く. ここで $f=x^3-1$, $g=x^2+1$. 未知多項式は $(c_0,c_1) \in {\bf Q}[x]^2$.

同じ問題を Macaulay2 (M2) で

これを Macaulay2 (M2) に貼り付ける(paste). または名前 11-lineqP.m2 で保存して, M2で
load "11-lineqP.m2"
変数の値は表示されないので, load したあとたとえば FG と入力すれば FG の値がわかる.
gens(G)
で G の要素を出力. この場合は gcd.

Macaulay2 で 2変数の不定方程式の問題を解く

$c_0 (x^2+y^2-4) + c_1 (xy-1) + c_2 (x^3+y^3-4)=1$

$\sum c_i f_i =0 $ を解く

$f_i$ が多項式成分のベクトルの時 $\sum c_i f_i =d $ を解く

$c_0 \pmatrix{x^3-1 \cr x \cr} + c_1 \pmatrix{x^2+1\cr 1 \cr}= \pmatrix{x+1 \cr 0 \cr}$
$c_0=-1, c_1=x$ が解.