Вітаю у моєму репозиторії експериментів!
Цей репозиторій є зібранням практичних реалізацій алгоритмів математичного моделювання та оптимізації. Основна мета цих проєктів — дослідження чисельних методів розв'язання фізичних задач та пошук ефективних рішень у задачах глобальної оптимізації.
Кожен підпроєкт відображає певний підхід до програмування на Python: від високорівневого моделювання з використанням спеціалізованих бібліотек до реалізації чисельних методів "з нуля".
Проєкти базуються на потужних інструментах для наукових обчислень:
- Моделювання:
FEniCS(МСЕ),NumPy,SciPy(чисельні методи). - Візуалізація:
Matplotlib,PyVista. - Оптимізація:
DEAP(генетичні алгоритми).
temperatureFDM.py — це реалізація моделювання нестаціонарної теплопровідності двовимірної пластини без використання спеціалізованих бібліотек для МСЕ.
- Алгоритм: Метод скінченних різниць (FDM) з ітераційним оновленням поля температур у часі.
- Фізичні умови:
- Встановлення граничних умов для нагрівача (Dirichlet) та конвективного охолодження (Robin).
- Моделювання процесів ізоляції на ділянках межі.
- Візуалізація: Використання
matplotlib.animationдля спостереження за динамікою поширення тепла в реальному часі. - Ключові параметри: Конфігурування кроків за часом (
tau) та просторових кроків (dx,dz) для забезпечення стійкості обчислювальної схеми.
temperatureFenicsx.py — це професійна реалізація моделювання нестаціонарної теплопровідності на 2D-геометрії з використанням методу скінченних елементів (МСЕ).
- Бібліотеки:
FEniCS(для розв'язання рівнянь у частинних похідних) таPyVista(для потужної 3D-візуалізації). - Можливості:
- Реалізація нестаціонарного рівняння теплопровідності з часовою дискретизацією.
- Визначення складних граничних умов: завдання температури (Dirichlet) на нагрівачах та моделювання конвективного теплообміну (Robin) на межах.
- Використання спеціальних
SubDomainкласів для локалізації нагрівальних елементів.
- Візуалізація: Конвертація результатів з
FEniCSу форматUnstructuredGridдля візуалізації температурного поля в реальному часі черезPyVista. - Ключові параметри: Конфігурування фізичних констант (
alpha,h,T_inf) та кроку за часом (dt) для стабільної симуляції процесу.
fem_poisson_solver.py — це реалізація розв'язання рівняння Пуассона
-
Алгоритм:
- Самостійна генерація структурованої сітки (триангуляція).
- Власна реалізація розрахунку локальної матриці жорсткості для лінійних трикутних елементів.
- Збірка глобальної матриці системи лінійних алгебраїчних рівнянь (СЛАР) з використанням
scipy.sparseдля ефективної роботи з розрідженими матрицями.
-
Аналіз:
- Модуль включає функцію
fem_convergence(), що автоматично аналізує сеткову збіжність (convergence analysis), демонструючи, як точність розв'язку змінюється при подрібненні сітки.
- Модуль включає функцію
-
Візуалізація:
- Використання
triplotдля перевірки якості сітки. - Контурні графіки розподілу значення функції
$U(x, y)$ для оцінки отриманого результату.
- Використання
deap_exp.py — це дослідницький модуль для пошуку глобальних мінімумів складних нелінійних функцій за допомогою еволюційних стратегій.
- Бібліотека:
DEAP(Distributed Evolutionary Algorithms in Python). - Функціонал:
- Реалізація базових операторів генетичного алгоритму: селекція, схрещування (crossover) та мутація.
- Дослідження поведінки алгоритму на відомих тестових функціях (наприклад, функція Растрігіна, параболоїди), що мають велику кількість локальних мінімумів.
- Налаштування параметрів популяції (розмір популяції, ймовірності мутації) для досягнення збіжності до глобального екстремуму.
- Візуалізація:
- Динамічна візуалізація руху популяції (особин) по поверхні функції через
matplotlib.animation. - Побудова контурних карт цільових функцій для наочної демонстрації пошуку мінімуму.
- Динамічна візуалізація руху популяції (особин) по поверхні функції через
- Технічні особливості:
- Оптимізація часу обчислень через використання
numpyдля векторних операцій усередині фітнес-функцій.
- Оптимізація часу обчислень через використання