Hello everybody,

    I have been struggling with symbolic computation of eigenvectors
and eigenvalues of 4x4 matrices. One of the most puzzling behaviors is
that trying to compute the eigenvectors directly via

sage: A.eigenvectors_right()

is much slower than doing something like:

sage: v = A.eigenvalues()
sage: for i in range( len(v) ):
....:  z = ( A - v[i] ).right_kernel().basis()
....:  #do something with z
....:  print len(z)

This probably is maxima's issue rather than sage's, however, I still
think it is worth noting, as sage could be using the faster way if
turns out it is consistently better.

Any thoughts?

Edgar

P.S. For completeness, here is the hairy matrix


(r,s,t,c,d,p,q) = var( 'r,s,t,c,d,p,q' )
C = [-(c^2*p^2*r + (c*p^2 - c*p*q + (c^2 - c*d)*p)*r^2 + (c*p^2 -
c*p*q + (c^2 - c*d)*p - (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d +
d^2 + p^2 + q^2)*s)*t^2 - ((2*(c - d)*p - 2*(c - d + p)*q + c^2 -
2*c*d + d^2 + p^2 + q^2)*r^2 + (c*p^2 - c*p*q + (c^2 - c*d)*p)*r)*s +
((2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*s^2 -
2*(c*p^2 - c*p*q + (c^2 - c*d)*p)*r - (c*p^2 - c*p*q + (c^2 - c*d)*p -
2*(2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 +
q^2)*r)*s)*t)/(c^2*p^2 + (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d
+ d^2 + p^2 + q^2)*r^2 + (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d
+ d^2 + p^2 + q^2)*s^2 + (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d
+ d^2 + p^2 + q^2)*t^2 - 2*(c*p^2 - c*p*q + (c^2 - c*d)*p)*r -
2*(c*p^2 - c*p*q + (c^2 - c*d)*p - (2*(c - d)*p - 2*(c - d + p)*q +
c^2 - 2*c*d + d^2 + p^2 + q^2)*r)*s + 2*(c*p^2 - c*p*q + (c^2 - c*d)*p
- (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*r -
(2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*s)*t),
-((2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 +
q^2)*r*s^2 - (c^3 - c^2*d + 2*c*p^2 - (c^2 + 2*c*p)*q + (3*c^2 -
2*c*d)*p)*r*s - (c^3*p - (c^3 - c^2*d + c^2*p - c^2*q)*s)*t + (c^3*p +
c^2*p^2)*r)/(c^2*p^2 + (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d +
d^2 + p^2 + q^2)*r^2 + (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d +
d^2 + p^2 + q^2)*s^2 + (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d +
d^2 + p^2 + q^2)*t^2 - 2*(c*p^2 - c*p*q + (c^2 - c*d)*p)*r - 2*(c*p^2
- c*p*q + (c^2 - c*d)*p - (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d
+ d^2 + p^2 + q^2)*r)*s + 2*(c*p^2 - c*p*q + (c^2 - c*d)*p - (2*(c -
d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*r - (2*(c -
d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*s)*t), -
((c*p^2 - c*p*q + (c^2 - c*d)*p)*r^2 + (c*p^2 - c*p*q + (c^2 - c*d)*p
- (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 +
q^2)*s)*t^2 - ((2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 +
p^2 + q^2)*r^2 + ((3*c - 2*d)*p^2 + p^3 + p*q^2 - ((3*c - 2*d)*p +
2*p^2)*q + (2*c^2 - 3*c*d + d^2)*p)*r)*s + (c*p^3 - c*p^2*q + (2*c^2 -
c*d)*p^2)*r - (c*p^3 - c*p^2*q + (c^2 - c*d)*p^2 - (2*(c - d)*p - 2*(c
- d + p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*s^2 + 2*(c*p^2 - c*p*q +
(c^2 - c*d)*p)*r - ((c - 2*d)*p^2 + p^3 + p*q^2 - (c*d - d^2)*p - ((c
- 2*d)*p + 2*p^2)*q + 2*(2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d +
d^2 + p^2 + q^2)*r)*s)*t)/(c^2*p^2 + (2*(c - d)*p - 2*(c - d + p)*q +
c^2 - 2*c*d + d^2 + p^2 + q^2)*r^2 + (2*(c - d)*p - 2*(c - d + p)*q +
c^2 - 2*c*d + d^2 + p^2 + q^2)*s^2 + (2*(c - d)*p - 2*(c - d + p)*q +
c^2 - 2*c*d + d^2 + p^2 + q^2)*t^2 - 2*(c*p^2 - c*p*q + (c^2 -
c*d)*p)*r - 2*(c*p^2 - c*p*q + (c^2 - c*d)*p - (2*(c - d)*p - 2*(c - d
+ p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*r)*s + 2*(c*p^2 - c*p*q + (c^2
- c*d)*p - (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 +
q^2)*r - (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 +
q^2)*s)*t), -((2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2
+ q^2)*r*s^2 + ((c - p)*q^2 - (3*c - 2*d)*p^2 - c^2*d + c*d^2 - p^3 -
(2*c^2 - 2*c*d + d^2)*p + (2*(c - d)*p - c^2 + 2*c*d + 2*p^2)*q)*r*s +
(c^2*d*p + c*p^3 + (c^2 - c*d)*p^2 + (c^2*p - c*p^2)*q)*r - (c^2*d*p -
c*d*p^2 + c*p^3 + (c^2*p - c*p^2)*q + ((c - p)*q^2 - (c - 2*d)*p^2 -
c^2*d + c*d^2 - d^2*p - p^3 - (c^2 - 2*c*d + 2*d*p - 2*p^2)*q)*s)*t)/
(c^2*p^2 + (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 +
q^2)*r^2 + (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 +
q^2)*s^2 + (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 +
q^2)*t^2 - 2*(c*p^2 - c*p*q + (c^2 - c*d)*p)*r - 2*(c*p^2 - c*p*q +
(c^2 - c*d)*p - (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 +
p^2 + q^2)*r)*s + 2*(c*p^2 - c*p*q + (c^2 - c*d)*p - (2*(c - d)*p -
2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*r - (2*(c - d)*p -
2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*s)*t), -(((c - 2*d)*p
- (c - 2*d + 2*p)*q - c*d + d^2 + p^2 + q^2)*r^2*s + 2*(c*d*p - c*p^2
+ c*p*q)*r^2 + (c*d*p - c*p^2 + c*p*q)*t^2 - (((c - 2*d)*p - (c - 2*d
+ 2*p)*q - c*d + d^2 + p^2 + q^2)*r*s + 3*(c*d*p - c*p^2 +
c*p*q)*r)*t)/(c^2*p^2 + (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d +
d^2 + p^2 + q^2)*r^2 + (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d +
d^2 + p^2 + q^2)*s^2 + (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d +
d^2 + p^2 + q^2)*t^2 - 2*(c*p^2 - c*p*q + (c^2 - c*d)*p)*r - 2*(c*p^2
- c*p*q + (c^2 - c*d)*p - (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d
+ d^2 + p^2 + q^2)*r)*s + 2*(c*p^2 - c*p*q + (c^2 - c*d)*p - (2*(c -
d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*r - (2*(c -
d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*s)*t), (((c -
2*d)*p - (c - 2*d + 2*p)*q - c*d + d^2 + p^2 + q^2)*r*s^2 + (c*d*p -
c*p^2 + c*p*q)*r*s - (c^2*d - c*p^2 + (c^2 + c*p)*q - (c^2 -
c*d)*p)*r^2 - (c^2*d - c^2*p + c^2*q - ((c - 2*d)*p - (c - 2*d +
2*p)*q - c*d + d^2 + p^2 + q^2)*s)*t^2 - (((c - 2*d)*p - (c - 2*d +
2*p)*q - c*d + d^2 + p^2 + q^2)*s^2 + (c*d*p - c*p^2 + c*p*q + ((c -
2*d)*p - (c - 2*d + 2*p)*q - c*d + d^2 + p^2 + q^2)*r)*s - (2*c^2*d -
c*p^2 + (2*c^2 + c*p)*q - (2*c^2 - c*d)*p)*r)*t)/(c^2*p^2 + (2*(c -
d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*r^2 + (2*(c -
d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*s^2 + (2*(c -
d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*t^2 - 2*(c*p^2
- c*p*q + (c^2 - c*d)*p)*r - 2*(c*p^2 - c*p*q + (c^2 - c*d)*p - (2*(c
- d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*r)*s +
2*(c*p^2 - c*p*q + (c^2 - c*d)*p - (2*(c - d)*p - 2*(c - d + p)*q +
c^2 - 2*c*d + d^2 + p^2 + q^2)*r - (2*(c - d)*p - 2*(c - d + p)*q +
c^2 - 2*c*d + d^2 + p^2 + q^2)*s)*t), -(2*(c*d*p - c*p^2 + c*p*q)*r^2
+ (c*d*p - c*p^2 + c*p*q)*t^2 + (((c - 2*d)*p - (c - 2*d + 2*p)*q -
c*d + d^2 + p^2 + q^2)*r^2 + ((c - 2*d)*p^2 + p^3 + p*q^2 - (c*d -
d^2)*p - ((c - 2*d)*p + 2*p^2)*q)*r)*s + (c*d*p^2 - c*p^3 + c*p^2*q)*r
- (c*d*p^2 - c*p^3 + c*p^2*q + 3*(c*d*p - c*p^2 + c*p*q)*r + ((c -
2*d)*p^2 + p^3 + p*q^2 - (c*d - d^2)*p - ((c - 2*d)*p + 2*p^2)*q + ((c
- 2*d)*p - (c - 2*d + 2*p)*q - c*d + d^2 + p^2 + q^2)*r)*s)*t)/
(c^2*p^2 + (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 +
q^2)*r^2 + (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 +
q^2)*s^2 + (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 +
q^2)*t^2 - 2*(c*p^2 - c*p*q + (c^2 - c*d)*p)*r - 2*(c*p^2 - c*p*q +
(c^2 - c*d)*p - (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 +
p^2 + q^2)*r)*s + 2*(c*p^2 - c*p*q + (c^2 - c*d)*p - (2*(c - d)*p -
2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*r - (2*(c - d)*p -
2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*s)*t), (((c - 2*d)*p
- (c - 2*d + 2*p)*q - c*d + d^2 + p^2 + q^2)*r*s^2 - (c*d^2 - c*d*p +
c*q^2 + (2*c*d - c*p)*q)*r^2 - (2*(c - d)*p^2 + p^3 + p*q^2 - (2*c*d -
d^2)*p - 2*((c - d)*p + p^2)*q)*r*s - (c*d^2 - 2*c*d*p + c*p^2 + c*q^2
+ 2*(c*d - c*p)*q - ((c - 2*d)*p - (c - 2*d + 2*p)*q - c*d + d^2 + p^2
+ q^2)*s)*t^2 - (c*d*p^2 - c*p^3 + c*p^2*q)*r + (c*d*p^2 - c*p^3 +
c*p^2*q - ((c - 2*d)*p - (c - 2*d + 2*p)*q - c*d + d^2 + p^2 +
q^2)*s^2 + (2*c*d^2 - 3*c*d*p + c*p^2 + 2*c*q^2 + (4*c*d - 3*c*p)*q)*r
+ (2*(c - d)*p^2 + p^3 + p*q^2 - (2*c*d - d^2)*p - 2*((c - d)*p +
p^2)*q - ((c - 2*d)*p - (c - 2*d + 2*p)*q - c*d + d^2 + p^2 +
q^2)*r)*s)*t)/(c^2*p^2 + (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d
+ d^2 + p^2 + q^2)*r^2 + (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d
+ d^2 + p^2 + q^2)*s^2 + (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d
+ d^2 + p^2 + q^2)*t^2 - 2*(c*p^2 - c*p*q + (c^2 - c*d)*p)*r -
2*(c*p^2 - c*p*q + (c^2 - c*d)*p - (2*(c - d)*p - 2*(c - d + p)*q +
c^2 - 2*c*d + d^2 + p^2 + q^2)*r)*s + 2*(c*p^2 - c*p*q + (c^2 - c*d)*p
- (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*r -
(2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*s)*t),
0, 0, -((c*p - c*q)*r - (c*p - c*q)*t)/((c - d + p - q)*r + (c - d + p
- q)*s - (c - d + p - q)*t - c*p), 0, (2*c^2*p*r^2 + c^2*p*t^2 - (c^2
- c*d + c*p - c*q)*r^2*s - (3*c^2*p*r - (c^2 - c*d + c*p -
c*q)*r*s)*t)/(c^2*p^2 + (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d +
d^2 + p^2 + q^2)*r^2 + (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d +
d^2 + p^2 + q^2)*s^2 + (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d +
d^2 + p^2 + q^2)*t^2 - 2*(c*p^2 - c*p*q + (c^2 - c*d)*p)*r - 2*(c*p^2
- c*p*q + (c^2 - c*d)*p - (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d
+ d^2 + p^2 + q^2)*r)*s + 2*(c*p^2 - c*p*q + (c^2 - c*d)*p - (2*(c -
d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*r - (2*(c -
d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*s)*t),
(c^3*p*r + (c^2 - c*d + c*p - c*q)*r*s^2 + (c^2*d + c^2*q)*r^2 +
(c^2*d - c^2*p + c^2*q + (c^2 - c*d + c*p - c*q)*s)*t^2 - (c^3 - c^2*d
+ 2*c^2*p - c^2*q)*r*s - (c^3*p + (c^2 - c*d + c*p - c*q)*s^2 +
(2*c^2*d - c^2*p + 2*c^2*q)*r - (c^3 - c^2*d + 2*c^2*p - c^2*q - (c^2
- c*d + c*p - c*q)*r)*s)*t)/(c^2*p^2 + (2*(c - d)*p - 2*(c - d + p)*q
+ c^2 - 2*c*d + d^2 + p^2 + q^2)*r^2 + (2*(c - d)*p - 2*(c - d + p)*q
+ c^2 - 2*c*d + d^2 + p^2 + q^2)*s^2 + (2*(c - d)*p - 2*(c - d + p)*q
+ c^2 - 2*c*d + d^2 + p^2 + q^2)*t^2 - 2*(c*p^2 - c*p*q + (c^2 -
c*d)*p)*r - 2*(c*p^2 - c*p*q + (c^2 - c*d)*p - (2*(c - d)*p - 2*(c - d
+ p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*r)*s + 2*(c*p^2 - c*p*q + (c^2
- c*d)*p - (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 +
q^2)*r - (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 +
q^2)*s)*t), (c^2*p*q*r + (c*p^2 + c*q^2 + (3*c^2 - c*d)*p - (c^2 - c*d
+ 2*c*p)*q)*r^2 + (c*p^2 + c*q^2 + (2*c^2 - c*d)*p - (c^2 - c*d +
2*c*p)*q)*t^2 - ((c^2 - c*d + c*p - c*q)*r^2 - (c*q^2 - (c^2 - c*d +
c*p)*q)*r)*s - (c^2*p*q + (c*q^2 - (c^2 - c*d + c*p)*q - (c^2 - c*d +
c*p - c*q)*r)*s + (2*c*p^2 + 2*c*q^2 + (5*c^2 - 2*c*d)*p - 2*(c^2 -
c*d + 2*c*p)*q)*r)*t)/(c^2*p^2 + (2*(c - d)*p - 2*(c - d + p)*q + c^2
- 2*c*d + d^2 + p^2 + q^2)*r^2 + (2*(c - d)*p - 2*(c - d + p)*q + c^2
- 2*c*d + d^2 + p^2 + q^2)*s^2 + (2*(c - d)*p - 2*(c - d + p)*q + c^2
- 2*c*d + d^2 + p^2 + q^2)*t^2 - 2*(c*p^2 - c*p*q + (c^2 - c*d)*p)*r -
2*(c*p^2 - c*p*q + (c^2 - c*d)*p - (2*(c - d)*p - 2*(c - d + p)*q +
c^2 - 2*c*d + d^2 + p^2 + q^2)*r)*s + 2*(c*p^2 - c*p*q + (c^2 - c*d)*p
- (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*r -
(2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*s)*t),
((c^2 - c*d + c*p - c*q)*r*s^2 + (c*d^2 + c*p^2 + c*q^2 + 2*(c*d -
c*p)*q + (c^2 - 2*c*d)*p)*r^2 - (c^2*d - c*d^2 - c*q^2 + (c^2 + c*d)*p
+ (c^2 - 2*c*d + c*p)*q)*r*s + (c*d^2 - 2*c*d*p + c*p^2 + c*q^2 +
2*(c*d - c*p)*q + (c^2 - c*d + c*p - c*q)*s)*t^2 + (c^2*d*p +
c^2*p*q)*r - (c^2*d*p + c^2*p*q + (c^2 - c*d + c*p - c*q)*s^2 +
(2*c*d^2 + 2*c*p^2 + 2*c*q^2 + 4*(c*d - c*p)*q + (c^2 - 4*c*d)*p)*r -
(c^2*d - c*d^2 - c*q^2 + (c^2 + c*d)*p + (c^2 - 2*c*d + c*p)*q - (c^2
- c*d + c*p - c*q)*r)*s)*t)/(c^2*p^2 + (2*(c - d)*p - 2*(c - d + p)*q
+ c^2 - 2*c*d + d^2 + p^2 + q^2)*r^2 + (2*(c - d)*p - 2*(c - d + p)*q
+ c^2 - 2*c*d + d^2 + p^2 + q^2)*s^2 + (2*(c - d)*p - 2*(c - d + p)*q
+ c^2 - 2*c*d + d^2 + p^2 + q^2)*t^2 - 2*(c*p^2 - c*p*q + (c^2 -
c*d)*p)*r - 2*(c*p^2 - c*p*q + (c^2 - c*d)*p - (2*(c - d)*p - 2*(c - d
+ p)*q + c^2 - 2*c*d + d^2 + p^2 + q^2)*r)*s + 2*(c*p^2 - c*p*q + (c^2
- c*d)*p - (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 +
q^2)*r - (2*(c - d)*p - 2*(c - d + p)*q + c^2 - 2*c*d + d^2 + p^2 +
q^2)*s)*t)]
A = matrix( SR, 4, C )

-- 
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org

Reply via email to