vakho

რიცხვითის ლაბ. N3

Dec 22nd, 2012
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.15 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <vector>
  4.  
  5. using namespace std;
  6.  
  7. /* შემოსატანი მატრიცა:
  8.  0       5.1     4       9.1
  9.  1      -7.5     6      -0.5
  10. -1.5     9      -4       3.5
  11.  2.4    -3.3     0      -0.9
  12. */
  13.  
  14. void print(vector <double> v);
  15.  
  16. const int n = 4;
  17.  
  18. int main()
  19. {
  20.     vector<double> b(n), a(n), c(n), f(n);
  21.  
  22.     // ვექტორების შევსება:
  23.     ifstream ifs("matrix.txt");
  24.     for (int i = 0; i < n; i++)
  25.         ifs >> b[i] >> a[i] >> c[i] >> f[i];
  26.     ifs.close();
  27.  
  28.     vector<double> alfa(n), beta(n), x(n), y(n);
  29.  
  30.     // i = {2 ... n}
  31.     alfa[0] = a[0];
  32.     for (int i = 1; i < n; i++)
  33.     {
  34.         beta[i] = b[i] / alfa[i - 1];
  35.         alfa[i] = a[i] - beta[i] * c[i - 1];
  36.     }
  37.  
  38.     /*
  39.         Ly = f
  40.         i = {2 ... n}
  41.     */
  42.     y[0] = f[0];
  43.     for (int i = 1; i < n; i++)
  44.         y[i] = f[i] - beta[i] * y[i - 1];
  45.  
  46.     /*
  47.         Ux = y
  48.         i = {n - 1 ... 1}
  49.     */
  50.     x[n - 1] = y[n - 1] / alfa[n - 1];
  51.     for (int i = n - 2; i >= 0; i--)
  52.         x[i] = (y[i] - c[i] * x[i + 1]) / alfa[i];
  53.  
  54.     printVector(x);
  55.     system("PAUSE");
  56.     return(0);
  57.  
  58. }
  59.  
  60. void printVector(vector<double> v)
  61. {
  62.     for (int i = 0; i < v.size(); i++)
  63.         cout << v[i] << "\t";
  64.     cout << endl;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment