Dambosin

Prostie iteracii

Mar 21st, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.46 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3.  
  4.  
  5. using namespace std;
  6. int main()
  7. {  
  8.     setlocale(LC_ALL, "Russian");
  9.     double ebs;
  10.     int n;
  11.     double arr[100][100];  
  12.     cout << "Введите размер матрицы" << endl;
  13.     cin >> n;
  14.     cout << "Введите матрицу" << endl;
  15.     for (int i = 0; i < n; i++) {
  16.         for (int j = 0; j <= n; j++) {
  17.             cin >> arr[i][j];
  18.         }
  19.     }
  20.     cout << "Введите максимальную погрешность " << endl;
  21.     cin >> ebs;
  22.     for (int i = 0; i < n; i++) {
  23.  
  24.         int pos = 0;
  25.         for (int j = 0; j < n; j++) {
  26.             if (arr[pos][i] < arr[j][i]) {
  27.                 pos = j;
  28.             }
  29.         }
  30.         double z[100];
  31.         for (int j = 0; j <= n; j++) {
  32.             z[j] = arr[i][j];
  33.             arr[i][j] = arr[pos][j];
  34.             arr[pos][j] = z[j];
  35.         }
  36.     }
  37.     cout << endl;
  38.     for (int i = 0; i < n; i++) {
  39.         for (int j = 0; j <= n; j++) {
  40.             cout << arr[i][j] << " ";
  41.         }
  42.         cout << endl;
  43.     }
  44.  
  45.     double x[100];
  46.     double xxx[100];
  47.     bool z;
  48.     int k = 0;
  49.     for (int i = 0; i < n; i++) xxx[i] = 0;
  50.     do{
  51.         k++;
  52.         z = false;
  53.         for (int i = 0; i < n; i++) {
  54.             x[i] = arr[i][n];
  55.  
  56.             for (int j = 0; j < n; j++) {
  57.                 if (j != i) {
  58.                     x[i] -= arr[i][j] * xxx[j];
  59.                 }
  60.             }
  61.             x[i] /= arr[i][i];
  62.             if (fabs(xxx[i] - x[i]) > ebs) {
  63.                 z = true;
  64.             }
  65.         }
  66.         for (int j = 0; j < n; j++) {
  67.             xxx[j] = x[j];
  68.         }
  69.     } while (z);
  70.     for (int j = 0; j < n; j++) {
  71.         cout <<"x"<<j+1<<" = "<< xxx[j] << endl;
  72.     }
  73.     cout << "Количество итераций " << k;
  74.  
  75.     return 0;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment