Skip to content

About

Config files for my GitHub profile.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

Experiments: Numerical Methods & Mathematical Modeling

Вітаю у моєму репозиторії експериментів!

Цей репозиторій є зібранням практичних реалізацій алгоритмів математичного моделювання та оптимізації. Основна мета цих проєктів — дослідження чисельних методів розв'язання фізичних задач та пошук ефективних рішень у задачах глобальної оптимізації.

Кожен підпроєкт відображає певний підхід до програмування на Python: від високорівневого моделювання з використанням спеціалізованих бібліотек до реалізації чисельних методів "з нуля".

Основний стек технологій

Проєкти базуються на потужних інструментах для наукових обчислень:

  • Моделювання: FEniCS (МСЕ), NumPy, SciPy (чисельні методи).
  • Візуалізація: Matplotlib, PyVista.
  • Оптимізація: DEAP (генетичні алгоритми).

1. Теплопровідність (Скінченно-різницевий метод)

temperatureFDM.py — це реалізація моделювання нестаціонарної теплопровідності двовимірної пластини без використання спеціалізованих бібліотек для МСЕ.

  • Алгоритм: Метод скінченних різниць (FDM) з ітераційним оновленням поля температур у часі.
  • Фізичні умови:
    • Встановлення граничних умов для нагрівача (Dirichlet) та конвективного охолодження (Robin).
    • Моделювання процесів ізоляції на ділянках межі.
  • Візуалізація: Використання matplotlib.animation для спостереження за динамікою поширення тепла в реальному часі.
  • Ключові параметри: Конфігурування кроків за часом (tau) та просторових кроків (dx, dz) для забезпечення стійкості обчислювальної схеми.
1000 2000

2. Теплова симуляція (FEniCS)

temperatureFenicsx.py — це професійна реалізація моделювання нестаціонарної теплопровідності на 2D-геометрії з використанням методу скінченних елементів (МСЕ).

  • Бібліотеки: FEniCS (для розв'язання рівнянь у частинних похідних) та PyVista (для потужної 3D-візуалізації).
  • Можливості:
    • Реалізація нестаціонарного рівняння теплопровідності з часовою дискретизацією.
    • Визначення складних граничних умов: завдання температури (Dirichlet) на нагрівачах та моделювання конвективного теплообміну (Robin) на межах.
    • Використання спеціальних SubDomain класів для локалізації нагрівальних елементів.
  • Візуалізація: Конвертація результатів з FEniCS у формат UnstructuredGrid для візуалізації температурного поля в реальному часі через PyVista.
  • Ключові параметри: Конфігурування фізичних констант (alpha, h, T_inf) та кроку за часом (dt) для стабільної симуляції процесу.
6

3. Метод скінченних елементів (МСЕ) з нуля

fem_poisson_solver.py — це реалізація розв'язання рівняння Пуассона $\Delta u = f$ без використання спеціалізованих бібліотек типу FEniCS, що дозволяє глибше зрозуміти механіку методу скінченних елементів.

  • Алгоритм:
    • Самостійна генерація структурованої сітки (триангуляція).
    • Власна реалізація розрахунку локальної матриці жорсткості для лінійних трикутних елементів.
    • Збірка глобальної матриці системи лінійних алгебраїчних рівнянь (СЛАР) з використанням scipy.sparse для ефективної роботи з розрідженими матрицями.
  • Аналіз:
    • Модуль включає функцію fem_convergence(), що автоматично аналізує сеткову збіжність (convergence analysis), демонструючи, як точність розв'язку змінюється при подрібненні сітки.
  • Візуалізація:
    • Використання triplot для перевірки якості сітки.
    • Контурні графіки розподілу значення функції $U(x, y)$ для оцінки отриманого результату.
4 8 16 32

4. Генетичні алгоритми оптимізації

deap_exp.py — це дослідницький модуль для пошуку глобальних мінімумів складних нелінійних функцій за допомогою еволюційних стратегій.

  • Бібліотека: DEAP (Distributed Evolutionary Algorithms in Python).
  • Функціонал:
    • Реалізація базових операторів генетичного алгоритму: селекція, схрещування (crossover) та мутація.
    • Дослідження поведінки алгоритму на відомих тестових функціях (наприклад, функція Растрігіна, параболоїди), що мають велику кількість локальних мінімумів.
    • Налаштування параметрів популяції (розмір популяції, ймовірності мутації) для досягнення збіжності до глобального екстремуму.
  • Візуалізація:
    • Динамічна візуалізація руху популяції (особин) по поверхні функції через matplotlib.animation.
    • Побудова контурних карт цільових функцій для наочної демонстрації пошуку мінімуму.
  • Технічні особливості:
    • Оптимізація часу обчислень через використання numpy для векторних операцій усередині фітнес-функцій.
1 2 3 4 5

About

Config files for my GitHub profile.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages