Русская Википедия:Метод фиктивных областей
Метод фиктивных областей — метод приближённого решения задач математической физики в геометрически сложных областях, основанный на переходе к задаче в геометрически более простой области (как правило, многомерный параллелепипед), целиком содержащей исходную.[1] Преимуществом этого метода является удобство составления универсальных программ для численного решения широкого класса краевых задач математической физики, которые перестают зависеть от конкретного вида рассматриваемой области.Шаблон:Sfn Недостатком этого метода является низкая точность приближенного решенияШаблон:Sfn и сложность создания разностных схем и численного решения задач.Шаблон:Sfn
Пример
Рассмотрим задачу нахождения неизвестной функции <math>u(x)</math> исходя из дифференциального уравнения:
- <math>
\frac{d^2u}{dx^2} = -2, \quad 0 < x < 1 \quad (1)
</math>
с краевыми условиями:
- <math>
u(0) = 0, u(1) = 0
</math>
Для решения задачи рассмотрим фиктивную область <math>0 < x < 2</math>. Обозначим как <math>u_\epsilon(x)</math> приближённое решение задачи в фиктивной области. Здесь <math>\epsilon</math> - малый параметр.
Вариант решения с продолжением по старшим коэффициентам
В этом случае <math>u_\epsilon(x)</math> является решением дифференциального уравнения:
- <math>
\frac{d}{dx}k^\epsilon(x)\frac{du_\epsilon}{dx} = - \phi^{\epsilon}(x), 0 < x < 2 \quad (2)
</math>
Ступенчатый коэффициент <math>k^{\epsilon}(x)</math> вычисляется следующим образом:
- <math>
k^\epsilon (x)=\begin{cases} 1, & 0 < x < 1 \\ \frac{1}{\epsilon^2}, & 1 < x < 2
\end{cases}
</math>
Правую часть уравнения (2) представим в виде:
- <math>
\phi^\epsilon (x)=\begin{cases} 2, & 0 < x < 1 \\ 2c_0, & 1 < x < 2
\end{cases}\quad (3)
</math>
Граничные условия для уравнения (2):
- <math>
u_\epsilon(0) = 0, u_\epsilon(2) = 0
</math>
При <math>x = 1</math> необходимо задать условия "сшивки":
- <math>
[u_\epsilon] = 0,\ \left[k^\epsilon(x)\frac{du_\epsilon}{dx}\right] = 0
</math>
где обозначение <math>[ \cdot ]</math> означает "разрыв":
- <math>
[p(x)] = p(x + 0) - p(x - 0)
</math>
Решение поставленной задачи имеет вид:
- <math>
u_\epsilon(x) =\begin{cases} x ( 1 + \frac{c_0 + 1}{\epsilon^2 + 1}\epsilon^2-x), & 0 < x < 1 \\ (2-x)(c_0\epsilon^2(x-1)+\frac{c_0 + 1}{\epsilon^2 + 1}), & 1 < x < 2
\end{cases}
</math>
Сравнивая его с точным решением уравнения (1) <math>u(x)=x(1-x)</math>, получаем оценку ошибки:
- <math>
u(x) - u_\epsilon(x) = O(\epsilon^2), \quad 0 < x < 1
</math>
Вариант решения с продолжением по младшим коэффициентам
В этом случае <math>u_\epsilon(x)</math> является решением дифференциального уравнения:
- <math>
\frac{d^2u_\epsilon}{dx^2} - c^\epsilon(x)u_\epsilon = - \phi^\epsilon(x), \quad 0 < x < 2 \quad (4)
</math>
Здесь <math>\phi^{\epsilon}(x)</math> определено как в уравнении (3), коэффициент <math>c^{\epsilon}(x)</math> вычисляются как:
- <math>
c^\epsilon(x)=\begin{cases}
0, & 0 < x < 1 \\ \frac{1}{\epsilon^2}, & 1 < x < 2. \end{cases}
</math>
Граничные условия для уравнения (4) такие же как и для уравнения (2).
Условия сопряжения в точке <math>x = 1</math>:
- <math>
[u_\epsilon(0)] = 0,\ \left[\frac{du_\epsilon}{dx}\right] = 0
</math>
Ошибка решения:
- <math>
u(x) - u_\epsilon(x) = O(\epsilon), \quad 0 < x < 1
</math>
Примечания
Литература
- ↑ Марчук Г. И. Методы вычислительной математики. - М., Наука, 1980. - c. 130-136