# Vocabulary/percentdot

 %. y Matrix Inverse

Rank 2 -- operates on tables of y -- WHY IS THIS IMPORTANT?

• The inverse matrix of square matrix y, denoted y^-1^
• If y is not square, %. y is the left inverse of y, defined below.
```   ]P=: 0 0 1 , 1 0 0 ,: 0 1 0   NB. permutation matrix
0 0 1
1 0 0
0 1 0
%. P                          NB. The inverse of P is also a permutation matrix
0 1 0
0 0 1
1 0 0
```

### Common Uses

1. To reverse the effect of a linear transformation.

2. Given a rotation matrix, to form the matrix that rotates in the opposite direction.

```   sin=: 1&o.
cos=: 2&o.
angle=: (o.2) % 12                      NB. 30 degrees, in radians

] R=: 2 2\$  (cos,-@sin,sin,cos) angle   NB. R: rotate by (angle)
0.866025     _0.5
0.5 0.866025

] S=: 2 2\$  (cos,-@sin,sin,cos) -angle  NB. S: rotate by (-angle)
0.866025      0.5
_0.5 0.866025

S -: %.R                                NB. S is the inverse of R
1
R -: %.S                                NB. R is the inverse of S
1
```

3. If y is a vector, %. y is a vector in the same direction as y but with reciprocal length.

### Related Primitives

Matrix Product (x +/ . * y)

1. If the columns of y are dependent, domain error is signaled.

2. If y is not square, %. y is (in standard mathematical notation) ((y*y)^-1^y*) where y* is the adjoint of y, that is the complex conjugate of the transpose of y (for real matrices, this is the same as the transpose of y).

With this definition it is always true that (%. y) +/ . * y is an identity matrix.

### Details

1. If y is an atom or a list, it is reshaped to a 1-column table, and the result is reshaped to the same shape as y.

1. If y is a table, the shape of %. y is the reverse of the shape of y; put another way, %. y has the same shape as |: y.

 x %. y Matrix Divide

Rank _ 2 -- operates on the entirety of x and tables of y -- WHY IS THIS IMPORTANT?

x %. y is (%. y) mux x where mux denotes matrix multiplication.

• When y is square, the result R of x %. y solves the matrix equation y mux R -: x.

-: corresponds to = in standard mathematical notation.

• When y is not square, the result R comes as close as possible to solving the equation, in the minimum-squared-error sense.
```   sin=: 1&o.
cos=: 2&o.
mux=: +/ . *                           NB. matrix-multiply

angle=: (o.2) % 12                     NB. 30 degrees

]R=: 2 2\$  (cos,-@sin,sin,cos) angle   NB. rotate by (angle=30 deg)
0.866025     _0.5
0.5 0.866025

angle=: (o.2) % 24                     NB. 15 degrees

]Q=: 2 2\$  (cos,-@sin,sin,cos) angle   NB. rotate by (angle=15 deg)
0.965926 _0.258819
0.258819  0.965926

angle=: (o.2) % 8                      NB. 45 degrees

]P=: 2 2\$  (cos,-@sin,sin,cos) angle   NB. rotate by (angle=45 deg)
0.707107 _0.707107
0.707107  0.707107

Q mux R                                NB. Rotate successively by 15 deg, then by 30 deg (total=45 deg)
0.707107 _0.707107
0.707107  0.707107

P -: Q mux R                           NB. Rotation by 45 degrees is the same even if done in 2 steps
1
(P %. R) -: Q                          NB. Matrix-divide both sides of the equation by R
1
```

### Common Uses

1. To solve a system of linear equations.

2. To calculate a linear regression:

```   indep =. 1 2 3 5 6    NB. independent variable
dep =. 3 4 5 8 9      NB. dependent variable
dep %. (indep ,. 1)   NB. calculate line of best fit
1.24419 1.56977
```

The best fit is dep = 1.57 + 1.24 * indep.

3. To calculate the current flows in a given electrical circuit network using Kirchhoff's Laws.

### Related Primitives

Matrix Product (x +/ . * y)

1. The columns of y must be independent, or domain error is signaled.

1. In standard mathematical notation, the result is ((y*y)-1y*x) where y* is the adjoint of y, i.e. the complex conjugate of the transpose of y (for real matrices, this is the same as the transpose of y). If y is square this simplifies to (y-1x)

1. If y is an atom or a list, it is reshaped to a 1-column table.

1. If x is a list, it is reshaped to a 1-column table.

1. If x is an atom, it is repeated as needed to make a 1-column table that conforms to %. y. 1. The shape of x %. y is y ,&}.&\$ x, which is rather subtle. If y and x are both tables, the result has many rows as y has columns, and the same number of columns as x. But if x or y is an atom or list, the corresponding axis of the result (which would be of length 1) is omitted. Thus:

```   \$ (,. 1 2 3) %. (,. 6 7 9)   NB. 3x1 table %, 3x1 table: 1x1 result
1 1
\$ (1 2 3) %. (,. 6 7 9)      NB. list %. 3x1 table: result is 1-atom list
1
\$ (1 2 3) %. (6 7 9)         NB. list %. list: scalar result.
```