HP Forums

Full Version: Non-graphing calculator supporting complex matrices?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
Hi, HP 35s is the best solution thanks to these programs:

A Matrix Multi-Tool for the HP 35s Programmable Calculator by Stefan Vorkoetter:
http://www.stefanv.com/calculators/hp35s...itool.html

Quote:Thanks to the HP 35s’ support for complex numbers, the matrix multi-tool works with complex matrices too.

An Extension for Stefan's Matrix Multi-Tool Program by Palmer O. Hanson, Jr.:
http://www.hpmuseum.org/cgi-sys/cgiwrap/...i?read=886

Palmer's Matrix Multi-Tool Extension by mbrethen:
http://www.hpmuseum.org/cgi-sys/cgiwrap/...?read=1197

best regards
(11-25-2014 02:48 PM)Simone Cerica Wrote: [ -> ]Hi, HP 35s is the best solution thanks to these programs:

A Matrix Multi-Tool for the HP 35s Programmable Calculator by Stefan Vorkoetter:
http://www.stefanv.com/calculators/hp35s...itool.html

Quote:Thanks to the HP 35s’ support for complex numbers, the matrix multi-tool works with complex matrices too.

An Extension for Stefan's Matrix Multi-Tool Program by Palmer O. Hanson, Jr.:
http://www.hpmuseum.org/cgi-sys/cgiwrap/...i?read=886

Palmer's Matrix Multi-Tool Extension by mbrethen:
http://www.hpmuseum.org/cgi-sys/cgiwrap/...?read=1197

best regards

(Belated) thanks.

SN

PS: I hope in a couple of years we can answer the original question saying: The 43s, of course!
One oddity concerning the CASIO 9860gii that surprised me (in the light of the rabbits pulled out of the hat on the TI 36X Pro) is that one cannot plot or integrate max(f(x)). One can only take max of 2 given numbers. The TI 36X Pro can integrate max (f(x)) !
To be clearer, I'm referring to max (function 1, function 2).
Does anyone know how to change epsilon in the num-solve app on the TI 36X Pro when solving 0=d/dx (f(x))|x=x in classic entry mode? You can set epsilon for finding d/dx for some specific "x", but not so in num-solve mode as far as I can see. Epsilon default is 10^-3.
(04-26-2014 11:53 PM)supernumero Wrote: [ -> ]Sadly, not even the 34S seems to include the 15C's functions to handle complex matrices via real matrices (I beg to be corrected on this!).

This might interest you then:
[WP-34S] Calculations With Complex Matrices
(WP-34S) The Complex Transformations Between \(Z^P\) and \(\tilde{Z}\)

Cheers
Thomas
(02-22-2015 11:40 PM)Thomas Klemm Wrote: [ -> ]
(04-26-2014 11:53 PM)supernumero Wrote: [ -> ]Sadly, not even the 34S seems to include the 15C's functions to handle complex matrices via real matrices (I beg to be corrected on this!).

This might interest you then:
[WP-34S] Calculations With Complex Matrices
(WP-34S) The Complex Transformations Between \(Z^P\) and \(\tilde{Z}\)

Cheers
Thomas

That's great! The Z-transform brings memories of the old 15C days. (OK, I never really had a 15C, but I got a 15C(LE) that I've studied and played with, but I'm a little afraid to use it too much---it's too valuable! I play a lot more with the 34S, of which I have two, and my 49G+/50G.)

Still, in the context of my original question, a wish for the ability to find complex eigenvalues and eigenvectors is not fulfilled. Perhaps some day I'll use the routines above to implement the latter functionality if I feel adventurous.

SN
This program for the HP-15C implements one step of the Rayleigh quotient iteration:

Code:
LBL E
RESULT C
RCL MATRIX B
RCL MATRIX A
RCL MATRIX E
RCL I
*
-
RESULT D
/
RESULT B
ENTER
MATRIX 8
/
RESULT C
RCL MATRIX A
RCL MATRIX B
*
RESULT D
MATRIX 5
u RCL D
STO I
RTN

Store the matrix in A, the initial guess for the eigenvector in b, the initial guess of the eigenvalue in I and the identity matrix in E.

I assume that the index registers R0 and R1 are initialized to 1 (MATRIX 1) and recommend to work in user mode.

You can use the example in the Wikipedia article as a test-case.

