Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
5
Добавлен:
18.08.2022
Размер:
2 Кб
Скачать
#include <iostream>
#include <conio.h>
#include <iomanip>
#include <vector>

using namespace std;

int main() {
    setlocale(LC_ALL, "RUS");
    cout << "Введите размерность массива: ";
    int i, j, k, n;
    float d, s;
    cin >> n;

    vector < vector <float> > MasA(n, vector <float>(n));

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cout << "Введите [" << i << "][" << j << "] элемент: ";
            cin >> MasA[i][j];
        }
        cout << endl;
    }

    cout << "\nВведите дополнение\n" << endl;;
    vector <float> MasB;
    for (int i = 0; i < n; i++) {
        float x;
        cout << "Введите [" << i << "]: ";
        cin >> x;
        MasB.push_back(x);
    }

    vector <float> MasX(n);

    cout << "\nСЛАУ:" << endl;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++)
            cout << setw(4) << MasA[i][j] << " ";
        cout << setw(4) << MasB[i] << endl;
    }
    
    for (int k = 0; k < n; k++) { //Прямой ход
        for (int j = k + 1; j < n; j++) {
            d = (double)MasA[j][k] / MasA[k][k];

            for (int i = k; i < n; i++)
                MasA[j][i] -= d * MasA[k][i];

            MasB[j] -= d * MasB[k];
        }
    }

    
    for (int k = n - 1; k >= 0; k--) { //Обратный ход
        d = 0;

        for (int j = k + 1; j < n; j++)
            d += MasA[k][j] * MasX[j];

        MasX[k] = (MasB[k] - d) / MasA[k][k];
    }

    cout << "Найденые иксы:" << endl;
    for (int i = 0; i < n; i++)
        cout << "x" << i + 1 << " = " << MasX[i] << " " << endl;


    int x1 = 0, x2 = 0, x3 = 0, x4 = 0;
    x1 = MasB[0] * 2 - MasX[1];
    x2 = MasB[1] * 5 + MasX[2] * 2;
    x3 = MasB[0] - MasX[1] + MasX[2] * 3;

    cout << endl << "Проверка:" << endl;
    cout << MasX[0] << " = " << x1 << endl;
    cout << MasX[1] << " = " << x2 << endl;
    cout << MasX[2] << " = " << x3 << endl;

    return 0;
}
Соседние файлы в папке методы вычислений Поплавский