Guest User

Untitled

a guest
Dec 9th, 2014
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. ///////////////////////////////////////////////////////////////
  2. // Zadanie 6 //
  3. // Autor: Wojciech Kopeć //
  4. ///////////////////////////////////////////////////////////////
  5.  
  6. #include <iostream>
  7. #include <math.h>
  8. #include <tnt/jama_svd.h>
  9.  
  10. using namespace std;
  11. using namespace JAMA;
  12. using namespace TNT;
  13. const int size=5; //wieklosc macierzy
  14. const int p=8; //dokladnosc wynikow
  15.  
  16. int main()
  17. {
  18.  
  19. double matrix[5][5]={{-116.66654, 583.33346, -333.33308, 100.00012, 100.00012},
  20. {583.33346, -116.66654, -333.33308, 100.00012, 100.00012},
  21. {-333.33308, -333.33308, 133.33383, 200.00025, 200.00025},
  22. {100.00012, 100.00012, 200.00025, 50.000125, -649.99988,},
  23. {100.00012, 100.00012, 200.00025, -649.99988, 50.000125}};
  24. double b1[5]={-0.33388066, 1.08033290, -0.98559856, 1.31947922, -0.09473435};
  25. double b2[5]={-0.33388066, 1.08033290, -0.98559855, 1.32655028, -0.10180541};
  26. double b3[5]={0.72677951, 0.72677951, -0.27849178, 0.96592583, 0.96592583};
  27. double b4[5]={0.73031505, 0.73031505, -0.27142071, 0.96946136, 0.96946136};
  28. double z1[5], z2[5], z3[5], z4[5], b1_b2[5], b3_b4[5], z1_z2[5], z3_z4[5]={0, 0, 0, 0, 0};
  29. Array2D<double> Z1(5), Z2(5), Z3(5), Z4(5), B1(5), B2(5), B3(5), B4(5);
  30. Array2D<double> L, U, X;
  31. Array2D<double> A(size,size);
  32.  
  33. for(int i=0; i<size; i++)
  34. {
  35. for(int j=0; j<size; j++)
  36. {
  37. A[i][j]=matrix[i][j];
  38. }
  39. B1[i]=b1[i];
  40. B2[i]=b2[i];
  41. B3[i]=b3[i];
  42. B4[i]=b4[i];
  43. }
  44.  
  45. LU<double> lu(A);
  46.  
  47. L = lu.getL();
  48. U = lu.getU();
  49.  
  50. cout.precision(p);
  51. z1=lu.solve(b1);
  52.  
  53. return 0;
  54. }
  55.  
  56.  
  57.  
  58. for ( int i = 0; i < sizeMatrix; i++ )
  59. {
  60. for ( int j = i-1; j <= i; j++ )
  61. {
  62. Sum = 0.0;
  63. for ( int k = 0; k < j; k++ ) Sum = Sum + Lower[i][k] * Lower[j][k];
  64. if ( i == j ) Lower[i][i] = Math.sqrt( matrix[i][i] - Sum );
  65. else Lower[i][j] ( matrix[i][j] - Sum ) )/ Lower[j][j];
  66. }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment