# ApCoCoA-1:Num.SimDiag

From ApCoCoAWiki

Revision as of 13:48, 29 October 2020 by AndraschkoBot (talk | contribs) (replaced <quotes> tag by real quotes)

This article is about a function from ApCoCoA-1. |

## Num.SimDiag

Computes an approximate diagonalization of a set of matrices.

### Syntax

Num.SimDiag(A:LIST, MaxIt:INT):[B:MAT, C:MAT]

### Description

*Please note:* The function(s) explained on this page is/are using the *ApCoCoAServer*. You will have to start the ApCoCoAServer in order to use it/them.

This function returns a list of two matrices, containing the approximate (almost) eigenvectors of the matrices in `A` and its inverse.

@param

*A*A list of quadratic matrices with rational entries.@param

*MaxIt*The maximum number of iterations.@return The output is a list of two matrices

`[B:MAT, C:MAT]`. The first matrix`B`contains the real almost eigenvectors of the matrices in`A`. The matrix`C`is the inverse of`B`.

#### Example

M1 := Mat([[0, 0, -0.079, -0.018],[0, 0, 0.032, -0.012], [1, 0, 1.056, -0.012],[0, 1, -0.060, 1.025]]); M2 := Mat([[0, -0.063, 0, -0.018],[1, 1.026, 0, -0.012], [0, 0, 0, -0.012], [0, 0, 1, 1.025]]); M1 := Transposed(M1); M2 := Transposed(M2); Result := Num.SimDiag([M1,M2],10); Dec(Result[2]*M1*Result[1],3); Dec(Result[2]*M2*Result[1],3); Mat([ ["0.062", "0.016", "0.000", "0.006"], ["0.021", "0.030", "-0.002", "-0.000"], ["0.000", "0.005", "1.006", "-0.035"], ["-0.000", "-0.000", "-0.031", "0.982"] ]) ------------------------------- Mat([ ["0.048", "0.000", "0.030", "-0.005"], ["0.000", "0.991", "-0.002", "-0.021"], ["0.020", "0.005", "0.029", "-0.000"], ["0.000", "-0.030", "-0.000", "0.982"] ]) -----------------------------

### See also