Feature #125
Matrix equation solving; linear system solving
Description
- generic case over a field
- full rank and not full rank
- over finite fields
- fast version over QQ
Generic full-rank is probably the most urgent as it would allow other code to proceed (though perhaps at reduced speed).
Related issues
History
#1 Updated by John Abbott about 12 years ago
- Assignee set to John Abbott
- % Done changed from 0 to 20
JAA has an impl of the generic case (over a field).
JAA has written a test for this first impl.
No example, and no doc yet. Nothing checked in yet.
#2 Updated by John Abbott about 12 years ago
Added some doc in MatrixArith.txt
, and a new test test-matrix3.C
.
No new example program yet.
New fns not yet available in CoCoA-5.
#3 Updated by John Abbott about 12 years ago
What names should we use for the fns which find a solution to a linear system? The name may be related to the name for the fns which find the kernels of linear systems.
In CoCoA-4 the fn is called LinSol
, and the fn for finding the kernel is called LinKer
.
In my first prototype in CoCoALib I used the name solve
(and also SolveByGauss
, SolveByHNF
, SolveByModuleRepr
). The name solve
is very generic -- is this a good or a bad thing?
Another possible candidate is LinSolve
. As usual if we decide to break backward compatibility, it should be for a good reason (e.g. choosing a much better name for the fns).
#4 Updated by John Abbott about 12 years ago
As mentioned in the previous post, currently I have used several fn names for solving linear systems: a generic fn, and the other dictating the method to use. It would also be possible to design solve
to accept a parameter which indicates the method to use -- if I recall well, Maple has adopted an approach like this.
Which approach do we prefer?
#5 Updated by John Abbott almost 12 years ago
While speaking to Renzo about choosing the name, I realised that solving a linear system is slightly different from solving a (linear) polynomial system. In the first case I would expect a matrix as the result, in the second I'm not sure what I would expect... a finite set of vectors?
Of course, a finite set of vectors can be represented as a matrix, but to my mind it is not a matrix.
If we opt for different return types when solving a matrix equation and when solving a zero-dimensional polynomial system then I think I'd prefer different names.
Here is another candidate for the matrix equation solver MatSolve
.
Opinions?
#6 Updated by John Abbott almost 12 years ago
- % Done changed from 20 to 30
A quick count using Google suggests that LinSolve
as about twice as popular as MatSolve
. Anna points out that LinSolve
is "almost backward compatible" with CoCoA-4. These two reasons combine to make LinSolve
the victor and MatSolve
the runner-up.
The related fn to compute the kernel of a matrix was called LinKer
in CoCoA-4, and will probably retain this name in CoCoA-5. This way the two fns have a common prefix -- possibly a mnemonic aid to users.
JAA will implement the name change. The related solving fns will also have the prefix LinSolve...
#7 Updated by John Abbott almost 12 years ago
Implemented the chosen names.
Created/corrected CoCoALib doc for the new fns.
Added CoCoALib example program ex-matrix3.C
Made LinSolve
fn available in CoCoA-5; added manual entry.
#8 Updated by John Abbott about 11 years ago
- Category set to New Function
- Priority changed from Normal to Urgent
#9 Updated by Anna Maria Bigatti about 10 years ago
- Target version set to CoCoALib-0.99533 Easter14
#10 Updated by John Abbott about 10 years ago
- Target version changed from CoCoALib-0.99533 Easter14 to CoCoALib-0.99534 Seoul14
#11 Updated by John Abbott almost 10 years ago
- Status changed from New to In Progress
- % Done changed from 30 to 50
#12 Updated by John Abbott over 9 years ago
- Target version changed from CoCoALib-0.99534 Seoul14 to CoCoALib-1.0
#13 Updated by John Abbott almost 9 years ago
- Priority changed from Urgent to Normal
#14 Updated by John Abbott almost 8 years ago
- Related to Feature #872: LinSolve for matrices over FFp added
#15 Updated by John Abbott about 4 years ago
- Related to Feature #1444: HNF: Hermite Normal Form added
#16 Updated by John Abbott about 4 years ago
- Target version changed from CoCoALib-1.0 to CoCoALib-0.99850
#17 Updated by John Abbott about 1 month ago
- Target version changed from CoCoALib-0.99850 to CoCoALib-0.99880