/* Numerical Anaysis (E) 2016 Tokyo Institute of Technology */ // To compile: // gcc -o inverseiteration inverseiteration.c -lm #include #include #include #define N 4 // matrix size #define SIGMA 1.75 //#define SIGMA 3.21 //#define SIGMA 5.67 #define EPSILON 1.0E-4 #define LOOP_COUNT 10 void setting(double (*)[N], double (*)[N], double (*)); void Gaussian_elimination(double (*)[N], double (*), double (*)); double inner_product(double (*), double (*)); int main() { int loop, i; double A[N][N], B[N][N], x[N], v[N], mu, lambda, temp; setting(A, B, x); for(loop=0; loop=0; i--) { if (i==N-1) { if (fabs(C[i][i]) < EPSILON) { printf(" warning: C is a singular matrix \n"); } x[i] = b[i]/C[i][i]; } else { temp = 0.0; for(j=i+1; j