HP Forums

Full Version: [WP-34S] Calculations With Complex Matrices
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Introduction
This article describes how to perform matrix multiplication and matrix inversion with complex matrices. Since the WP-34S lacks complex numbers the same trick as in the HP-15C is used. The complex transformation between \(Z^P\) and \(\tilde{Z}\) is provided by combining M.COPY and M.TRANSP commands. Of course this could be written down in a small program.

MED: Matrix Editor

This description is from matrixedit.wp34s:
Code:
/*
 *  Interactive editor for matrices.
 *  Start the editor with a matrix descriptor in X.
 *  Use the arrow keys to navigate:
 *    up/down: previous/next column
 *    f-up/f-down: previous/next row
 *  Type a digit to enter a number. This will suspend
 *  the progrom. R/S will enter X at the current row/column.
 *  XEQ RCL restores the present value to X if you decide
 *  not to change the cell. Press R/S to continue.
 *
 *  Some hot keys:
 *   A will start over at (1,1).
 *     When used outside the editor you will need to specifiy
 *     a new descriptor first.
 *   B (labeled 1/x) will call M[^-1] on the matrix.
 *   C continues at the last position.
 *   D computes and displays the determinant. R/S or C continue.
 *
 *  We need a few registers for internal use and therefore 
 *  set the stacksize to 4 to free registers A to D.
 *  Press <- to restore the mode and exit the editor.
 *  Double precision mode will always be reset!
 *
 *  Register usage:
 *   A - Matrix descriptor
 *   B - Current register
 *   D - Old setup mode
 *   I, J - Row and column
 *   K last key pressed
 *
 *  Flags:
 *   A - Controls big "=" sign
 *   00 - Shift state
 *
 *  Fixed labels:
 *   A, 11 - Start over with new matrix ('A'gain)
 *   B, 12 - Compute the inverse ('1/x')
 *   C     - Continue with current matrix ('C'ontinue)
 *   14, D - Compute the determinant ('D'eterminant)
 *   22    - [RCL] recalls current matrix element
 *   24    - [f] toggles navigation from horizontal to vertical
 *   31    - [ENTER^] (same as recall)
 *   35    - [<-] Backspace to exit the editor
 *   51    - [^] Navigation up/left
 *   61    - [v] Navigation down/right
 */


HP-15C
Owner's Handbook
Section 12: Calculating With Matrices
Calculating With Complex Matrices


Inverting a Complex Matrix

Example: (pp. 165)

\[Z = \begin{bmatrix} 4+3i & 7-2i \\ 1+5i & 3+8i \end{bmatrix}\]
\[Z^P = \begin{bmatrix}4 & 7 \\ 1 & 3 \\ 3 & -2 \\ 5 & 8\end{bmatrix}\]

Enter matrix \(Z^P\):
0.0402
XEQ 'MED'
4 R/S
↓ 7 R/S
↓ 1 R/S
(…)
↓ 8 R/S


Calculate offset for element (1,3):
1
3
0.0802
MATRIX:M.REG
4


Calculate offset for element (1,5):
1
5
0.0802
MATRIX:M.REG
8


Copy complex 2×2 matrix:
4.0202
8
MATRIX:M.COPY
8.0202


Negate 2×2 matrix (-x = x - 2x):
-2
4.0202
8.0202
MATRIX:M+x


Calculate offset for element (1,1):
1
1
0.0402
MATRIX:M.REG
0


Calculate offset for element (1,7):
1
7
0.0802
MATRIX:M.REG
12


Copy real 2×2 matrix:
0.0202
12
MATRIX:M.COPY
12.0202


Transpose upper 4×2 matrix:
0.0402
MATRIX:TRANSP
0.0204


Transpose lower 4×2 matrix:
8.0402
MATRIX:TRANSP
8.0202


Transpose 4×4 matrix:
0.0404
MATRIX:TRANSP
0.0404


\[\tilde{Z}=\begin{bmatrix} 4 & 7 & -3 & 2 \\ 1 & 3 & -5 & -8 \\ 3 & -2 & 4 & 7 \\ 5 & 8 & 1 & 3 \end{bmatrix}\]

