Exemplo n.º 1
0
void G_to_Eigen(Vector& GV, Eigen::VectorXd* _EigenV)
{
  Eigen::VectorXd& EigenV = *_EigenV;
  EigenV.resize(GV.Length());
  for(int i=0; i<GV.Length(); i++)
    EigenV(i) = GV[i];
}
Exemplo n.º 2
0
int main()
{
	int n, MAXN, m, i, j, k;
	double a[MAX_SIZE][MAX_SIZE], v[MAX_SIZE];
	double lambda, TOL;

	while (scanf("%d", &n) != EOF) {
		for (i=0; i<n; i++) 
			for (j=0; j<n; j++) 
				scanf("%lf", &a[i][j]);
		scanf("%lf %d", &TOL, &MAXN);
		scanf("%d", &m);
		for (i=0; i<m; i++) {
			scanf("%lf", &lambda);
			for (j=0; j<n; j++)
				scanf("%lf", &v[j]);
			switch (EigenV(n, a, &lambda, v, TOL, MAXN)) {
				case -1: 
					printf("%12.8f is an eigenvalue.\n", lambda );
					break;
				case 0:
					printf("Maximum number of iterations exceeded.\n");
					break;
				case 1:
					printf("%12.8f\n", lambda );
					for (k=0; k<n; k++)
						printf("%12.8f ", v[k]);
					printf("\n");
					break;
			}
		}
		printf("\n");
	}

	return 0;
}