Явные и неявные методы — это подходы, используемые в численном анализе для получения численных приближений к решениям зависящих от времени обыкновенных и частных дифференциальных уравнений , как это требуется при компьютерном моделировании физических процессов . Явные методы вычисляют состояние системы в более позднее время из состояния системы в текущее время, в то время как неявные методы находят решение, решая уравнение, включающее как текущее состояние системы, так и более позднее. Математически, если — текущее состояние системы, а — состояние в более позднее время ( — малый временной шаг), то для явного метода
в то время как для неявного метода решается уравнение
найти
Неявные методы требуют дополнительных вычислений (решение приведенного выше уравнения), и их может быть гораздо сложнее реализовать. Неявные методы используются, поскольку многие проблемы, возникающие на практике, являются жесткими , для которых использование явного метода требует непрактично малых временных шагов , чтобы сохранить ошибку в результате ограниченной (см. численная устойчивость ). Для таких задач, чтобы достичь заданной точности, требуется гораздо меньше вычислительного времени для использования неявного метода с большими временными шагами, даже принимая во внимание, что нужно решать уравнение вида (1) на каждом временном шаге. При этом, следует ли использовать явный или неявный метод, зависит от решаемой задачи.
Поскольку неявный метод не может быть реализован для каждого вида дифференциального оператора, иногда целесообразно использовать так называемый метод расщепления оператора, который означает, что дифференциальный оператор переписывается в виде суммы двух дополнительных операторов
в то время как один рассматривается явно, а другой неявно. Для обычных приложений неявный член выбирается линейным, в то время как явный член может быть нелинейным. Эта комбинация первого метода называется неявно-явным методом (сокращенно IMEX, [1] [2] ).
Рассмотрим обыкновенное дифференциальное уравнение
с начальным условием Рассмотрим сетку для 0 ≤ k ≤ n , то есть шаг по времени равен и обозначим для каждого . Дискретизируем это уравнение с помощью простейших явных и неявных методов, которыми являются прямой и обратный методы Эйлера (см. численные обыкновенные дифференциальные уравнения ) и сравним полученные схемы.
Прямой метод Эйлера
урожайность
для каждого Это явная формула для .
находим неявное уравнение
для (сравните это с формулой (3), где было задано явно, а не как неизвестное в уравнении).
Это квадратное уравнение , имеющее один отрицательный и один положительный корень . Положительный корень выбран, потому что в исходном уравнении начальное условие положительно, а затем на следующем временном шаге задается как
В подавляющем большинстве случаев уравнение, которое нужно решить при использовании неявной схемы, намного сложнее квадратного уравнения, и аналитического решения не существует. Тогда используются алгоритмы поиска корней , такие как метод Ньютона , для нахождения численного решения.
С помощью метода Кранка-Николсона
находим неявное уравнение
для (сравните это с формулой (3), где было задано явно, а не как неизвестное в уравнении). Это можно решить численно, используя алгоритмы поиска корней , такие как метод Ньютона , чтобы получить .
Crank-Nicolson можно рассматривать как форму более общих схем IMEX ( Implicit - Explicit ).
Чтобы применить схему IMEX, рассмотрим немного иное дифференциальное уравнение:
Из этого следует, что
и поэтому
для каждого