Реферат: Решение систем линейных дифференциальных уравнений пятиточечным методом Адамса – Башфорта
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИУКРАИНЫ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙУНИВЕРСИТЕТ “ ХАРЬКОВСКИЙПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ” Кафедра“Системы и Процессы Управления”ОТЧЕТ
онаучно-исследовательской курсовой работе
по численным методам
на тему :
« РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ ДИФФЕРЕНЦИАЛЬНЫХУРАВНЕНИЙ ПЯТИТОЧЕЧНЫМ МЕТОДОМ АДАМСА –БАШФОРТА »
Выполнил студент
гр.И-29 Уханов Е.В.
Руководитель работы
Д.т.н. проф Бреславский Д.В.
Харьков 2001
СОДЕРЖАНИЕ
Введение………………………………………………………………………..3
<span Times New Roman"">1.<span Times New Roman"">
Постановка задачи …………………………………………………………4<span Times New Roman"">2.<span Times New Roman"">
Методы решения………………..…………………………………………62.1. Метод прогноза и коррекции…………………………………………6
2.2 Модифицированный метод Гаусса ………………………………….12
3. Описание алгоритма ………………………………………………………14
4. Описание программы……………………………………………………..15
5. Примеры расчетов………………………………………………………...17
5.1. Решение одного дифференциальногоуравнения …………………...17
5.2. Решение системы дифференциальныхуравнений ………………….19
Заключение……………………………………………………………………20
Список использованной литературы ………………………………………..21
Приложение 1 …………………………………………………………………22
Приложение 2 …………………………………………………………………23
Приложение 3 …………………………………………………………………24
Приложение 4 …………………………………………………………………25
ВВЕДЕНИЕ
Во многих областях науки и техники, а также отрасляхнаукоемкой промышленности, таких как: авиационная, космическая, химическая, энергетическая , — являются весьмараспространенные задачи прогноза протекания процессов , сдальнейшей их коррекцией .
Решение такого рода задач связано с необходимостьюиспользования численных методов, таких как: метод прогноза и коррекции,метод Адамса-Башфорта, метод Эйлера, метод Рунге-Кута, и др. При этом, стоит задача решения системылинейных дифференциальных уравнений первого порядка одним из методовинтегрирования, на произвольном промежутке времени. Одним из оптимальныхметодов дающих высокую точность результатов – является пяти точечный методпрогноза и коррекции Адамса-Башфорта. Для повышения точности методаиспользуется трех точечный метод прогноза и коррекции с автоматическим выборомшага, что приводит к универсальному методу интегрирования системдифференциальных уравнений произвольного вида на любом промежуткеинтегрирования .
Разработка программных средств реализующих расчетточного прогноза протекания процессов,является важнейшей вспомогательной научно-технической задачей .
Целью данной курсовой работы является разработкаалгоритма решения систем линейных дифференциальных уравнений первого порядкапяти точечным методом прогноза и коррекции Адамса-Башфорта .
1. ПОСТАНОВКА ЗАДАЧИ
Рассмотримпроизвольную систему линейных дифференциальных уравнений первого порядка :
<img src="/cache/referats/4746/image002.gif" v:shapes="_x0000_i1025"> (1.1)
тогда как :
А = <img src="/cache/referats/4746/image004.gif" v:shapes="_x0000_i1026"> (1.2)
где Азаданная матрица размером NxN.
<img src="/cache/referats/4746/image006.gif" v:shapes="_x0000_i1027"> — вектор с Nкоординатами, который подлежит определению ;
N–произвольное целое число ;
<img src="/cache/referats/4746/image008.gif" v:shapes="_x0000_i1028">
<span Times New Roman"">-<span Times New Roman"">
заданные вектора правых частей с N координатами .С использованием метода прогноза и коррекцииАдамса-Башфорта пятого порядка ,необходимо получить значения неизвестныхдля заданных временных интервалов.Для стартования метода необходимо использовать метод прогнозаи коррекции третьего порядка с переменнымшагом , на заданных временныхпромежутках ..
2. МЕТОДЫ РЕШЕНИЯ
2.1. Метод прогноза икоррекции
Методпрогноза и коррекции относится к задачам класса Коши, а именно к численнымрешениям многошаговыми методами .
Рассмотримзадачу Коши :
<img src="/cache/referats/4746/image010.gif" v:shapes="_x0000_i1029"> , <img src="/cache/referats/4746/image012.gif" v:shapes="_x0000_i1030"> (2.1.1)
Подставим в (2.1.1) точноерешение y(x) , и проинтегрируем это уравнение наотрезке <img src="/cache/referats/4746/image014.gif" v:shapes="_x0000_i1031"> , тогда получим :
<img src="/cache/referats/4746/image016.gif" align=«left» hspace=«12» v:shapes="_x0000_s1026"><img src="/cache/referats/4746/image018.gif" v:shapes="_x0000_i1032"> (2.1.2)
где в последнем член предполагаем,что p(x) полином, аппроксимирующий f(x,y(x)) . Чтобыпостроить этот полином, предположим, что <img src="/cache/referats/4746/image020.gif" v:shapes="_x0000_i1033"> — приближения крешению в точках <img src="/cache/referats/4746/image022.gif" v:shapes="_x0000_i1034"> . Будем считатьдля начала, что узлы Xi расположеныравномерно с шагом h. тогда fi = f(xi,yi), ( i=k,k-1,k-2,…,k-N) есть приближения к f(x,y(x)) в точках <img src="/cache/referats/4746/image022.gif" v:shapes="_x0000_i1035"> и мы в качестве P возьмеминтерполяционный полином для выбора данных (xi,fi),
( i=k,k-1,k-2,…,k-N). Таким образом, P– полином степени N,удовлетворяющий условиям P(xi)=fi , ( i= k,k-1,k-2,…,k-N) . В принципе, можем проинтегрировать этотполином явно, что ведет к следующему методу :
<img src="/cache/referats/4746/image024.gif" v:shapes="_x0000_i1036"> (2.1.3)
В простейшем случае, когда N=0 , полином P есть константа , равная fk , и(2.1.3) превращается в обычный метод Эйлера :
<img src="/cache/referats/4746/image026.gif" v:shapes="_x0000_i1037"> (2.1.4)
Если N=1, то Pесть линейная функция, проходящая через точки
(xk-1,fk-1) и(xk,fk), т.е.
<img src="/cache/referats/4746/image028.gif" v:shapes="_x0000_i1038"> (2.1.5)
интегрируя этот полином от Xk до Xk+1 , получимследующий метод :
<img src="/cache/referats/4746/image030.gif" v:shapes="_x0000_i1039"> (2.1.6)
которыйявляется двухшаговым, поскольку использует информацию в двух точках xk и xk-1 . Аналогично,если N=2 , то P — есть кубический интерполяционный полином,а соответствующий метод определяется формулой :
<img src="/cache/referats/4746/image032.gif" v:shapes="_x0000_i1040"> (2.1.7)
Отметим, что метод (2.1.6) –есть метод Адамса-Башфорта второго порядка, (2.1.7) – метод Адамса-Башфортачетвертого порядка .
Длястартования метода (2.1.7) необходимы сведения о четырех предыдущихточках. Соответственно данный метод требует вычисления стартующих данных.Воспользуемся для нахождения второй точки одношаговым методом Эйлера, которыйимеет вид :
<img src="/cache/referats/4746/image026.gif" v:shapes="_x0000_i1041">
Таким образом, подставляяначальные условия, мы находим вторую точку. Следует заметить, что степеньточности совпадает со степенью точности остальных методов, что являетсясущественным фактором в стартовании метода прогноза и коррекции .
Ввиду того, что стартовые методы имеют более низкий порядок, в началеприходится считать с меньшим шагом и с использованием большего промежуткавремени. В данном случае метод Эйлера для дальнейшего интегрирования неоправдывает себя. Для этих целей воспользуемся трехшаговым методом прогноза икоррекции с переменным шагом .
Рассуждая также, как для методаАдамса-Башфорта, который излагается в работах: [1],[2],[3] , мымы приходим к формулам :
Прогноз :
<img src="/cache/referats/4746/image034.gif" v:shapes="_x0000_i1042"> (2.1.8)
Коррекция :
<img src="/cache/referats/4746/image036.gif" v:shapes="_x0000_i1043"> (2.1.9)
где h — шаг интегрирования, изменяющийся на маломпромежутке времени в соответствии сусловиями Рунге :
<img src="/cache/referats/4746/image038.gif" v:shapes="_x0000_i1044"> ,
где в свою очередь <img src="/cache/referats/4746/image040.gif" v:shapes="_x0000_i1045"> — малое конкретноезначение, при невыполнении условия которого увеличивается шаг h=h*N а <img src="/cache/referats/4746/image042.gif" v:shapes="_x0000_i1046"> h=h/N, где N — некоторое целое число больше единицы .
Оптимально, для вычисления новой точки, с помощьюметода прогноза и коррекции ,используется формула :
<img src="/cache/referats/4746/image044.gif" v:shapes="_x0000_i1047"> (2.1.10)
Таким образом, мы воспользовались простым трех шаговымметодом прогноза и коррекции , длястартования метода Адамса-Башфорта. Преимущества данного метода заключаются: в его высокой точности,авто подборе шага, что во много раз повышает точность самого методаАдамса-Башфорта, и делает его оптимальным для задач такого рода .
Метод Адамса-Башфорта использует уже посчитанныезначения в точке Xk и в предыдущих точках. В принципе, при построении интерполяционного полинома, мы можемиспользовать и точки Xk+1,Xk+2,…. Простейший случай при этом состаит виспользовании точек Xk+1,Xk,…,Xk-N
и построенияинтерполяционного полинома степени N+1 ,удовлетворяющего условиям P(Xi)=fi, (I=k+1,k,…,k-N) . При этом возникает класс методов, известныхкак методы Адамса-Моултона. Если N=0 , то p– линейнаяфункция, проходящая через точки (Xk,fk) и (Xk+1,fk+1), и соответствующий метод:
<img src="/cache/referats/4746/image046.gif" v:shapes="_x0000_i1048"> (2.1.11)
являетсяметодом Адаиса-Моултона [2] , именно им мы воспользовались в формуле (2.1.9) – коррекции спрогнозированной точки втрех шаговом методе. Если N=2 , то p– кубический полином, построенный по точкам <img src="/cache/referats/4746/image048.gif" v:shapes="_x0000_i1049"> и соответствующийметод :
<img src="/cache/referats/4746/image050.gif" v:shapes="_x0000_i1050"> (2.1.12)
является методом Адамса-Моултона четвертого порядка. В силу того, чтопо сути fk+1– неизвестная, то методы Адамса-Моултона (2.1.11),(2.1.12) называют неявными. В тожевремя методы Адамса-Башфорта – называют явными .
Теперьвоспользовавшись явной формулой (2.1.7) , и неявной формулой (2.1.12) , используя их совместно, мы приходим к методу Адамса-Башфортачетвертого порядка :
<img src="/cache/referats/4746/image052.gif" v:shapes="_x0000_i1051"> (2.1.13)
<img src="/cache/referats/4746/image054.gif" v:shapes="_x0000_i1052">
<img src="/cache/referats/4746/image056.gif" v:shapes="_x0000_i1053">
<img src="/cache/referats/4746/image058.gif" v:shapes="_x0000_i1054">
Стоит обратитьвнимание, что в целом этод метод является явным . Сначало по формуле Адамса-Башфортавычисляется значение<img src="/cache/referats/4746/image060.gif" v:shapes="_x0000_i1055"> , являющееся “прогнозом” . Затем <img src="/cache/referats/4746/image060.gif" v:shapes="_x0000_i1056"> используется длявычисления приближенного значения <img src="/cache/referats/4746/image062.gif" v:shapes="_x0000_i1057"> , которое в своюочередь используется в формуле Адамса-Моултона. Таким образом формула Адамса-Моултона “корректирует” корректируетприближение, называемое формулой Адамса-Башфорта .
Теперьрассмотрим произвольную систему линейныхдифференциальных уравнений первого порядка :
<img src="/cache/referats/4746/image064.gif" v:shapes="_x0000_i1058">
где
A= <img src="/cache/referats/4746/image004.gif" v:shapes="_x0000_i1059">
Заданная матрица размером NxN; <img src="/cache/referats/4746/image006.gif" v:shapes="_x0000_i1060"> — вектор с Nкоординатами, который подлежит определению. В связис тем, что связь между искомыми неизвестными определяется матрицей коэффициентов A, на каждом шаге по времени, необходимо решить системуотносительно неизвестных скоростей, для её решения воспользуемсямодифицированным методом Гаусса, который описан в разделе 2.2 .
Далее,интегрируя сначала ранее описаннымиметодами : методом Эйлера на первом шаге, трех точечным методом прогнозаи коррекции с авто подбором шага, на малом промежутке времени и с малымначальным шагом , для повышения точностистартующих методов на оставшемся промежутке времени производим интегрирование спостоянным шагом – пяти точечным методом прогноза и коррекции Адамса-Башфорта(2.1.13) , [2], [3] .
2.2 Модифицированный метод Гаусса
Как типичный пример решения систем линейныхдифференциальных уравнений , рассмотримсистему четырех линейных алгебраических уравнений .
Для решения системы четырех линейных алгебраическихуравнений с четырьмя неизвестными модифицированным методом Гаусса необходимо
Составить систему : <img src="/cache/referats/4746/image066.gif" v:shapes="_x0000_i1061">(2.2.1)
1)Каждое уравнение делиться на коэффициент при X1
<img src="/cache/referats/4746/image068.gif" v:shapes="_x0000_i1062">
2) Теперь образуем нули в первом столбцематрицы системы: вычитаем 2-ое
из 1-ого, 3-е из 2-ого, 4-ое из3-его :
<img src="/cache/referats/4746/image070.gif" v:shapes="_x0000_i1063">
(2.2.2)
3) Повторив еще раз эти операции получим систему двух уравнений с двумянеизвестными, решение которой можно получить по формулам Крамера :
<img src="/cache/referats/4746/image072.gif" v:shapes="_x0000_i1064"> (2.2.3)
Решение же X1 и X2 можно получить, подставивв какое-либо из уравнений систем (2.2.1) и (2.2.2) и разрешив эти уравненияотносительно соответствующей переменной .
3.ОПИСАНИЕАЛГОРИТМА
Программа начинается с вывода сообщения опрограмме. После происходит считывание необходимых исходных данных из файла,для дальнейшей работоспособности алгоритма, а именно – начальных условий иматрицы коэффициентов системы линейных дифференциальных уравнений первого рода, начального шага интегрирования, левого и правого условий Рунге, времяинтегрирования по трех шаговому методупрогноза и коррекции , времяинтегрирования по пяти точечному методу Адамса-Башфорта .
С помощью метода Эйлера находимдополнительные начальные условия. Решение систем линейных дифференциальныхуравнений мы описываем отдельной процедурой, что облегчает дальнейшуюалгоритмизацию .
Далее составляем цикл, для реализации алгоритманахождения всех Yk+1 точек назаданном малом промежутке времени, и проверкой на условия Рунге, по трехшаговому методу прогноза и коррекции с авто подбором шага . После чего мы организовываем цикл,реализующий алгоритм нахождения точек по методу Адамса-Башфота , на заданном большом промежутке времени и сшагом автоматически подобранным предыдущим методом .
Вычисленные данные записываем файл, по ним формируеммассив данных, которые выводим в сответствии с масштабированием на экран ввиде графиков .
Блок-схема приведена в Приложении 1 .
4.ОПИСАНИЕПРОГРАММЫ
Программа реализующая универсальный алгоритм длярешения систем линейных дифференциальныхуравнений первого порядка произвольного вида, — построена по принципам объектно-ориентированного программирования.Основная программа построена на объектной библиотеке VFH , реализующейвозможности реализации гибкого интерфейса между программой и пользователем .
Основная программа включает в себя только один модуль PACM, и использует всего два метода объекта TApplPandC , - метод Application — рабочий цикл программы ; деструктор Done– реализует разрушение таблицы виртуальных методов , и операций, связанных с завершениемпрограммы .
Модуль PACMвключает всебя модули библиотек — реализующихпостроение интерфейса . Модульреализующий алгоритм метода Адамса-Башфорта, и по вычесленным данным строящийграфик, есть – PACMBtn.
Главным родителем всех объектов есть объект – Tobject . Основным рабочим объектом библиотеки VFH есть объект Tform . Рассмотрим потомка являющегося типичным представителем родителя TForm - TApplPandC. Он имеет два виртуалых метода : MouseHandler: Boolean Б – выходным параметром которого есть признак закрытия формы , и метод FormCreate — реализующий построение интерфейсаформы . Не виртуальный метод Application — предназначен для создания формы,конфигурирования программной среды, и дальнейшего управления программой .
Модуль реализующий создание и управления главного исубменю , есть – PACMMenu , позволяющий пользователю изменять параметры и настройки системы,предоставляющий справку о разработчике, а также дает доступ к справочнойсистеме PrandCoMHelpSystem . Данныесвойства меню реализуют объекты TMenu , и THelpForm , объектной библиотеки VFH .
Теперь рассмотрим модуль PACMBtn–рреализующий алгоритм построения вычисленных данных. Процедура реализующаяалгоритм пяти точечного метода прогноза и коррекции Адамса-Башфорта , - MethodAdamsaBashforta( h,tp,ta: real; NU: array[1..N] ofreal) – параметры которойпредставляют: h- начальный шаг интегрирования; tp– время интегрирования трех точечным методом прогнозаи коррекции , ta– время интегрирования по методу Адамса-Башфорта, NU– массив начальных условий. Данная процедураспособна производить решения систем линейных дифференциальных уравненийпроизвольного размера, на произвольном промежутке времени интегрирования . Вычисленные данные записываются вфайлы prandcom*.df . Метод реализующий алгоритм построения вычисленных данных произвольнойстепени сложности , с возможностьюпостроения графиков с не линейно изменяющимся шагом , построения одновременно любого количества графиков, — есть объект TCartFile , обладающего всеми свойствами родителей Tform, Tchart .
К заключению стоит заметить, что программа PrandCoMversion2.41 - разработана на языке BorlandPascal под защищенный режим работы процессора и имеет доступ ко всей оперативной памятикомпьютера . Реализует гибкий интерфейс, облегчающим работу с программным обеспечением . Позволяет решить систему линейныхдифференциальных уравнений первого порядка методом Адамса-Башфорта, свозможность просмотра результатов вычисления в виде графиков.
Как показали тестовые программы – разработанныйалгоритм предоставляет точность вычислений, погрешность которых непревышает 1% .
Тексты программной оболочки PrandCoM version2.41 приведены в приложении4 .
5.ПРИМЕРЫ РАСЧЕТОВ
Для анализадостоверности получаемых результатов рассмотрим следующие примеры :
5.1.Решение одного дифференциальногоуравнения
Первымэтапом анализа достоверности была проверка правильности решения одногодифференциального уравнения . Полученное численное решение сравнивается саналитическим .Пусть требуется решить уравнение :<img src="/cache/referats/4746/image074.gif" v:shapes="_x0000_i1065">
при начальномусловии y(0)=1, 0<=x<=1, и шаге интегрирования h=0.1. Этолинейное уравнение, имеющее следующее точное решение :
<img src="/cache/referats/4746/image076.gif" v:shapes="_x0000_i1066">
которое поможет нам сравнить точность численногорешения для случая с постоянным шагом ,т.к. точность решений с переменным шагомвыше . Результаты расчета представлены вТаблице 1.Как видно из таблицы, отличие между численными и аналитическимирешениями удовлетворительное даже длятакого большого шага, и не превышает 2%. Теперь решим этот же пример тем жеметодом, но с переменным шагом. Получаем любопытные зависимости точности отвыбора шага, а также шага сходимости, — которые носят периодический характер. Результаты исследования приведены в таблице 2. Как мы видим, погрешность резкоуменьшается с использованием метода спеременным шагом, и показывает очень высокую точность решения для численных методов, не превышающею 1% .
Таблица SEQ Таблица * ARABIC 1
<img src="/cache/referats/4746/image078.gif" v:shapes="_x0000_i1067">
Таблица SEQ Таблица * ARABIC 2
Начальный шаг
Максимальная погрешность
Сведение к шагу
0.1
1.683 %
0.0250
0.01
1.163 %
0.0100
0.001
0.744 %
0.0040
0.0001
0.568 %
0.0032
0.00001
0.451 %
0.0025
0.000001
0.723 %
0.0040
0.0000001
0.578 %
0.0032
0.00000001
0.462 %
0.0026
0.000000001
0.740 %
0.0041
0.0000000001
0.592 %
0.0033
0.00000000001
0.473 %
0.0026
Иллюстрация решения данногодифференциального уравнения в виде графика – приведена в Приложении 2 .
5.2.Решение системы дифференциальныхуравнений
Вторым этапом анализа достоверности полученныхрезультатов была проверка правильности решения системы линейныхдифференциальных уравнений саналитическим решением .
Рассмотрим следующую систему дифференциальныхуравнений , которую требуется решитьметодом Адамса-Башфорта :
<img src="/cache/referats/4746/image080.gif" v:shapes="_x0000_i1068">
Начальнымиусловиями здесь являются :
<img src="/cache/referats/4746/image082.gif" v:shapes="_x0000_i1069"> . Возьмем начальный шаг интегрирования h=0.00001 , время интегрирования по трехточечному методу прогноза и коррекции tp=0.1 и времяинтегрирования по методу Адамса-Башфорта ta=1 .
Результатыисследования для разных начальных шагов интегрирования приведены в таблице 2.Мы приходим к выводу, что точность решения одного уравнения и системы дифференциальныхуравнений совпадают .
Иллюстрациярешения данной системы дифференциальных уравнений приведены в виде графика вприложении 3 .
ЗАКЛЮЧЕНИЕ
В даннойкурсовой научно-исследовательской работе разработан алгоритм ипрограмма решения систем линейныхдифференциальных уравнений первого порядка пяти точечным методом прогноза икоррекции Адамса-Башфорта .
Проведены тестовые расчеты , подтвердившие высокую эффективность иточность метода Адамса-Башфорта со стартованием трех точечным методом прогнозаи коррекции с переменным шагом .
Проведены рядисследований решения систем как спостоянным шагом, так и с переменным шагом на сходимость к постоянному шагу .
Во всех случаях получены результаты высокой точности .
Список используемойлитературы 1.Дж.Ортега, У.Пул “Введение в численные методы решениядифференциальных уравнений ”. Пер.с англ.; под редакцией А.А.Абрамова — М.; Наука.Гл.ред.физ.мат.лит.1986.-288с.2.Р.В.Хемминг“Численныеметоды для научных работникови
инженеров ”: Пер с англ.: Под редакциейР.С.Гутера .-
Гл.ред.физ.мат.лит.1968.-203с.
<span Times New Roman"">3.<span Times New Roman"">
Т.Шуп.”Решениеинженерных задач наЭВМ. Практическое пособие “Пер.сангл.-М.Мир.1982.-238с.
Приложение1 :
Блок схема Алгоритма
Начало
Вывод сообщения
Считывание данных из файла
Yn:=Yn_1+h*dYn
T<=Tp
<img src="/cache/referats/4746/image083.gif" v:shapes="_x0000_s1027 _x0000_s1032 _x0000_s1033 _x0000_s1034 _x0000_s1035 _x0000_s1036 _x0000_s1037 _x0000_s1038 _x0000_s1050"><img src="/cache/referats/4746/image084.gif" v:shapes="_x0000_s1067"><img src="/cache/referats/4746/image085.gif" v:shapes="_x0000_s1068"><img src="/cache/referats/4746/image086.gif" v:shapes="_x0000_s1051"><img src="/cache/referats/4746/image087.gif" v:shapes="_x0000_s1063"> -
<img src="/cache/referats/4746/image088.gif" v:shapes="_x0000_s1052">
Gauss
<img src="/cache/referats/4746/image089.gif" v:shapes="_x0000_s1039"> +Yn:=Yn_1+h*DyN/2
Gauss
Yn:=Yn_1+h*(DyP-DyN)/5
T:=t+h
Ep<Yn
<img src="/cache/referats/4746/image090.gif" v:shapes="_x0000_s1040 _x0000_s1041 _x0000_s1042 _x0000_s1043 _x0000_s1044 _x0000_s1053 _x0000_s1054 _x0000_s1055 _x0000_