# Difference between revisions of "ApCoCoA-1:LinBox.Solve"

KHiddemann (talk | contribs) m (duplicate title) |
(Moved to other category) |
||

Line 46: | Line 46: | ||

<key>solve linear equation</key> | <key>solve linear equation</key> | ||

<key>kaspar</key> | <key>kaspar</key> | ||

− | <wiki-category> | + | <wiki-category>Package_linbox</wiki-category> |

</command> | </command> |

## Revision as of 12:41, 21 April 2009

## LinBox.Solve

solve linear equation system

### Syntax

LinBox.Solve(M:MAT, B:MAT):MAT LinBox.Solve(M:MAT, B:MAT, METHOD:STRING):MAT

### Description

**Please note:** The function(s) explained on this page is/are using the **ApCoCoAServer**. You will have to start the ApCoCoAServer in order to use

it/them. Please also note that you need an ApCoCoAServer with enabled LinBox support.

Let `M` and `B` be matrices defined over the ring of integers, a finite field or the field of rationals. This function tries to solve the linear equation system `M*X = B` by using the ApCoCoAServer supported by the LinBox library. If your base ring is the ring of integers or a finite field, you can pass `Wiedemann` as `METHOD` to let the ApCoCoAServer compute the solution by using the LinBox Wiedemann implementation. If you pass `BlasElim` instead in this case, the solution will be computed by using the LinBox BLAS elimination implementation. If you omit the parameter `METHOD`, `BlasElim` will be used as default value where applicable. Please note that the parameter `METHOD` will be ignored if your base ring is the field of rationals, i.e. in this case it is always the LinBox rational solver implementation that will be used for computing a solution.

The return value will be a solution vector of the linear equation system or an empty matrix if no solution has been found.

#### Example

Use Z/(19)[x]; M := BringIn(Mat([[1,3,4], [0,2,1]])); B := BringIn(Mat([[1], [2]])); LinBox.Solve(M, B); ------------------------------- Mat([ [-2 % 19], [1 % 19], [0 % 19] ]) ------------------------------- Use Q[x]; M := Mat([ [1,3,4], [0,2,1], [1,3,4] ]); B := Mat([ [1], [2], [0] ]); LinBox.Solve(M, B); ------------------------------- Mat([ [ ] ]) -------------------------------