#include
#define N 5
int main() {
array double a[5][5] = {2, 30, 100, 1000, 10000,
0.3, 1, 10, 100, 1000,
0.04, 0.1, 1, 10, 100,
0.001, 0.01, 0.1, 1, 10,
0.0002, 0.003, 0.01, 0.1, 1};
array double evalues[N];
array double evectors[N][N];
array double *v, vv[N][N];
int i, status;
eigen(a, evalues, evectors);
printf("eigennvalues of a =\n%e\n", evalues);
printf("eigenvectors of a =\n%e\n", evectors);
eigen(a, evalues, evectors, "nobalance");
printf("no balance: eigennvalues of a =\n%e\n", evalues);
printf("no balance: eigenvectors of a =\n%e\n", evectors);
vv = transpose(evectors);
for(i=0; i
eigennvalues of a =
7.327477e+00 -1.508424e+00 1.809473e-01 -1.555781e-15 2.032652e-16
eigenvectors of a =
-9.959858e-01 -9.945522e-01 -9.966546e-01 -7.564396e-14 4.879875e-14
-8.892060e-02 1.028639e-01 -5.396722e-02 -9.891903e-15 -2.815928e-14
-1.025131e-02 1.687971e-02 -6.047655e-02 9.948856e-01 8.268104e-01
-6.173564e-04 -2.900250e-04 1.047629e-02 -1.010080e-01 5.588107e-01
-9.959858e-05 -9.945522e-05 -9.966546e-05 1.519397e-04 -6.414918e-02
no balance: eigennvalues of a =
7.327477e+00 1.809473e-01 -1.508424e+00 1.227397e-15 -4.649855e-16
no balance: eigenvectors of a =
9.959858e-01 9.966546e-01 -9.945522e-01 1.586027e-13 -2.911653e-16
8.892060e-02 5.396722e-02 1.028639e-01 2.746367e-15 -1.029631e-14
1.025131e-02 6.047655e-02 1.687971e-02 9.842796e-01 9.714797e-01
6.173564e-04 -1.047629e-02 -2.900250e-04 -1.764452e-01 -2.367118e-01
9.959858e-05 9.966546e-05 -9.945522e-05 7.801720e-03 1.395638e-02
A*v-evalues[i]*v = -0.000000 0.000000 0.000000 0.000000 -0.000000
A*v-evalues[i]*v = 0.000000 0.000000 0.000000 0.000000 -0.000000
A*v-evalues[i]*v = 0.000000 0.000000 0.000000 0.000000 0.000000
A*v-evalues[i]*v = 0.000000 0.000000 0.000000 0.000000 0.000000
A*v-evalues[i]*v = -0.000000 0.000000 0.000000 0.000000 -0.000000