amzoti
Posts:
1,110
Registered:
3/6/07


Re: MathSource Notebook Smith Normal Form Error  How to Correct?
Posted:
Sep 3, 2013 2:20 AM


On Wednesday, August 28, 2013 11:22:43 PM UTC7, daniel.l...@gmail.com wrote: > On Tuesday, August 27, 2013 1:59:04 AM UTC5, amzoti wrote: > > > Hi > > > > > > I am trying to do Rational Canonical Forms for matrices and there are no builtin things for this and Smith Normal Forms. > > > > > > I want to calculate the rational canonical matrix and the P such that A = PRP^(1). This is a generalized variant of the Jordan Form (which I know how to do). > > > > > > I found this notebook on Math Source from V6: http://library.wolfram.com/infocenter/MathSource/7081/ > > > > > > It would be great if this package could show how the invariant canonical decomposition of [xI  A] was done (row and column operations). > > > > > > When I download this and try using it, it does not work and I cannot figure out why. > > > > > > Is there a way to correct this package so it works in Mathematica Version 9? > > > > > > Did I miss some other command in Mathematica V9 that can do all of this stuff? > > > > > > Thanks > > > > What did you actually try? I show a simple example below that appears to give a plausible result (but it's late and I'm not going to check it). > > > > In[81]:= PolynomialSmithForm[x*IdentityMatrix[3]  {{1,2,3},{3,1,6},{2,7,1}},x] > > > > Out[81]= {{{1, 0, 0}, {0, 1, 0}, {0, > > 0, 44  55 x  x^2 + x^3}}, {{{0, (1/3), 0}, {4/167, 14/ > > 167, (23/167) + (2 x)/167}, {23 + 2 x, 3 + 7 x, 7 + x^2}}, {{1, > > 1/3 + x/3, (929/501) + (98 x)/501 + (23 x^2)/501  (2 x^3)/ > > 501}, {0, 1, 73/167 + (25 x)/167  (2 x^2)/167}, {0, 0, 1}}}} > > > > Mathematica 9 does not have this type of function. I expect there to be a well hidden way to do it in version 10. That is to say, it will not be in System` context. ControlTheory`, perhaps. That's for the polynomial version. I need to check whether we will also have the integer version there. > > > > Daniel Lichtblau > > Wolfram Research
Thank you Daniel! I got it working.
Is there anyway to coax P^(1)AP = R (R = rational canonical form) from this?
Thanks

