Talk:Diophantine linear system solving: Difference between revisions
Content added Content deleted
(→Totally lost: why show squares in null space?) |
(Back again) |
||
Line 50: | Line 50: | ||
how this might be used/prove useful in some future (non-rc) project, and that requires my understanding it well enough |
how this might be used/prove useful in some future (non-rc) project, and that requires my understanding it well enough |
||
to debug and/or extend it. Despite now having posted a Phix entry, I don't remotely feel I'm done with this task yet, and it remains on my watchlist eagerly awaiting your updates. --[[User:Petelomax|Pete Lomax]] ([[User talk:Petelomax|talk]]) 15:01, 26 December 2021 (UTC) |
to debug and/or extend it. Despite now having posted a Phix entry, I don't remotely feel I'm done with this task yet, and it remains on my watchlist eagerly awaiting your updates. --[[User:Petelomax|Pete Lomax]] ([[User talk:Petelomax|talk]]) 15:01, 26 December 2021 (UTC) |
||
===Back again=== |
|||
and glad to see you've persisted.<br/> |
|||
As to the comment below your Phix entry:<br/> |
|||
the flipping signs are o.k. Because the null space vectors are solutions to |
|||
<b>A</b>·<b>x</b> = <b>0</b>, they have 'ambiguous sign'. For example<br/> |
|||
x + 3y + 5z = 0 |
|||
4x + 6y + 8z = 0 |
|||
is solved with both [-1 2 -1]<sup>T</sup> and [1 -2 1]<sup>T</sup>. |
|||
In fact with all t * [1 -2 1]<sup>T</sup>, with free parameter t taking every |
|||
positive or negative integer value. |
|||
The lengths-squared are there just to help you quickly spot the ''shortest'' vector.<br/> |
|||
Thus in the final test, searching for the coefficients of a polynomial that has |
|||
-1.417... as root, the shortest vector is indeed the one you want, giving |
|||
{{math| <big>f(x) = x<sup>9</sup> + 3x<sup>7</sup> - 5x<sup>5</sup> - 7x<sup>3</sup> + 9</big>}} |
|||
For a unit test, see [http://www.numbertheory.org/lll/HERMITE4.html this 4x4 example] |
|||
on the home page of one of the LLLHnf inventors (Matthews). If you're there, |
|||
also check out the LLL-page one level up, with many useful links |
|||
(including his own BCMath and CALC implementations of LLLHnf). |
|||
But his example leaves out the λ-matrix and its denominator vector. |
|||
For good reason likely:<br/> |
|||
if I let my program output their state at the 17<sup>th</sup> iteration |
|||
Swapping Rows 1 and 2 |
|||
0 0 0 0 |
|||
3 0 0 0 (17) |
|||
-1 9 0 0 |
|||
-1 -27 29 0 |
|||
/ |
|||
6 69 182 1 |
|||
it doesn't instantly enlighten me. |
|||
'Properly visualize' or even understand what Swop does to la(,) and d() is not so easy. |
|||
I would say the Gram coefficients are updated to restore the almost orthogonal relation |
|||
(disturbed by the swap) between the projections of the row vectors they represent, and |
|||
orthogonal implies short vectors. But this is really clumsy and doesn't clarify anything. |
|||
My reasoning: the updating formulas being the result of an experimental refinement process |
|||
over many iterations, they are terse to the point of being impenetrable, and best used |
|||
as-they-are, copied ''verbatim'' from a reliable source. --[[User:Udo_e._pops|Udo e.]] |
|||
([[User talk:Udo e. pops|talk]]) |