# \^ (Matrix Solve)

## Purpose:

Solves for a matrix.

## Syntax:

A \^ b

 A - A non-singular, usually square matrix. b - A matrix

## Returns:

A matrix that produces b when multiplied by A.

## Example:

W1: {{1, 4, 7},

{2, 5, 8},

{3, 6, 0}}

W2: {1,

2,

3}

W3: W1 *^ W2

W4: W1 \^ W3

W3 and W4 contain the following matrices:

W3 == {30,

36,

15}

W4 == {1,

2,

3}

Specifically, W4 solves the following system of equations:

x  + 4y + 7z = 30

2x + 5y + 8z = 36

3x + 6y      = 15

x == 1

y == 2

z == 3

## Example:

Consider the following over-determined system of equations:

x  + 4y + 7z = 30

2x + 5y + 8z = 36

3x + 6y      = 15

x  + 2y + z  = 2

A = {{1, 4, 7},

{2, 5, 8},

{3, 6, 0},

{1, 2, 1}}

x = {30,

36,

15,

2}

b = A \^ x;

b == {-1.8,

3.2,

2.8}

y = A *^ b;

y == {30.6,

34.8,

13.8,

7.4}

norm(x-y) == 5.6921

The \^ operator finds a solution y that minimizes the mean squared error. See LINFIT to fit an arbitrary set of basis functions to a series using the method of least squares.

## Remarks:

If A, b, and x are matrices, such that A *^ x = b, then A \^ b returns the matrix x.

A \^ b is equivalent to mdiv(A, b).

For A \^ b, where A is square, the system is solved using LU decomposition. This is usually numerically more stable than directly calculating the inverse matrix, i.e.

x = inv(A) *^ b.

If matrix A is not square, the system is considered a least squares problem and is solved by QR decomposition. The resulting matrix is the best solution in the least squares sense.

For scalars, a \^ b == a \ b == b * (1/a) == b / a.  For example:

10 \^ 2 == 10 \ 2 == 2 * (1/10) == 0.2

See DADiSP/MatrixXL to significantly optimize \^.

*^ (Matrix Multiply)

/^ (Matrix Right Division)

INVERSE

LINFIT

LU

MDIV

MMULT

QR

SVDDIV