# Matrix Divide

Matrix Divide (`⌹`) is a dyadic function that performs matrix division between two arguments of rank 2 or less. Some dialects automatically apply it to rank-2 subarrays of higher-rank arguments. It shares the glyph Quad Divide `⌹` (often called Domino) with the monadic function Matrix Inverse.

## Examples

The result of `X⌹Y` is equal to `(⌹Y)+.×X`, which is analogous to `X÷Y` being equal to `(÷Y)×X`. As a consequence, `X≡Y+.×X⌹Y` is true for square matrices.

```      ⎕←X←2 2⍴1 2 3 4
1 2
3 4
⎕←Y←2 2⍴5 6 7 8
5 6
7 8
X⌹Y
5  4
¯4 ¯3
(⌹Y)+.×X
5  4
¯4 ¯3
X≡Y+.×X⌹Y
1
```

## Applications

From the properties of Moore-Penrose inverse (which Matrix Inverse uses), Matrix Divide can not only be used to solve a system of linear equations, but also to find the linear least squares solution to an overdetermined system.

The following example solves the system of equations ${\displaystyle x+2y=5,2x-y=8}$ . The answer is ${\displaystyle x=4.2,y=0.4}$ .

```      ⎕←X←2 2⍴1 2 2 ¯1
1  2
2 ¯1
Y←5 8
Y⌹X
4.2 0.4
```

The following example solves the linear least squares over the five points ${\displaystyle (1,5),(2,1),(3,4),(4,2),(5,8)}$ . The answer is ${\displaystyle y=1.9+0.7x}$ .

```      ⎕←X←1,⍪⍳5
1 1
1 2
1 3
1 4
1 5
Y←5 1 4 2 8
Y⌹X
1.9 0.7
```

When used with real vectors as both arguments, `Y×X⌹Y` gives the projection of X onto a basis vector Y. The remaining component of X, namely `R←X-Y×X⌹Y`, is orthogonal to Y (`R+.×Y` is zero).

```      (X Y)←(2 7)(3 1)
X⌹Y
1.3
Y×X⌹Y  ⍝ Projection of X onto Y
3.9 1.3
X-Y×X⌹Y  ⍝ The remaining component in X
¯1.9 5.7
⎕CT>|Y+.×X-Y×X⌹Y  ⍝ ∧ is orthogonal to Y (with negligible error)
1
```