# Eigenvalues of matrix with entries in polynomial ring

 1 Hi! I just wrote some code on the sage-combinat queue which computes a matrix with entries in a polynomial ring R = PolynomialRing(QQ, 'x', n) sage: P = Poset(([1,2,3,4], [[1,3],[1,4],[2,3]]), linear_extension = True) sage: L = P.linear_extensions() sage: M = L.markov_chain_transition_matrix(labeling = 'source') sage: M [-x0 - x1 - x2 x3 x0 + x3 0 0] [ x1 + x2 -x0 - x1 - x3 0 x1 0] [ 0 x1 -x0 - x3 0 x1] [ 0 x0 0 -x0 - x1 - x2 x0 + x3] [ x0 0 0 x0 + x2 -x0 - x1 - x3] sage: M.eigenvalues() --------------------------------------------------------------------------- NotImplementedError Traceback (most recent call last) /Applications/sage-5.0.beta7/devel/sage-combinat/sage/combinat/posets/ in () /Applications/sage-5.0.beta7/local/lib/python2.7/site-packages/sage/matrix/matrix2.so in sage.matrix.matrix2.Matrix.eigenvalues (sage/matrix/matrix2.c:26415)() /Applications/sage-5.0.beta7/local/lib/python2.7/site-packages/sage/matrix/matrix2.so in sage.matrix.matrix2.Matrix.fcp (sage/matrix/matrix2.c:11089)() /Applications/sage-5.0.beta7/local/lib/python2.7/site-packages/sage/rings/polynomial/polynomial_element.so in sage.rings.polynomial.polynomial_element.Polynomial.factor (sage/rings/polynomial/polynomial_element.c:22655)() NotImplementedError:  Is it possible to compute this some other way or is this just not yet implemented (which would surprise me!). Thanks, Anne asked Mar 16 '12 Anne Schilling 31 ● 1 ● 3 ● 5 kcrisman 7427 ● 17 ● 76 ● 166 Just for future reference, this site uses markdown for markup, so indenting everything four spaces makes it look like code (or highlighting and using the "code" button).kcrisman (Mar 16 '12)

 2 Could you change the ring to SR as a workaround? sage: R = PolynomialRing(QQ, 'x', 2) sage: x = R.gens() sage: M = matrix([[x[0],x[1]],[x[1],x[0]]]) sage: M.eigenvalues() --------------------------------------------------------------------------- NotImplementedError Traceback (most recent call last) [...] sage: M.change_ring(SR) [x0 x1] [x1 x0] sage: M.change_ring(SR).eigenvalues() [x0 - x1, x0 + x1]  posted Mar 16 '12 DSM 4882 ● 12 ● 65 ● 105 Thank you! That works! Am I allowed to use this in sage source code?Anne Schilling (Mar 18 '12)If by that you mean for stuff getting committed to mainline, I'm not sure. Seems a little hacky, and it feels like there should be a way to do it while staying purely in some polynomial ring.DSM (Mar 18 '12)
 0 Here is an easier example with the question: sage: R = PolynomialRing(QQ, 'x', 2) sage: x = R.gens() sage: M = matrix([[x[0],x[1]],[x[1],x[0]]]) sage: M.eigenvalues() --------------------------------------------------------------------------- NotImplementedError Traceback (most recent call last) /Applications/sage-5.0.beta7/devel/sage-combinat/sage/combinat/posets/ in () /Applications/sage-5.0.beta7/local/lib/python2.7/site-packages/sage/matrix /matrix2.so in sage.matrix.matrix2.Matrix.eigenvalues (sage/matrix/matrix2.c:26415)() /Applications/sage-5.0.beta7/local/lib/python2.7/site-packages/sage/matrix/matrix2.so in sage.matrix.matrix2.Matrix.fcp (sage/matrix/matrix2.c:11089)() /Applications/sage-5.0.beta7/local/lib/python2.7/site-packages/sage/rings/polynomial/polynomial_element.so in sage.rings.polynomial.polynomial_element.Polynomial.factor (sage/rings/polynomial/polynomial_element.c:22655)() NotImplementedError:  posted Mar 16 '12 Anne Schilling 31 ● 1 ● 3 ● 5

[hide preview]