Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа по прикладному программированию по теме «Решение дифференциальных уравнений численными методами».docx
Скачиваний:
41
Добавлен:
26.03.2015
Размер:
244.16 Кб
Скачать

3. Метод Адамса

Метод Адамса относится к многошаговым схемам решения ДУ, характеризующихся тем, что решение в текущем узле зависит от данных не в одном предыдущем или последующем узле сетки, как это имеет место в одношаговых методах, а зависит от данных в нескольких соседних узлах.

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

Yk-1 , Yk-2 , Yk-3 …

Если используются значения в k предыдущих узлах, то говорят о k-шаговом методе интегрирования уравнения. Одним из способов построения многошаговых методов заключается в следующем. По значениям функции, вычисленным в k предшествующих узлах, строится интерполяционный полином степени (k-1) - , который используется при интегрировании дифференциального уравнения по выражению

Интеграл при этом выражается через квадратурную формулу:

,

где λi– квадратурные коэффициенты, значения которых k от 2 до 4 приведены в таблице ниже.

k

λi

2

3/2

-1/2

 

 

3

23/12

-16/12

5/12

 

4

55/24

-59/24

37/24

-9/24

Полученное таким образом семейство формул называется явной k-шаговой схемой Адамса. Как видно, при k=1 в качестве частного случая получается формула Эйлера.

Например, для формулы 4 порядка имеем:

(3.7)

-“прогноз”, вычисленный с использованием значений в предыдущих точках,(Р) — приближенное значение функции, вычисленное в точке получения прогноза,-«коррекция» прогнозного значения,yk+1– искомое значение по Адамсу.

Достоинство такого метода решения ДУ заключается в том, что в каждой точке рассчитывается только одно значение функции F(x,y). К недостаткам можно отнести невозможность старта многошагового метода из единственной начальной точки, так как для вычислений по k-шаговой формуле необходимо значение значения функции в k узлах. Поэтому приходится (k-1) решение в первых узлах x1, x2, …, xk-1 получать с помощью какого-либо одношагового метода, например методаРунге-Кутта 4–го порядка.

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

Описание программы наC++

Программа позволяет получить решение системы ДУ, представленной в формуле (1.1), методами математического моделирования (Эйлера, Рунге-Кутта, Адамса). Результаты решения представлены динамическим отображением физического процесса в режиме реального времени.

Код программы представлен в Приложении 1.

Интерфейс программы визуально можно разделить на 4 области (см. рис. 3):

  1. Область отрисовки физической модели;

  2. Область задания начальных значений;

  3. Область выбора метода расчета;

  4. Блок кнопок управления программой.

Рис.3. Интерфейс программы

Область отрисовки физической модели. Для отрисовки физической модели используется компонент TImage и его функции рисования линий.

Область задания начальных значений. Для задания начальных значений используется 16 текстовых полей, в которых задаются начальные величины в виде текстовых строк:

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

Область выбора метода расчета состоит из трех компонентов TRadioButton. В этой области возможен выбор, только одного метода расчета. При выборе другого метода автоматически отменяются оставшиеся методы.

Блок кнопок управления программой позволяет запустить моделирование физического процесса (кнопка «Старт») и поведения (движения заданной системы тел) физической модели, а так же, остановить моделирование (Кнопка «Стоп») до окончания заданного времени моделирования.

Программа начинает работу по кнопке «Старт». До активации кнопки «Старт» можно задать начальные значения в соответствующих полях; если ввода не произведено, программа работает со значениями по умолчанию. В режиме реального времени выполняется имитация движения системы. Анализ поведения физической модели при некоторых отличных от начальных значениях описан далее (см. стр. 11). До окончания времени моделирования можно остановить выполнение программы и задать новые начальные условия или выбрать иной метод расчета.Завершение работы программы осуществляется путем нажатия кнопки с крестиком в правом верхнем углу основного окна программы (блок управляющих кнопок).