home *** CD-ROM | disk | FTP | other *** search
/ World of Shareware - Software Farm 2 / wosw_2.zip / wosw_2 / CPROG / ANUMR5.ZIP / EGNTVECT.C < prev    next >
C/C++ Source or Header  |  1991-05-25  |  1KB  |  93 lines

  1. /* OK */
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <math.h>
  6. #include <mem.h>
  7. #include <alloc.h>
  8. #include <conio.h>
  9. #include <dos.h>
  10.  
  11.  
  12. #include "anum.h"
  13. #include "sysio.h"
  14.  
  15. #define MAXDIM 8
  16.  
  17.  
  18.  
  19. void affmat(int dim, double *matrix)
  20.  
  21.  
  22. {    register int i,j;
  23.  
  24.     for (i=0;i<dim;i++)
  25.     {    for (j=0;j<dim;j++) printf("% 6lg ",*(matrix+i*dim+j));
  26.         putchar('\n');
  27.     }
  28. }
  29.  
  30.  
  31. void affvect(int dim, double *v)
  32.  
  33. {    register int i;
  34.  
  35.     for (i=0; i<dim; i++)
  36.     {    printf("% lf ",*(v+i));
  37.         if ((i+1)%6==0) putchar('\n');
  38.     }
  39.     putchar('\n');
  40. }
  41.  
  42.  
  43.  
  44. void results(int dim, int nbvp, double *mvectp)
  45.  
  46. {       int i;
  47.  
  48.     printf("\nEigen vectors : ");
  49.     for (i=0; i<nbvp; i++)
  50.     {    putchar('\n');
  51.         affvect(dim, mvectp+dim*i);
  52.     }
  53.     printf("Core left : %ld bytes.\n",farcoreleft());
  54. }
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61. void main(void)
  62.  
  63.  
  64. {    double matrix[4][4] ={3,2,1,0,4,6,3,1,2,3,7,2,1,3,5,7};
  65.     double vvalp[4]={12.6904, 5.79129, 3.30958, 1.20871};
  66.     double mvectp[4][4];
  67.     int errcode;
  68.  
  69.  
  70.     clrscr();
  71.     printf("Test program for function eigen_vector\n");
  72.     sleep(2);
  73.  
  74.  
  75.  
  76.     clrscr();
  77.     printf("Matrix order : %d\n",4);
  78.     affmat(4,matrix);
  79.      puts("Eigen values");
  80.     affvect(4,vvalp);
  81.  
  82.  
  83.     eigen_vect(4,matrix,3, vvalp,mvectp,&errcode);
  84.     SYSMSG(errcode, stderr);
  85.  
  86.     results(4, 3, mvectp);
  87.  
  88.  
  89. }
  90.  
  91.  
  92.  
  93.