Решение систем дифференциальных уравнений
Дифференциальные уравнения, являясь подмножеством функциональных уравнений, довольно редко допускают аналитическое решение. В подобных ситуациях для их приближённого решения применяют численные методы.
Численные методы не могут дать решения дифференциальной задачи, но могут обеспечить некоторое приближение к такому решению.
Часто для получения такого приближения используют т. н. сеточную аппроксимацию функций. То есть вместо функций непрерывного аргумента вводят функции дискретного аргумента. А вместо дифференциальных операторов — разностные. Будем называть параметром сетки такую величину , что расстояние между любыми двумя соседними узлами сетки не превосходит h.
Гиперболические уравнения
правитьВведение
правитьСистемы гиперболических уравнений возникают во многих задачах вычислительной физики. Хороший проработанный пример — газовая динамика. В приложениях часто используются гиперболические системы уравнений, представляемые в виде:
Где матрица имеет полный набор собственных векторов и, соответственно, представима в виде
Где — матрица, составленная из правых собственных векторов матрицы как из столбцов. — матрица собственных значений матрицы .
Эта форма записи называется неконсервативной, в противовес не менее часто используемой консервативной форме, связанной с физическими законами сохранения в явном виде:
Дело в том, разностная схема для консервативной формы уравнений, записанная в виде
автоматически гарантирует точное выполнение на приближенном решении законов сохранения, в то время как разностные соотношения, получаемые из неконсервативной формы, соблюдают законы сохранения лишь приближенно - в рамках аппроксимации.
Разностные схемы
правитьПростейшим и исходным объектом исследования в теории систем гиперболических уравнений является одиночное уравнение переноса:
Где — искомая функция переменных . — некоторая постоянная.
Это уравнение очень удобно уже тем, что нам хорошо известно его аналитическое решение:
где — произвольная функция.
Первый вопрос, который возникает — а зачем численно решать уравнение, для которого известно аналитическое решение? Ответ прост — дело в том, что это уравнение будет «вылезать» из решения сложных многомерных систем, и параметры, которые в него входят будут меняться в зависимости от решения да и заданы будут не всюду, а лишь в некоторых точках, что делает прямое применение аналитического решения невозможным.
Итак, приступим к построению простейшей схемы для данного уравнения.
Пусть функция задана на узлах пространственной сетки в момент времени и мы хотим получить ее значения в тех же узлах в момент .
Воспользуемся простейшими формулами для аппроксимации производных и получим:
Тогда для значения может быть выписано выражение в явном виде:
Эта простейшая схема может быть легко реализована и запущена. См пункт реализация.
Приведенная схема не работает при .
Ответ достаточно очевиден — «перенос» справа налево не работает в схеме, в которой нет точек справа. Хотелось бы добавить в схему что-то вроде . Как это сделать? Простейший способ — построить «комбинированную» схему:
Литература
править- Куликовский А. Г., Погорелов Н. В., Семенов А. Ю. Математические вопросы численного решения гиперболических систем уравнений. — М.:ФИЗМАТЛИТ,2001. — 608с. — ISBN 5-9221-0194-3