Matrixmultiplikation


/*
 *  Multiplikation von Matrizen
 */

#include <stdio.h>

#define N   300

int main(int argc, char* argv[])
{
  double   a[N][N], b[N][N], c[N][N];
  double   spur, spur1, cth;
  int      i,j,k;
  
  /* Anfangswerte setzen */
  for (i=0; i<N; i++) {
    for (j=0; j<N; j++) {
      a[i][j] = i+j;
      b[i][j] = i-j;
    }
    b[i][i] = 1.0;
  }
  
  /* Matrixmultiplikation */
  for (i=0; i<N; i++) {
    for (j=0; j<N; j++) {
      c[i][j] = 0.0;
      for (k=0; k<N; k++) {
	c[i][j] += a[i][k] * b[k][j];
      }
    }
  }
  
  /* Testdaten ausgeben */
  spur1 = N * (N-1);
  printf("Spur theoretisch: %lf\n", spur1);
  spur = 0.0;
  for (i=0; i<N; i++) {
    spur += c[i][i];
  }
  printf("Spur            : %lf\n", spur);
  
  cth = 332334001.0;
  printf("c[0][1] theor.  : %lf\n", cth);
  printf("c[0][1]         : %lf\n", c[0][1]);
}

previous    contents     next

Peter Junglas 8.10.1999