Перейти к содержанию

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

Материал из Викиучебника — открытых книг для открытого мира

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

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

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

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

[править]

Введение

[править]

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

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

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

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

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

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

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

[править]

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

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

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

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

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

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

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

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

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

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

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

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

Литература

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