Advertisement
epidzhx

Untitled

Mar 15th, 2020
526
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.34 KB | None | 0 0
  1. #include <iostream>
  2. #include <math.h>
  3. #include <stdlib.h>
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     int i, j;
  9.     // создаем массив
  10.  
  11.     const int n = 4, m = 5;
  12.     float matrix[n][m] = {{-2, -9, -3, 7, -26}, {-7, 2, 2, 5, -25}, {-6, 2, 0, 0, -16}, {0, -3, 8, -3, -5}};
  13.  
  14.     //выводим массив
  15.     cout << "matrix: " << endl;
  16.     for (i = 0; i < n; i++)
  17.     {
  18.         for (j = 0; j < m; j++)
  19.             cout << matrix[i][j] << " ";
  20.         cout << endl;
  21.     }
  22.     cout << endl;
  23.  
  24.     //Метод Гаусса
  25.     //Прямой ход, приведение к верхнетреугольному виду
  26.     float tmp, xx[m];
  27.     int k;
  28.  
  29.     for (i = 0; i < n; i++)
  30.     {
  31.         tmp = matrix[i][i];
  32.         for (j = n; j >= i; j--)
  33.             matrix[i][j] /= tmp;
  34.         for (j = i + 1; j < n; j++)
  35.         {
  36.             tmp = matrix[j][i];
  37.             for (k = n; k >= i; k--)
  38.                 matrix[j][k] -= tmp * matrix[i][k];
  39.         }
  40.     }
  41.     /*обратный ход*/
  42.     xx[n - 1] = matrix[n - 1][n];
  43.     for (i = n - 2; i >= 0; i--)
  44.     {
  45.         xx[i] = matrix[i][n];
  46.         for (j = i + 1; j < n; j++)
  47.             xx[i] -= matrix[i][j] * xx[j];
  48.     }
  49.  
  50.     //Выводим решения
  51.     for (i = 0; i < n; i++)
  52.         cout << xx[i] << " ";
  53.     cout << endl;
  54.  
  55.     return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement