The Putzer Alolrithm


     Among the fact that I have begun posting some of my work in Mathematica and the Wolfram Language, I took something from studying systems of differential equations and decided to breakdown the Putzer Algorithm in Mathematica. It wouldn't come as a surprise to learn that getting the same answer can easily be done by using a built-in function, MatrixExp. However it really tells us nothing about the process. So if your just being introduced to the Putzer Algorithm the Notebook code I've written can be used to break down the process simply by using the appropriate variable definitions in the code.
     The code makes use of several DO statements but pulls all needed information from the Matrix the user has to define. So it doesn't matter if the Matrix is 2 x 2 or 50 x 50, the user just defines the base Matrix from the system (as in x' = Ax, we define the Matrix A). Generalizing the differential equation solver was a slight challenge as DSolve doesn't allow lists. Another easier challenge in that part of the code is the fact that the IVP changes from solution r(1) to higher solutions r(2 ... n). Its a rather interesting implementation if I may be so bold, however I am sure it could be cleaned up.
     The Notebook can be found HERE
     Next post we shall see how I stretched the Wolfram Language to create a modern take on a millennia-old memorization technique called the Method of Loci. It has been a great tool for memorizing large lists quickly.

© 2016 Zachary G Wolfe -- Remember to turn your brain off for a reboot sometimes...