# 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. These functions were added to APL\360 in 1970^{[1]} and are widely supported in modern APL.

## 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 . The answer is .

⎕←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 . The answer is .

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

## External links

### Lesson

### Documentation

- Dyalog
- APLX
- NARS2000
- J Dictionary, NuVoc (as
`%.`

)

## References

- ↑ "Report of the APL SHARE conference" (pdf). APL Quote-Quad Volume 2, Number 3. 1970-09.