Als eerste voorbeeld beschouwen we een eenvoudige 3x3-matrix:
Algebraic Field Algebraic Field |
Full MatrixSpace of 3 by 3 dense matrices over Integer Ring Full MatrixSpace of 3 by 3 dense matrices over Integer Ring |
Door de ring van $A$ te veranderen naar Symbolic Ring (SR) kunnen we Sage dwingen om de eigenwaarden toch symbolisch te berekenen:
Symbolic Ring Symbolic Ring |
Maar het is niet altijd zo eenvoudig. Beschouw nu de matrix $B$ uit Oefening 6.1 met $n=6$.
|
Traceback (click to the left of this block for traceback) ... ArithmeticError: could not determine eigenvalues exactly using symbolic matrices; try using a different type of matrix via self.change_ring(), if possible Traceback (most recent call last): File "<stdin>", line 1, in <module> File "_sage_input_7.py", line 10, in <module> exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("Qi5laWdlbnZhbHVlcygp"),globals())+"\\n"); execfile(os.path.abspath("___code___.py")) File "", line 1, in <module> File "/var/sage/tmpFNpBXn/___code___.py", line 2, in <module> exec compile(u'B.eigenvalues() File "", line 1, in <module> File "sage/matrix/matrix_symbolic_dense.pyx", line 190, in sage.matrix.matrix_symbolic_dense.Matrix_symbolic_dense.eigenvalues (/opt/sage/sage-6.8/src/build/cythonized/sage/matrix/matrix_symbolic_dense.c:2569) ArithmeticError: could not determine eigenvalues exactly using symbolic matrices; try using a different type of matrix via self.change_ring(), if possible |
Sage is niet in staat om de eigenwaarden symbolisch te berekenen. Het symbolisch berekenen van de eigenwaarden van $B$ is voor vele softwarepakketten al reeds te complex. Wil men deze eigenwaarden toch numeriek bepalen, dan kan men in vlottende-puntvoorstelling werken:
|
We veranderen de ring van de matrix naar RealField(37), een vlottende-puntvoorstelling met 37-bit precisie. Dit komt ongeveer overeen met 10 decimale cijfers na de komma.
We berekenen de eigenwaarden:
__main__:1: UserWarning: Using generic algorithm for an inexact ring, which will probably give incorrect results due to numerical precision issues. [17.20685727, 1.988156537, 0.7747192223, 0.4462147548, 0.3188643843, 0.2651878342] __main__:1: UserWarning: Using generic algorithm for an inexact ring, which will probably give incorrect results due to numerical precision issues. [17.20685727, 1.988156537, 0.7747192223, 0.4462147548, 0.3188643843, 0.2651878342] |
[17.20685727, 1.988156537, 0.7747192223, 0.4462147548, 0.3188643843, 0.2651878342] [17.20685727, 1.988156537, 0.7747192223, 0.4462147548, 0.3188643843, 0.2651878342] |
|
|
|
|
|
[0, 0, 0] [0, 0, 0] |
[0 1|0] [0 0|0] [---+-] [0 0|0] [0 1|0] [0 0|0] [---+-] [0 0|0] |
Dus deze matrix A heeft eigenwaarde 0 met algebraische multipliciteit 3 en geometrische multipliciteit 2.
|