[Maxima] internal arithmetic
Barton Willis
willisb at unk.edu
Fri Nov 7 06:52:57 CST 2008
-----Alexandru Cardaniuc <cardaniuc at gmail.com> wrote: -----
>Does linsolve_by_lu solve it using LU decomposition?
Yes, linsolve_by_lu uses the LU factorization. For IEEE double float
or bigfloat numbers, the LU factorization uses partial pivoting (see
the user documentation for lu_factor); examples
(%i70) linsolve_by_lu(matrix([6,8],[1,2]), matrix([1],[1/9]),
'bigfloatfield), fpprec : 25;
(%o70) [matrix
([2.777777777777777777777778b-1],[-8.333333333333333333333334b-2]),35.38888888888889]
(%i71) linsolve_by_lu(matrix([6,8],[1,2]), matrix([1],[1/9]), 'floatfield);
(%o71) [matrix([0.27777777777778],[-0.083333333333333]),35.38888888888888]
>I can't find the description of the function.
The function linsolve_by_lu is undocumented. This bug has been reported.
>Does linsolve use Gaussian Elimination to solve system of linear
>equations? So, is it possible to force linsolve to use floating point
arithmetic
>calculations with limited precision?
I don't know the answer to either question. Linsolve doesn't fully observe
the keepfloat flag:
(%i76) linsolve([6.7 * x + 8.9*y = 1.2, 8.1 * x - y = 42.0],[x,y]),
keepfloat : true;
(%o76) [x=373/78,y=-271/78]
(And there is no keepfloat flag for big floats.)
If you need to solve linear equations using floats for big floats, I
suggest you try linsolve_by_lu.
I'll try to fix the missing documentation before the next Maxima version.
Barton
More information about the Maxima
mailing list