internal arithmetic



-----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