pabblo097

5.1

Dec 10th, 2020
479
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.99 KB | None | 0 0
  1. #include <iostream>
  2. #include <mpi.h>
  3.  
  4. using namespace std;
  5.  
  6. double tBegin, tEnd;
  7.  
  8. int main(int argc, char* argv[])
  9. {
  10.     MPI_Init(&argc, &argv);
  11.  
  12.     unsigned int n;
  13.  
  14.     cout << "Wprowadz n" << endl;
  15.     cin >> n;
  16.  
  17.     double* G = new double[n * n];
  18.     double* C = new double[n * n];
  19.  
  20.     double* a = new double[n];
  21.     double* u = new double[n];
  22.     double* v = new double[n];
  23.  
  24.     double alfa, beta;
  25.  
  26.     for (int i = 0; i < n; i++)
  27.     {
  28.         for (int j = 0; j < n; j++)
  29.         {
  30.             G[i * n + j] = 0.4;
  31.             C[i * n + j] = 0.7;
  32.         }
  33.     }
  34.  
  35.     for (int i = 0; i < n; i++)
  36.     {
  37.         a[i] = 0.2;
  38.         u[i] = 0.3;
  39.         v[i] = 0.4;
  40.     }
  41.     alfa = 0.6;
  42.     beta = 0.7;
  43.  
  44.     tBegin = MPI_Wtime();
  45.  
  46.     for (int i = 0; i < 5; i++)
  47.     {
  48.         for (int j = 0; j < n * n; j++)
  49.         {
  50.             G[j] = beta * G[j] - C[j];
  51.         }
  52.  
  53.         for (int j = 0; j < n; j++)
  54.         {
  55.             alfa = v[j] * u[j];
  56.         }
  57.  
  58.         for (int j = 0; j < n; j++)
  59.         {
  60.             u[j] = alfa * v[j] - a[j];
  61.         }
  62.  
  63.         for (int j = 0; j < n; j++)
  64.         {
  65.             for (int k = 0; k < n; k++)
  66.             {
  67.                 v[j] = G[j * n + k] * u[k];
  68.             }
  69.         }
  70.  
  71.         beta -= v[i] * a[i];
  72.     }
  73.  
  74.     tEnd = MPI_Wtime();
  75.  
  76.     cout << "Wartosci obliczone: " << endl;
  77.  
  78.     // cout << "G = " << endl;
  79.     // for (int i = 0; i < n; i++)
  80.     // {
  81.     //     for (int j = 0; j < n; j++)
  82.     //         cout << G[i * n + j] << " ";
  83.     //     cout << endl;
  84.     // }
  85.  
  86.     // cout << "alfa=" << alfa << endl;
  87.  
  88.     // cout << "u = " << endl;
  89.  
  90.     // for (int i = 0; i < n; i++)
  91.     //     cout << u[i] << " ";
  92.     // cout << endl;
  93.  
  94.     // cout << "v = " << endl;
  95.     // for (int i = 0; i < n; i++)
  96.     //     cout << v[i] << " ";
  97.     // cout << endl;
  98.  
  99.     cout << "beta min = " << beta << endl;
  100.  
  101.     cout << "Czas: " << tEnd - tBegin << endl;
  102.  
  103.     MPI_Finalize();
  104.  
  105.     return 0;
  106. }
Add Comment
Please, Sign In to add comment