Хелпикс

Главная

Контакты

Случайная статья





Приложение А. Исходный код



Приложение А. Исходный код

Метод Гаусса:

void gauss(const std::vector<std::vector<float>>& matrix_,

  std::vector<float>& solution)

{

      

  std::vector<std::vector<float>> matrix(matrix_);

  size_t n = matrix.size();

  size_t m = n + 1;

  for (size_t k = 0; k < n; ++k)

  {

        float temp = matrix[k][k];

        for (size_t j = k; j < m; ++j)

        {

               matrix[k][j] /= temp;

        }

        for (size_t i = k + 1; i < n; ++i)

        {

               temp = matrix[i][k];

               for (size_t j = k; j < m; ++j)

               {

                      matrix[i][j] -= temp * matrix[k][j];

               }

        }

  }

  //std::vector<float>& solution

  solution[n - 1] = matrix[n - 1][m - 1];

  for (size_t k = n - 2; k != -1; --k)

  {

        float sum = 0;

        for (size_t j = k + 1; j < n; ++j)

        {

               sum += matrix[k][j] * solution[j];

        }

        solution[k] = matrix[k][m - 1] - sum;

  }

  return;

}



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.