- •Программная реализация численных методов и анализ результатов численного эксперимента
- •Методические указания
- •К курсовым работам по дисциплинам
- •«Информатика» и «Языки и технология программирования»
- •Содержание
- •Введение
- •1. Цель и задачи курсовых работ
- •2. Задание на курсовые работы
- •3. Структура пояснительной записки
- •Вычисление второй производной
- •4.1.2. Численное интегрирование функций
- •Метод Эйлера
- •4.1.3. Численное решение нелинейных уравнений
- •Метод бисекций
- •Метод простых итераций
- •Метод Ньютона (касательных)
- •Метод хорд (секущих)
- •4.2. Применение экстраполяции для оценки погрешности
- •Численная фильтрация
- •Метод Эйткена
- •Критерий размытости оценки
- •Визуализация результатов экстраполяции
- •4.3. Разработка программ, реализующих комбинацию численных методов
- •5. Пример курсовой работы
- •Список Литературы
- •Образец оформления бланка задания на курсовую работу
- •Образец оформления титульного листа пояснительной записки
- •Уфимский государственный авиационный технический университет
- •Пояснительная записка
4.2. Применение экстраполяции для оценки погрешности
Для тестовых примеров, имеющих аналитическое решение, можно найти разность между приближенным и точным результатом. Распространение этой оценки на другие примеры очень ненадежно. Выход может быть найден, если вместо точного использовать приближенное, но более точное по сравнению с проверяемым значение. Однако при этом возникают два вопроса: как получить это более точное значение и как проверить, что оно действительно точнее исходного.
Более точное значение можно вычислить, пользуясь тем же способом, что и проверяемое. Но это приводит к дополнительным требованиям к ресурсам, которые могут оказаться невыполнимыми. Есть и другой способ: использовать более грубые результаты (с меньшим числом узлов и временем счета). Если погрешность метода подчиняется некоторому закону, то, зная этот закон (в виде характера зависимости, например, степенной, экспоненциальный и т.п.), можно по нескольким результатам провести идентификацию и приближенно предсказать значение, соответствующее бесконечному числу узлов.
Ответить на второй вопрос можно с помощью повторной экстраполяции, т.е. экстраполяцией экстраполированных результатов, полученных для разных наборов исходных данных. В этом случае получается оценка погрешности экстраполированных результатов (или размытость оценки погрешности). Если эта оценка удовлетворяет требованиям: в три и более раз меньше оценки погрешности исходных данных (относительная размытость меньше 1/3 [9]), то цель достигнута. Если нет, то данный способ оценки в конкретном случае следует признать ненадежным. Подробнее о критерии надежности сказано ниже.
Кроме того, при хороших оценках результаты экстраполяции можно использовать вместо вычисленных данных, как более точные. При этом необходима дополнительная экстраполяция, чтобы убедиться в надежности полученных таким способом результатов. В некоторых случаях путем повторной экстраполяции можно получить результаты, на многие порядки более точные, чем рассчитанные непосредственно с помощью численного метода, и чего невозможно было бы добиться прямым расчетом в связи с огромными затратами времени, превышающими разумные пределы.
Численная фильтрация
При экстраполяции требуется априорное знание характера зависимости результата расчетов от числа узлов (или математической модели погрешности), например
, (26)
где – точное значение; – приближенный результат, полученный при числе узловых точек, равном n; – коэффициенты, которые предполагаются не зависящими от n; – величина, полагаемая малой по сравнению с при тех значениях n, которые использовались в данных конкретных расчетах, k1,…, kL – произвольные действительные числа (предполагается, что k1<k2<…<kL).
В математическом анализе обычно оценивается только первый член, поскольку остальные являются асимптотически (при n) бесконечно малыми более высокого порядка. Однако для конечных n остальные слагаемые могут вносить существенный вклад и должны приниматься во внимание.
Если решение задачи представляет собой функцию с несколькими непрерывными производными, то можно допустить возможность его разложения по формуле Тейлора, тогда – это часть ряда натуральных чисел. Тогда к задаче нахождения предельного при значения z можно подойти как к задаче интерполяции зависимости от параметра алгебраическим многочленом с последующей экстраполяцией до . Есть и другой подход, приводящий при условии постоянства к тому же алгоритму, но не требующий целочисленности . Это решение задачи численной фильтрации, т.е. последовательное устранение степенных слагаемых суммы (26) при сохранении значения константы z. Рассмотрим два значения , , вычисленные при числе узлов, равном и соответственно. Составим линейную комбинацию
и потребуем, чтобы суммарный коэффициент при z был равен 1, а при (для определенного j) равен 0. Отсюда получим формулу фильтрации, которая совпадает с экстраполяционной формулой Ричардсона [1]
. (27)
Проводя последовательно экстраполяцию по всем парам соседних значений, получим отфильтрованную зависимость, не содержащую члена с
, (28)
где . (29)
Заметим, что отфильтрованная последовательность содержит на один член меньше, чем исходная. Если она содержит больше одного члена, то ее также можно отфильтровать, устранив степенную составляющую с . Операции фильтрации можно повторять последовательно для ,…, , если исходная последовательность содержит достаточное количество членов. Результаты экстраполяций удобно представлять в виде треугольной матрицы
(30)
Применение повторной экстраполяции при kj=j известно под названием метода Ромберга. При его применении возникает ряд ограничений.
Применение повторной экстраполяции приводит к изменению коэффициентов суммы (26). При увеличение абсолютной величины коэффициентов может оказаться весьма существенным. Это ограничивает число возможных экстраполяций.
Допустим, составляющая в (26) может быть оценена величиной , обусловленной погрешностью исходных данных, которая связана с ограниченной разрядностью чисел в машинном представлении. Тогда исходная нерегулярная часть погрешности, содержащаяся в вычисленных значениях , при каждой экстраполяции умножается на коэффициент
. (31)
Для метода Ромберга, применяемого к последовательности (26) при , произведение таких множителей ограничено числом, приблизительно равным 8 (получено численно), т.е. метод Ромберга является устойчивым к погрешности исходных данных, но сам уровень нерегулярной погрешности может ограничить число возможных экстраполяций.