Advertisement
Guest User

Untitled

a guest
May 2nd, 2013
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.00 KB | None | 0 0
  1. #include <boost/numeric/ublas/matrix.hpp>
  2. #include <boost/numeric/ublas/io.hpp>
  3. #include <boost/numeric/ublas/lu.hpp>
  4. #include <boost/numeric/ublas/vector.hpp>
  5.  
  6. #include <iostream>
  7.  
  8.  
  9. namespace ublas = boost::numeric::ublas;
  10.  
  11. ublas::vector<double> LTRIS(ublas::matrix<double>& A, ublas::vector<double> b)
  12. {
  13.     ublas::vector <double> x = b;
  14.  
  15.     ublas::permutation_matrix <std::size_t> P(A.size1());
  16.     int r = ublas::lu_factorize(A, P);
  17.  
  18.     for(std::size_t i = 1; i <= A.size1(); ++i){
  19.         for(std::size_t j = 1; j < i; j++)
  20.             x(i) = x(i) - A(i,j)*x(j);
  21.         x(i) = x(i) / A(i,i);
  22.     }
  23.    
  24.     return x;
  25. }
  26.  
  27. ublas::vector<double> UTRIS(ublas::matrix<double>& A, ublas::vector<double> b)
  28. {
  29.     ublas::vector <double> x = b;
  30.  
  31.     ublas::permutation_matrix <std::size_t> P(A.size1());
  32.     int r = ublas::lu_factorize(A, P);
  33.  
  34.     for(std::size_t i = A.size1(); i >= 1; --i){
  35.         for(std::size_t j = i + 1; j < A.size1(); j++)
  36.             x(i) = x(i) - A(i,j)*x(j);
  37.         x(i) = x(i) / A(i,i);
  38.     }
  39.    
  40.     return x;
  41. }
  42.  
  43. int main ()
  44. {
  45.    
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement