**HP Prime and HP 50g: Using the LSQ Function to find the Moore-Penrose Inverse of a Matrix**

Recall
that the Moore-Penrose Inverse of a Matrix A, A^+, with r rows and c columns
is:

If
r ≤ c and rank(A) = r (horizontal
matrix), then:

A^+
= A^T * (A*A^T)^-1

If
r ≥ c and rank(A) = c (vertical matrix),
then:

A^+
= (A^T * A)^-1 * A^T

You
can see the blog entry about the Moore-Penrose inverse here: http://edspi31415.blogspot.com/2014/08/moore-penrose-inverse-of-matrix.html.

On
the LSQ (Least Squares Solution Command) function, featured on both the HP
Prime and HP 50G, you can find A^+.

Syntax
to find A^+ using the LSQ Command

**HP Prime:**

**LSQ(matrix, IDENMAT(r))**

Where
IDENMAT is the identity matrix command.

Path
to IDENMAT: Toolbox, Math, 7. Matrix, 4.
Create, 2. Identity

Path
to LSQ: Toolbox, Math, 7. Matrix, 7.
Factorize, 2. LSQ

**HP 50g:**

**2: identity matrix of dimension r x r (R IDN)**

**1: matrix**

**LSQ**

Build
the identity matrix by entering r, then [Left Shift], [5] (MATRICES), [F1]
(CREATE), [F4] (IDN)

Path
to LSQ: [Left Shift], [5] (MATRICES),
[F2] (OPER), [NXT], [F2] (LSQ)

Examples
(answers are rounded to five decimal places):

Example
1

M
=

[[2,
5],

[3,
3],

[4,
5]]

(3
x 2 matrix, r = 3)

HP
Prime: LSQ(M, IDENMAT(3))

HP
50g: 2:
(3 IDN), 1: M

Result:

M^+
»

[[-0.45026,
0.31579, 0.21579],

[0.35263,
-0.15789, -0.05789]]

Example
2

M
=

[[4,
0.3, -0.8, 4.8, 2.5],

[-1.8,
3.6, 4.2, 4.4, -7]]

(2
x 5, r = 2)

HP
Prime: LSQ(M, IDENMAT(2))

HP
50g: 2:
(2 IDN), 1: M

Result:

M^+
»

[[0.0853,
-0.01272],

[0.01109,
0.03586],

[-0.01224,
0.04039],

[0.11059,
0.04939],

[0.04594,
-0.06586]]

This
blog is property of Edward Shore. 2014.

Thanks Eddie!!!

ReplyDelete