profile
Размещено 4 года назад по предмету Информатика от matsuvorov

написать программу решения системы линейных уравнений методом интеграций c++
программа должна иметь графический интерфейс

  1. Ответ на вопрос
    Ответ на вопрос дан Dmity228

    Ответ:

    #include "stdafx.h"

    #include "iostream"

    #include "vector"

    #include "cmath"

    #include "locale.h"

    using namespace std;

    int main()

    {

       // Считываем размер вводимой матрицы

       setlocale(LC_ALL, "rus");

       int size;

       cout << "Введите размер вводимой матрицы: ";

       cin >> size;

       cout << endl;

       

       // Будем хранить матрицу в векторе, состоящем из

       // векторов вещественных чисел

       vector <vector <long double> > matrix;

       

       // Матрица будет иметь размер (size) x (size + 1),

       // c учетом столбца свободных членов    

       matrix.resize (size);

       cout << "Введите элементы матрицы " << size << "x" << size+1 <<":" <<endl;

       for (int i = 0; i < size; i++)

       {

           matrix[i].resize (size + 1);

           for (int j = 0; j < size + 1; j++)

           {

               cin >> matrix[i][j];

           }

       }

       // Считываем необходимую точность решения

       long double eps;

       cout << endl;

       cout << "Введите точность решения: ";

       cin >> eps;

       // Введем вектор значений неизвестных на предыдущей итерации,

       // размер которого равен числу строк в матрице, т.е. size,

       // причем согласно методу изначально заполняем его нулями

       vector <long double> previousVariableValues (size, 0.0);

       // Будем выполнять итерационный процесс до тех пор,

       // пока не будет достигнута необходимая точность    

       while (true)

       {

           // Введем вектор значений неизвестных на текущем шаге      

           vector <long double> currentVariableValues (size);

           // Посчитаем значения неизвестных на текущей итерации

           // в соответствии с теоретическими формулами

           for (int i = 0; i < size; i++)

           {

               // Инициализируем i-ую неизвестную значением

               // свободного члена i-ой строки матрицы

               currentVariableValues[i] = matrix[i][size];

               // Вычитаем сумму по всем отличным от i-ой неизвестным

               for (int j = 0; j < size; j++)

               {

                   if (i != j)

                   {

                       currentVariableValues[i] -= matrix[i][j] * previousVariableValues[j];

                   }

               }

               // Делим на коэффициент при i-ой неизвестной

               currentVariableValues[i] /= matrix[i][i];

           }

           // Посчитаем текущую погрешность относительно предыдущей итерации

           long double error = 0.0;

           

           for (int i = 0; i < size; i++)

           {

               error += abs (currentVariableValues[i] - previousVariableValues[i]);

           }

           // Если необходимая точность достигнута, то завершаем процесс

           if (error < eps)

           {

               break;

           }

           // Переходим к следующей итерации, так

           // что текущие значения неизвестных

           // становятся значениями на предыдущей итерации

           previousVariableValues = currentVariableValues;

       }

       // Выводим найденные значения неизвестных с 8 знаками точности

       for (int i = 0; i < size; i++)

       {

           printf ("%.8llf ", previousVariableValues[i]);

       }

       cout << endl;

       system("pause");

       return 0;  

    }

    Объяснение:

Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 5 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.