[GWM] One of the features of solving [Simultaneous Equations] is that eigenvalues come into the problem at least in theory. See also [Matrix determinant]. An eigenvalue is associated with an eigenvector; when a vector is multiplied by a matrix a new vector is created; if the new vector is parallel to the original vector then it is an eigenvector and the eigenvalue is the ratio of lengths of the vector after multiplication to before multiplication. A matrix of size N by N has N eigenvalues (and vectors) although some of the eigenvalues may be repeated. Repeated eigenvalues makes the eigenvectors indistinguishable and the result is that any combination of the relevant eigenvectors is also an eigenvector. Often the user chooses one eigenvector and specifies that the other eigenvectors are perpendicular to all the other eigenvectors. The largest eigenvalue of a matrix can be found by iteratively applying the matrix to a trial vector - gradually the vector will become constant in direction, and will be "eigenvalue" times longer each time the iteration is applied. If you are very lucky, you may find another eigenvector by chance of course, but the smallest deviation from the true eigenvector will result in the largest eigenvector being found again.! This example uses non-degenerate matrix, unlike the example in [Matrix determinant]. package require math::linearalgebra set m1 { {1 1 0} {0 1 2} {1 0 1} } set v {1 1 1} set i 0; while {$i<200} { incr i set v [::math::linearalgebra::matmul $m1 $v] set ev [::math::linearalgebra::norm $v] set v [::math::linearalgebra::unitLengthVector $v] } puts "Eigenvector of $m1 is approx $v, largest eigenvalue is $ev" Result: Eigenvector of {1 1 0} {0 1 2} {1 0 1} is approx 0.557506665977 0.702414383919 0.442493334025, largest eigenvalue is 2.2599210499 Even though the original vector is near an eigenvector the algorithm still finds the largest eigenvalue (as this is the most amplified by the matrix multiplication). Determining other eigenvectors I may come back to later.