MFUN - Matrix Function
Created by Jeff Pedersen
Released 7 April 2004
DESCRIPTION
In general for a scalar function f(x) and a square matrix A,the matrix function
f(a) is defined as follows
infinity
____
\
f(A) := \ c_k * A^k
/
/___
k=0
where the scalar function f has the power series expansion
infinity
____
\
f(x) := \ c_k * x^k
/
/___
k=0
for appropriate {c_k}.
(Just so we're clear we are not talking about element-wise application
of the function)
MFUN calculates functions of square matrices through application of the
Cayley-Hamilton Theorem. If the calculator is exact mode, the program
attempts to calculate the function exactly, but if the eigenvalues
of A cannot be found exactly, the program continues in approximate mode.
INSTALLATION
Two libraries are included.
MFUN49g - For HP 49g
MFUN49gplus - For HP 49g+
Download the appropriate library to your calculator and install according
to instructions at http://www.hpcalc.org/install.php
OPERATION
Put the square matrix A and an expression of the CAS independent variable
on the stack in positions 2 and 1, respectively, and invoke MFUN.
The function f(A) is returned. The arguments are not preserved.
NOTES
This is the first program i have written for any calculator and so isn't
the most efficient code in the world. It was written in UserRPL on an
HP 49g+. The HP 49g version can be quite slow, comparitively. The form
of the matrix f(A) is not linearized, factorized, or otherwise simplified.
The program does not check for errors. It assumes the user has entered a
SQUARE n×n matrix and an algebraic expression in the CAS variable ('X' by
default).
Sometimes the program will ask to switch to approximate mode, even if this
mode is already set.
I have tested the program, and feel it is solid, but I can provide no
gaurantees. If the program gives you an incorrect result please e-mail
me and let me know! Thanks.
Jeff Pedersen
pedersen@ece.ualberta.ca