sage: f = maxima.eval('f[i,j] := i/j') sage: A = maxima('genmatrix(f,4,4)'); A matrix([1,1/2,1/3,1/4],[2,1,2/3,1/2],[3,3/2,1,3/4],[4,2,4/3,1]) sage: A.determinant() 0 sage: A.echelon() matrix([1,1/2,1/3,1/4],[0,0,0,0],[0,0,0,0],[0,0,0,0]) sage: A.eigenvalues() [[0,4],[3,1]] sage: A.eigenvectors() [[[0,4],[3,1]],[1,0,0,-4],[0,1,0,-2],[0,0,1,-4/3],[1,2,3,4]]
We can also compute the echelon form in Sage:
sage: B = matrix(QQ, A) sage: B.echelon_form() [ 1 1/2 1/3 1/4] [ 0 0 0 0] [ 0 0 0 0] [ 0 0 0 0] sage: B.charpoly('x').factor() (x - 4) * x^3
See About this document... for information on suggesting changes.