Least squares solution of a linear system

### 15.7.9 Least squares solution of a linear system

The lsq or LSQ command finds the least squares solution to a matrix equation AX=b.

- lsq takes two arguments:
  - A, a matrix.
  - b, a vector or matrix.
- lsq(A,b) returns the least squares solution to the equation AX=b.

#### Examples

To solve AX=b for A=[

1 | 2
3 | 4

] and b=[

5
11

], input:

lsq([[1,2],[3,4]],[5,11])

⎡ ⎢ ⎣ |
1
2
| ⎤ ⎥ ⎦

To solve AX=B for A as above and B=[

5 | 7
11 | 9

], input:

lsq([[1,2],[3,4]],[[5,7],[11,9]])

⎡ ⎢ ⎣ |
1 | −5
2 | 6
| ⎤ ⎥ ⎦

Note that:

linsolve([[1,2],[3,4],[3,6]]*[x,y]-[5,11,13],[x, y])

| ⎡ ⎣ | ⎤ ⎦

since the linear system has no solution. You can still find the least squares solution:

lsq([[1,2],[3,4],[3,6]],[5,11,13])

⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ |
11
5
11
10
| ⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦

The least squares solution:

lsq([[3,4]],[12])

⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ |
36
25
48
25
| ⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦

represents the point on the line 3x+4y=12 closest to the origin. Indeed:

coordinates(projection(line(3*x+4*y=12),point(0)))

| ⎡ ⎢ ⎢ ⎣ |
36
25
| , |
48
25
| ⎤ ⎥ ⎥ ⎦

(See Section 26.12.4, Section 26.14.8, Section 19.3.1 and Section 26.5.2.)