Решение систем дифференциальных уравнений

Дифференциальные уравнения, являясь подмножеством функциональных уравнений, довольно редко допускают аналитическое решение. В подобных ситуациях для их приближённого решения применяют численные методы.

Численные методы не могут дать решения дифференциальной задачи, но могут обеспечить некоторое приближение к такому решению.

Часто для получения такого приближения используют т. н. сеточную аппроксимацию функций. То есть вместо функций непрерывного аргумента вводят функции дискретного аргумента. А вместо дифференциальных операторов — разностные. Будем называть параметром сетки такую величину , что расстояние между любыми двумя соседними узлами сетки не превосходит h.

Гиперболические уравнения

править

Введение

править

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

 

Где матрица   имеет полный набор собственных векторов и, соответственно, представима в виде

 

Где   — матрица, составленная из правых собственных векторов матрицы   как из столбцов.   — матрица собственных значений матрицы  .

Эта форма записи называется неконсервативной, в противовес не менее часто используемой консервативной форме, связанной с физическими законами сохранения в явном виде:

 

Дело в том, разностная схема для консервативной формы уравнений, записанная в виде

 

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

Разностные схемы

править

Простейшим и исходным объектом исследования в теории систем гиперболических уравнений является одиночное уравнение переноса:

 

Где   — искомая функция переменных  .   — некоторая постоянная.

Это уравнение очень удобно уже тем, что нам хорошо известно его аналитическое решение:

 

где   — произвольная функция.

Первый вопрос, который возникает — а зачем численно решать уравнение, для которого известно аналитическое решение? Ответ прост — дело в том, что это уравнение будет «вылезать» из решения сложных многомерных систем, и параметры, которые в него входят будут меняться в зависимости от решения да и заданы будут не всюду, а лишь в некоторых точках, что делает прямое применение аналитического решения невозможным.

Итак, приступим к построению простейшей схемы для данного уравнения.

Пусть функция   задана на узлах пространственной сетки   в момент времени   и мы хотим получить ее значения в тех же узлах в момент  .

Воспользуемся простейшими формулами для аппроксимации производных и получим:  

Тогда для значения   может быть выписано выражение в явном виде:

 

Эта простейшая схема может быть легко реализована и запущена. См пункт реализация.

Приведенная схема не работает при  .

Ответ достаточно очевиден — «перенос» справа налево не работает в схеме, в которой нет точек справа. Хотелось бы добавить в схему что-то вроде  . Как это сделать? Простейший способ — построить «комбинированную» схему:

   

Литература

править
  • Куликовский А. Г., Погорелов Н. В., Семенов А. Ю. Математические вопросы численного решения гиперболических систем уравнений. — М.:ФИЗМАТЛИТ,2001. — 608с. — ISBN 5-9221-0194-3