Cheers
Thomas
(03-01-2015 04:24 AM)supernumero Wrote: [ -> ]Still, in the context of my original question, a wish for the ability to find complex eigenvalues and eigenvectors is not fulfilled.

Here's the adaption of the program from above that works with complex matrices:
Code:
001 - 42,21,15  LBL E
002 - 42,26,13  RESULT C
003 -    45 25  RCL I
004 -        1  1
005 - 42,23,13  DIM C
006 - 45,16,13  RCL MATRIX C
007 -        0  0
008 -       20  x
009 -        1  1
010 -       40  +
011 - 42,26,15  RESULT E
012 - 45,16,14  RCL MATRIX D
013 -       20  x
014 - 42,16, 4  MATRIX 4
015 -    45 25  RCL I
016 -        2  2
017 -       20  x
018 -    43 36  LSTx
019 -       40  +
020 -    45 25  RCL I
021 - 42,23,15  DIM E
022 - 45,16,15  RCL MATRIX E
023 - 42,16, 4  MATRIX 4
024 -       33  Rv
025 -       34  x<>y
026 -        2  2
027 -       30  -
028 - 42,23,15  DIM E
029 - 45,16,15  RCL MATRIX E
030 -    42 40  Py,x
031 - 42,16, 2  MATRIX 2
032 - 42,26,15  RESULT E
033 - 45,16,12  RCL MATRIX B
034 - 45,16,11  RCL MATRIX A
035 - 45,16,15  RCL MATRIX E
036 -       30  -
037 - 42,26,14  RESULT D
038 -       10  /
039 - 42,26,12  RESULT B
040 -       36  ENTER
041 - 42,16, 8  MATRIX 8
042 -        2  2
043 -       11  SQRT
044 -       10  /
045 -       10  /
046 - 42,26,15  RESULT E
047 - 45,16,11  RCL MATRIX A
048 - 45,16,12  RCL MATRIX B
049 -       20  x
050 - 42,26,14  RESULT D
051 - 42,16, 5  MATRIX 5
052 - 42,16, 3  MATRIX 3
053 -    43 40  Cy,x
054 -    43 32  RTN

The guess for the eigenvalue has to be stored in matrix d 1 2. The guess for the eigenvector is expected in the matrix b which must be in \(\tilde{Z}\) format. The same applies to matrix A. And the dimension (i.e. 2) has to be stored in register I.

The challenge was to figure out a means to calculate \(\lambda I\). For the transformation a mix of multiplication, transpositions and change of dimensions was used. As an example the case of 2 dimensions:
\[
\begin{bmatrix}
1 \\
1 \\
\end{bmatrix}

\begin{bmatrix}
a & b
\end{bmatrix}

= \begin{bmatrix}
a & b \\
a & b \\
\end{bmatrix}

\rightarrow \begin{bmatrix}
a & a \\
b & b \\
\end{bmatrix}

\rightarrow \begin{bmatrix}
a & a \\
b & b \\
0 & 0 \\
0 & 0 \\
0 & 0 \\
0 & 0 \\
\end{bmatrix}

\rightarrow \begin{bmatrix}
a & b & 0 & 0 & 0 & 0 \\
a & b & 0 & 0 & 0 & 0
\end{bmatrix}

\rightarrow \begin{bmatrix}
a & b & 0 & 0 \\
0 & 0 & a & b
\end{bmatrix}
\]

The other thing to consider is that the elements appear twice in the matrix. This has to be corrected when calculating the norm by dividing by \(\sqrt{2}\). Aside from this both programs are very similar.

This example was used as a test-case. After 5 iterations the result is exact to 4 places.

As a guess for the eigenvector I've used \(\begin{bmatrix}
1 + 0i \\
1 + 0i \\
\end{bmatrix}\) and \(1 + i\) as guess for the eigenvalue.

I haven't tried but I doubt that there's enough memory to handle the 3-dimensional case. The calculation should still be okay if somebody wants to test that with a DM-15 with extended memory.

Cheers
Thomas
(04-27-2014 12:13 PM)walter b Wrote: [ -> ]Well, almost everything is caused by lack of memory

Or lack of time, or both.

"Life is short and ROM is full." -- William C. Wickes, 1990
Hello,
Although it's a graphing one, don't forget the TI-86, with an outstanding support for complex numbers, even with matrices and it's eigenvalues and trig functions ! The best proof: there's no complex mode ... But fully integrated complex numbers
Pages: 1 2
Reference URL's