Calculate the inverse:
0.0404
MATRIX:M-1


\[\tilde{Z}^{-1}=\begin{bmatrix} -0.0254 & 0.2420 & 0.2829 & 0.0022 \\ -0.0122 & -0.1017 & -0.1691 & 0.1315 \\ -0.2829 & -0.0022 & -0.0254 & 0.2420 \\ 0.1691 & -0.1315 & -0.0122 & -0.1017 \end{bmatrix}\]

Solving the Complex Equation AX = B

Example: (pp. 169)

\[A^P=\begin{bmatrix} 10 & 0 \\ 0 & 0 \\ 200 & -200 \\ -200 & 170 \end{bmatrix}\]
\[B^P=\begin{bmatrix} 5 \\ 0 \\ 0 \\ 0 \end{bmatrix}\]

Calculate inverse of AP as above and multiply by BP:
0.0404
16.0401
20
MATRIX:M×
20.0401


\[\tilde{A}^{-1}\times B^P=\begin{bmatrix} 0.0372 \\ 0.0437 \\ 0.1311 \\ 0.1543 \end{bmatrix}\]

Transpose 2×2 matrix:
20.0202
MATRIX:TRANSP


\[\begin{bmatrix} 0.0372 & 0.1311 \\ 0.0437 & 0.1543 \end{bmatrix}\]


HP-42S
RPN Scientific
Programming Examples and Techniques
5: Matrices


Solving Simultaneous Equations That Have Complex Terms

Example: (pp. 166)

\[A=\begin{bmatrix} 10-i0.01 & -5 & 0 & 0 \\ -5 & 15-i0.01 & -5 & 0 \\ 0 & -5 & 15-i0.01 & -5 \\ 0 & 0 & -5 & 15-i0.01 \end{bmatrix}\]

\[B=\begin{bmatrix} 34 \\ 0 \\ 0 \\ 0 \end{bmatrix}\]

\[A^P=\begin{bmatrix} 10 & -5 & 0 & 0 \\ -5 & 15 & -5 & 0 \\ 0 & -5 & 15 & -5 \\ 0 & 0 & -5 & 15 \\ -0.01 & 0 & 0 & 0 \\ 0 & -0.01 & 0 & 0 \\ 0 & 0 & -0.01 & 0 \\ 0 & 0 & 0 & -0.01 \end{bmatrix}\]

\[B^P=\begin{bmatrix} 34 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \end{bmatrix}\]

Let's assume we want to preserve registers 0-4. Thus we start with register 5 for matrix AP.

Enter matrix AP:
P.FCN:CLREGS
5.0804
XEQ 'MED'


Calculate offset for element (1,5):
1
5
5.1604
MATRIX:M.REG
21


Calculate offset for element (1,9):
1
9
5.1604
MATRIX:M.REG
37


Copy complex 4×4 matrix:
21.0404
37
MATRIX:M.COPY
37.0404


Negate 4×4 matrix (-x = x - 2x):
-2
21.0404
37.0404
MATRIX:M+x


Calculate offset for element (1,1):
1
1
5.1604
MATRIX:M.REG
5


Calculate offset for element (1,13):
1
13
5.1604
MATRIX:M.REG
53


Copy real 4×4 matrix:
5.0404
53
MATRIX:M.COPY
53.0404


Transpose upper 8×4 matrix:
5.0804
MATRIX:TRANSP
5.0408


Transpose lower 8×4 matrix:
37.0804
MATRIX:TRANSP
37.0408


Transpose 8×8 matrix:
5.0808
MATRIX:TRANSP
5.0808


Enter matrix BP:
70.0801
XEQ 'MED'


Invert matrix A:
5.0808
MATRIX:M-1


Multiply A by B:
5.0808
70.0801
80
MATRIX:M×
80.0801


Transpose 2×4 matrix:
80.0204
MATRIX:TRANSP
80.0402


Result:
\[I=\begin{bmatrix} 4.2000 & 0.0061 \\ 1.600 & 0.0037 \\ 0.6000 & 0.0019 \\ 0.2000 & 0.0008 \end{bmatrix}\]
Reference URL's