Skip to content

eagerbeaver04/Poisson-equation

Repository files navigation

Программирование метода сопряженных градиентов с предобуславливателем на основе неполного разложения Холецкого. Работа с разреженными матрицами, включая 5-ти диагональные. Решение уравнения Пуассона, а также исследование метода.

Этапы решения

  1. Способ хранения разреженной матрицы и операции над ней Реализация эффективного способа хранения разреженных матриц и основных операций с матрицами и векторами. Мною была выбрана система хранения массива списков элементов. Это позволяет экономить память, потому что нулевые элементы не учитываются. Реализация представлена в Sparse.h и Sparse.cpp, а структуры узла и односвязного списка с указателем на конец( для быстрого добавления) представлены в файлах Node.h, Node.cpp, List.h, List.cpp соответсвенно и Iterator.cpp для итератирования по этим объектам.

  2. Разложение Холецкого

    2.1. Разложение Холецкого для разреженной матрицы Реализация разложения Холецкого, оптимизированного для разреженных матриц.

    2.2. Неполное разложение Холецкого A) Неполное разложение Холецкого с нулевым порогом - факторизация с ненулевыми элементами только в тех позициях, что и исходная матрица. Б) Неполное разложение Холецкого с ненулевым порогом – отсекаются элементы меньше порогового значения, исключая диагональные.

    Указанные выше разложения представлены в файле Cholesky decomposition/CholeskyDecomposition.cpp.

  3. Метод сопряженных градиентов А) Метод сопряженных градиентов без предобуславливателя. Б) Метод сопряженных градиентов с предобуславливателем, использующим неполное разложение Холецкого.

Метод сопряженных градиентов представлен в обоих вариациях в каталоге PreconditionedConjugateGradientsMethod. Предобуславливание реализовано с помощью нижней треугольной матрицы из разложения Холецкого.

  1. Построение СЛАУ для модельной задачи Создание и решение СЛАУ, отражающей модельную задачу, включая различные варианты в зависимости от исследуемых параметров.

Построение СЛАУ отражено в каталоге PoissonEquation, а также решения задачи Дирихле для уравнения Пуассона методом сопряженных градиентов.

Корректность выполнения отражена в виде тестов в файле Source.cpp

Запуск проекта

  1. Склонируйте репозиторий:

    git clone https://github.com/eagerbeaver04/Poisson-equation.git
    cd ваш-репозиторий
    
  2. Соберите проект:

    mkdir build
    cd build
    cmake ..
    make
    

(или используйте средства IDE)

About

Solving Poisson Equation on C++

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published