Skip to content

Commit e19eba7

Browse files
authored
Create Lab3.md
1 parent b9f2982 commit e19eba7

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

reports/Special/Lab3.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# Отчёт по лабораторной работе: Решение уравнений гиперболического типа ⚡️📊
2+
3+
## Содержание 📖
4+
5+
1. [Введение и цели работы 🎓](#1-введение-и-цели-работы-)
6+
2. [Структура проекта 🛠️](#2-структура-проекта-)
7+
3. [Ход выполнения работы 🔎](#3-ход-выполнения-работы-)
8+
- [Используемые методы 📚](#используемые-методы-)
9+
- [FTCS](#FTCS)
10+
- [Явная схема Лакса-Вендрофа](#явная-схема-лакса-вендрофа)
11+
- [Схема Рихтмайера](#схема-рихтмайера)
12+
- [Схема МакКормака](#схема-маккормака)
13+
- [Противопотоковый метод первого порядка](#противопотоковый-метод-первого-порядка)
14+
- [Противопотоковый метод второго порядка](#противопотоковый-метод-второго-порядка)
15+
- [Решение одномерного уравнения конвекции](#решение-одномерного-уравнения-конвекции)
16+
- [Решение явным Эйлером](#решение-явным-эйлером)
17+
4. [Заключение и выводы 📝](#4-заключение-и-выводы-)
18+
19+
## 1. Введение и цели работы 🎓
20+
21+
Уравнение конвекции (переноса) первого порядка относится к классу гиперболических уравнений и широко используется для описания процессов переноса массы, импульса и энергии в механике сплошной среды и физике плазмы.
22+
В общем случае аналитическое решение доступно лишь для простых начальных и граничных условий, поэтому на практике большое значение имеют конечно‑разностные методы решения уравнения конвекции на компьютере.
23+
24+
В данной работе исследуется одномерное уравнение конвекции с постоянной скоростью переноса и гладким начальным профилем вида $\phi(x) = cos(0.5\pi x)$, для которого известна точная формула решения в виде сдвига начального профиля вдоль оси координат.
25+
Это позволяет не только строить численное решение различными конечно‑разностными схемами, но и детально анализировать их устойчивость, дисперсию и численную диффузию путём сравнения с точным решением.
26+
В процессе выполнения работы были реализованы и исследованы схемы FTCS, Лакса, Лакса–Вендрофа, Рихтмайера, МакКормака, противопотоковые схемы первого и второго порядков, а также неявная схема BTCS для уравнения конвекции, с возможностью выбора числа узлов по пространству и конвекционного числа c.
27+
Для каждой схемы выполнялась серия численных экспериментов при разных значениях c и на фиксированном интервале времени, строились графики эволюции профиля решения и максимальной ошибки по пространству.
28+
29+
30+
**Цели: 🎯**
31+
32+
- Изучить постановку одномерной задачи конвекции с заданным начальным профилем и граничными условиями, получить точное аналитическое решение и использовать его как эталон для оценки численных методов
33+
- Реализовать набор явных и неявных конечно‑разностных схем для уравнения конвекции: FTCS, Лакса, Лакса–Вендрофа, Рихтмайера (двухшаговый Лакс–Вендроф), МакКормака, противопотоковые схемы 1‑го и 2‑го порядков, BTCS
34+
- Исследовать влияние конвекционного числа c на устойчивость и точность каждой схемы, проанализировать проявления численной диффузии и дисперсии, а также эффекты практической неустойчивости
35+
- Сравнить поведение разных методов на одинаковых тестах: оценить скорость роста максимальной ошибки, сохранение формы волны и наличие осцилляций, выделить преимущества и недостатки схем для задач конвекции
36+
37+
## 2. Структура проекта 🛠️
38+
39+
Вся работа выполнена в виде модульного C++-проекта со следующей структурой:
40+
```
41+
include/
42+
├── Base/ # Базовые интерфейсы генераторов/решателей
43+
├── Labs/ # Заголовки лабораторных заданий
44+
src/
45+
└── Labs/
46+
└── LabN/
47+
└── TaskK.cpp # Основные реализации по заданиям
48+
CMakeLists.txt # Конфигурация сборки проекта
49+
```
50+
Реализация поддерживает автоматическое добавление новых заданий, централизованное подключение заголовков и простое масштабирование под разные лабораторные работы. Реализацию всех заголовков заданий можно найти по пути `include/Labs/Special/Lab3/Tasks`
51+
52+
---
53+
54+
## 3. Ход выполнения работы 🔎
55+
56+
### Используемые методы 📚

0 commit comments

Comments
 (0)