home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / dev / c / math_classes.lha / math_classes / matrix / crank.cc next >
Encoding:
C/C++ Source or Header  |  1996-10-27  |  647 b   |  49 lines

  1. #include "Matrix.h"
  2.  
  3. #define loops 40000
  4. #define size 9
  5. #define h 2.0
  6. #define k 10.0
  7.  
  8. int main(int argc,char *argv[])
  9. {
  10. Matrix u0(size,1);
  11. Matrix u1(size,1);
  12. Matrix v(size,1);
  13. mtrxtype d;
  14. mtrxtype my;
  15. Matrix I(size,size);
  16. Matrix a(size,size);
  17. LUmatrix a1;
  18. Matrix a2(size,size);
  19. int i;
  20. Matrix b(size,1);
  21. d=0.119;
  22. my=d*h/k/k;
  23. for(i=1;i<size;i++)
  24.     {
  25.     a(i,i)=2.0;
  26.     a(i+1,i)=-1.0;
  27.     a(i,i+1)=-1.0;
  28.     }
  29. a(size,size)=2.0;
  30. b(1,1)=my*0.0;
  31. b(size,1)=my*10.0;
  32. for(i=1;i<=size;i++)
  33.     {
  34.     u1(i,1)=2.0;
  35.     }
  36. I.setunity();
  37. a1=LUdecompose(I+(my/2)*a);
  38. a2=I-(my/2)*a;
  39. for(i=0;i<loops;i++)
  40.     {
  41.     u0=u1;
  42.     v=a2*u0+b;
  43.     u1=solve(a1,v);
  44.     print(transpose(u1));
  45.     }
  46. return(0);    
  47. }
  48.  
  49.