Решение систем линейных дифференциальных уравнений пятиточечным методом Адамса-Башфорта

РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ ПЯТИТОЧЕЧНЫМ МЕТОДОМ АДАМСА — БАШФОРТА

Оглавление

ВВЕДЕНИЕ *

Условия задачи *

Метод прогноза и коррекции *

Модифицированный метод Гаусса *

ОПИСАНИЕ АЛГОРИТМА *

ОПИСАНИЕ ПРОГРАММЫ *

Выводы *

Листинг программы *

Список литературы *

ВВЕДЕНИЕ

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

Решение таких задач связано с необходимостью использования численных методов, таких как: метод прогноза и коррекции, метод Адамса-Башфорта, метод Эйлера, метод Рунге-Кута, и др. Так же необходимо уметь решать системы линейных дифференциальных уравнений первого порядка одним из методов интегрирования, на произвольном промежутке времени.

Пяти точечный Метод прогноза и коррекции Адамса-Башфорта — дает высокую точность результатов. При необходимости большего повышения точности употребляют трех точечный метод прогноза и коррекции с автоматическим выбором шага — это приводит к универсальному методу интегрирования систем дифференциальных уравнений произвольного вида на любом промежутке интегрирования .

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

Условия задачи

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

Метод прогноза и коррекции

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

Модифицированный метод Гаусса

Для решения системы четырех линейных алгебраических уравнений с четырьмя неизвестными модифицированным методом Гаусса необходимо:

  1. Составить систему;
  2. Каждое уравнение поделить на коэффициент при X1;
  3. Образовать нули в первом столбце матрицы системы;
  4. Повторить еще раз эти операции, получим систему двух уравнений с двумя неизвестными, решение которой можно получить по формулам Крамера

Значения X1 и X2 можно получить, подставив в какое-либо из уравнений систем и разрешив эти уравнения относительно соответствующей переменной.

ОПИСАНИЕ АЛГОРИТМА

В начале программы выводится сообщение, а именно о начальных условий и матрицы коэффициентов системы линейных дифференциальных уравнений первого рода, начального шага интегрирования, левого и правого условий Рунге, время интегрирования по трех шаговому методу прогноза и коррекции, время интегрирования по пяти точечному методу Адамса-Башфорта .

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

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

Вычисленные данные записываем файл, по ним формируем массив данных, которые выводим в соответствии с масштабированием на экран в виде графиков.

ОПИСАНИЕ ПРОГРАММЫ

Программа реализующая универсальный алгоритм для решения систем линейных дифференциальных уравнений первого порядка произвольного вида, — построена по принципам объектно-ориентированного программирования. Основная программа построена на объектной библиотеке VFH, реализующей возможности реализации гибкого интерфейса между программой и пользователем .

Основная программа включает в себя только один модуль PACM, и использует всего два метода объекта TApplPandC , — метод Application — рабочий цикл программы; деструктор Done — реализует разрушение таблицы виртуальных методов, и операций, связанных с завершением программы .