русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Многошаговые методы (методы Адамса)


Дата добавления: 2015-01-16; просмотров: 4098; Нарушение авторских прав


Перед нами все та же задача Коши

f(1)(t)=F(t, f(t)), a£t£b, f(a)=fa.

В одношаговых методах значение f(tk+1) определялось только информацией в предыдущей точке tk. Представляется возможным повысить точность решения, если использовать информацию в нескольких предыдущих точках при ее наличии. Так и поступают в методах, которые называются многошаговыми. С первого взгляда на постановку задачи становится очевидным, что в момент старта t=ta есть только одно начальное условие и, если мы собираемся работать с двумя, тремя или четырьмя предыдущими точками, то не видно, как получить вторую, кроме использования одношаговых методов. Так и поступают; «комплексный» алгоритм решения может выглядеть так:

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

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

Многошаговые алгоритмы можно создать так. Учитывая, что

f(tk+1)=f(tk)+ ,

можно численно проинтегрировать стоящую под знаком интеграла правую часть ОДУ. Если использовать метод прямоугольников (интерполяционный полином для интегрируемой функции – константа), получим обычный метод Эйлера. Если использовать 2 точки и интерполяционный полином первого порядка

p(x)= ,

то интегрирование по методу трапеций от tk до tk+1 даст следующий алгоритм:

f(tk+1)=f(tk)+0.5h(3Fk-Fk-1).



Аналогично для трех точек будем иметь квадратичный интерполирующий полином по данным (tk-2, Fk-2), (tk-1, Fk-1), (tk, Fk) и интегрирование по методу Симпсона даст алгоритм:

f(tk+1)=f(tk)+ (23Fk–16Fk-1+5Fk-2).

Для 4-х точек полином будет кубическим и его интегрирование даст:

f(tk+1)=f(tk)+ (55Fk–59Fk-1+37Fk-2–9Fk-3).

В принципе мы могли бы продолжать так сколь угодно долго.

Приведенные алгоритмы носят название методов Адамса-Башфорта второго, третьего и четвертого порядков.

Формально мы можем при построении интерполяционного полинома помимо N уже просчитанных точек использовать и еще R будущих tk+1, tk+2; в простейшем случае набор

tk+1, tk, tk-1,…, tk-N.

При этом порождается класс так называемых методов Адамса-Моултона. В четырехшаговом варианте он оперирует с данными (tk+1, Fk+1), (tk, Fk), (tk-1, Fk-1), (tk-2, Fk-2) и его алгоритм:

f(tk+1)=f(tk)+ (9Fk+1+19Fk–5Fk-1+Fk-2).

Нельзя, разумеется, вести расчет по отсутствующим данным, поэтому алгоритмы Адамса объединяют в последовательность алгоритмов Адамса-Башфорта и Адамса-Моултона, получая при этом так называемые методы прогноза и коррекции. Например, метод прогноза и коррекции четвертого порядка выглядит так: вначале прогнозируем по алгоритму Адамса-Башфорта с использованием «прошлых» точек

f(tk+1)=f(tk)+ (55Fk–59Fk-1+37Fk-2–9Fk-3).

Затем по вычисляем приближенное значение правой части уравнения

Fk+1=F(tk+1, f(tk+1).

И, наконец, корректируем f(tk+1) с использованием его же приближенного значения

f(tk+1)=f(tk)+ (9Fk+1+19Fk–5Fk-1+Fk-2).

Наиболее эффективные из имеющихся компьютерных программ, позволяющих пользователю менять величину шага и порядок метода, основаны на методах Адамса высокого порядка (свыше 10). Опыт эксплуатации этих программ показывает, что различия в их реализации могут оказывать более существенное влияние на точность, чем различия во внутренних свойствах самих методов.



<== предыдущая лекция | следующая лекция ==>
Метод Рунге-Кутта 4-го порядка | Проблема устойчивости


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.285 сек.