Сравнение разностных схем на тестах
Для любой задачи даже на фиксированных сетке и шаблоне можно составить много разностных схем. Естественно возникает вопрос: какую из схем использовать при решении реальной задачи? Как правило, традиционных оценок сходимости и точности для ответа недостаточно. Это связано с несовершенством теоретических методов исследования схем. (В чем же это несовершенство?).
Для большинства нелинейных задач (например, газодинамических) нет доказательства сходимости или хотя бы устойчивости разностных схем. Соображения об их устойчивости и сходимости основаны на анализе линеаризованных задач.
Оценки точности схем являются асимптотическими при стремлении шага к нулю. Но быстродействие и память ЭВМ не безграничны, чтобы можно было относительно сложные реальные задачи считать достаточно малым шагом.
Реально может оказаться, что схема первого порядка точности на грубых сетках даст более точный результат, чем схема второго порядка точности, хотя на подробных сетках соотношение будет обратным.
Обычно априорные оценки точности схем далеки от оптимальных. Они бывают завышены в десятки и сотни раз и только в исключительных случаях удается получить не улучшаемые оценки. Но даже эти не улучшаемые оценки относятся к достаточно широкому классу решений, а для конкретного решения могут быть сильно завышены.
Даже наличие доказательства сходимости разностной схемы не гарантирует хорошего полученного по схеме решения. Сходимость в Гильбертовой норме обеспечивает передачу только некоторых интегральных характеристик решения. Сходимость в Чебышевской норме обеспечивает хорошее качество решения лишь при достаточно подробной сетке. В расчетах на грубых сетках при сходящейся схеме нередко возникает «разболтка», делающая результаты расчета фактически неприемлемыми.
Большой опыт численных расчетов показывает, что, помимо аппроксимации и устойчивости, разностные схемы должны удовлетворять добавочным критериям, обеспечивающим передачу некоторых качественных свойств решения. Хорошо известным критерием является консервативность схем, или, в более общей форме, инвариантность разностных уравнений относительно определенной группы преобразований.
Другие употребительные критерии - это аппроксимационная вязкость схем или диссипативность первого дифференциального приближения и монотонность схем. Важным элементом проверки качества схем является экспериментальное их исследование, т.е. проверка их на небольшой системе тестов.
Тестом может служить задача, которая содержит специфические трудности данного класса задач и точное решение которой известно. Это решение может задаваться формулой или находиться численно; в качестве тестов нередко используют автомодельные решения. Для проверки схемы следует провести серию из трех или более расчетов задачи – теста с последовательным сгущением сеток и сравнить разностное решение с точным.
Точность схемы оценивают по норме погрешности разностного решения. Для более полного изучения схемы проверяют сходимость в разных нормах (обычно в с и l2). При этом обязательно сравнивают фактическую скорость убывания погрешности при с теоретическим порядком точности схемы.
Возможны случаи, когда ожидаемый теоретический порядок точности не совпадает с фактическим. О чем это может свидетельствовать? Отметим некоторые типичные ситуации.
а) Метод теоретического исследования был строгим, а фактический порядок точности оказался ниже теоретического. Возможны две причины.
1) Численный расчет был неправильным, например, программа для ЭВМ содержала ошибки.
2) При теоретическом анализе аппроксимация определялась на функциях более гладких, чем использованное в качестве теста решение u(x, t).
б) Метод теоретического исследования был строгим; а фактический порядок точности оказался выше теоретического. Это означает, что теоретическое исследование было недостаточно полным. Может быть, при доказательстве устойчивости использовались более сильные нормы для правых частей, чем в действительности необходимо; или погрешность аппроксимации определялась не на решении данной задачи, а на заметно более широком классе функций.
в) Метод исследования был нестрогим; например, устойчивость нелинейной схемы изучалась методом разделения переменных.
В этом случае теоретическое исследование вообще не дает ответа, а лишь позволяет сделать довольно вероятностный прогноз. Сравнение же на тестах позволяет установить здесь точный характер сходимости, правда только на отдельных примерах.
Исследовать надо не только разностные схемы, но и сетки. Разные классы задач предъявляют разные требования к сеткам. Но лишь в отдельных случаях эти требования удается четко сформулировать; например, если точное решение имеет разрыв или другую особенность, то желательно совместить с ней узел сетки. В остальных же случаях приходится сравнивать сетки тоже на тестах. Зачастую удачный выбор сетки повышает точность расчета не меньше, чем усовершенствование разностной схемы.