Решение систем гиперболических уравнений/Разностные схемы

Материал из testwiki
Перейти к навигации Перейти к поиску

Хорошим модельным объектом для построения разностных схем является линейное уравнение переноса:

Ut+λUx=0

Для него известно аналитическое решение (U(x,t)=U0(xλt),U0(x) - произвольная функция), что позволяет сравнивать качество тех или иных методов, разработанных для (вообще говоря) нелинейных систем уравнений.

Для построения простейшей разностной схемы (т.н. схемы "уголок") воспользуемся простейшим шаблоном:

Umn+1|Um1nUmn

В соответствии с этим шаблоном аппроксимируем наше уравнение. Получим:

Umn+1Umnτ+λUmnUm1nh=0

или

Umn+1=Umn(1λτh)+Um1nλτh

Если реализовать эту схему для простейшего уравнения и поэкспериментировать, окажется, что при 1>λτh>0 эта схема относительно неплохо работает и, судя по всему, обладает сходимостью к аналитическому решению при h0

Остаются неясными некоторые вопросы, а именно:

  • Почему мы выбрали именно такой шаблон?
  • С чем связано требование 1>λτh>0? И что делать, если, к примеру λ<0?
  • Как оценить точность полученного таким способом решения?
  • Можно ли построить более точный метод?


Попробуем кратко ответить на некоторые из этих вопросов.

Вопрос выбора схемы может быть решен из более-менее бытовых соображений. Смотрите - мы знаем, что аналитическое решение линейного уравнения переноса имеет вид:

U(x,t)=U0(xλt)

Раз так, наша задача - по ограниченной информации о решении на n-м временном слое построить решение на n+1-м слое. Нас интересует, например, значение U(xm,tn+1). Исходя из вида аналитического решения, мы понимаем, что U(xm,tn+1)=U(xmλτ,tn). Для получения значения U(xmλτ,tn) можно, например, применить линейную интерполяцию. Ровно отсюда и следуют ответы на первый и часть второго вопроса - просто, если характеристика, опущенная из точки (xm,tn+1) на n-й слой, попадает на другой отрезок, интерполировать надо по нему.

Таким образом, для λ<0 получим шаблон:

Umn+1|UmnUm+1n

И схему:

Umn+1=Umn(1+λτh)Um+1nλτh

О сходимости разностных схем

Введем некоторые более аккуратные определения.

Предположим, что мы хотим найти решение u дифференциальной краевой задачи

L^u=f

поставленной в некоторой области G с границей δG. Здесь L^ - некоторый дифференциальный оператор,f - функция от U и, возможно, r. Для этого на компакте GδG выберем дискретное множество точек Gh - сетку, введем нормированное пространство Uh функций, определенных на сетке Gh и установим соответствие между решением u и функцией [u]h из Uh - таблицей значений функции u на сетке. Теперь для приближенного нахождения искомой функции [u]h на основе дифференциальной задачи построим разностную:

L^huh=fh

так, чтобы имела место сходимость:

||[u]huh||0,h0


TODO

Об устойчивости разностных схем

TODO

Реализации

Решение систем гиперболических уравнений/Разностные схемы/Реализация на Fortran-e

Ссылки

  1. Рябенький В.С. Введение в вычислительную математику: Учеб.пособие. М.:ФИЗМАТЛИТ, 2000 ISBN 5-9221-0047-5
  2. Демьянов А.Ю., Чижиков Д.В. Неявная гибридная монотонная разностная схема второго порядка точности, Электронный журнал «Исследовано в России»