13/11/10 01:59:57.67
んでもって、>>551の問題の例として以下のような問題を考えてみた。
x*π+y*e=123.456
これを上記のコードにあてはめて
v = {Pi, E, 123.456};
n = 10;
c = Round[10^n v];
A = Join[IdentityMatrix[Length[v]], -Transpose[{c}], 2]
B = LatticeReduce[A]
A.Append[c, 1]
B.Append[c, 1]
B[[;; , ;; -2]] // MatrixForm
r = B[[;; , ;; -2]].v
N[r]
を実行してみると
-6747π+3256e+100*123.456≒0
が得られて、変形すると
(6747/100)π-(3256/100)e≒123.456
となるんだけど、これは求めたい解じゃないよね?
つまり、x,yは整数じゃないといけないんだよね?
となるとLatticeReduceで解けなくない?