- •Лабораторный практикум
- •Содержание
- •Комплексное задание №1 решение систем линейных уравнений
- •Комплексное задание №2 Аппроксимация функций
- •Комплексное задание №3 Вычисление определенных интегралов
- •Комплексное задание №4 Решение нелинейных уравнений
- •Комплексное задание №5 Решение систем дифференциальных уравнений
- •Литература
Комплексное задание №5 Решение систем дифференциальных уравнений
Цель работы:
Приобретение навыков численного решения систем дифференциальных уравнений методами Эйлера и Рунге-Кутта 4 порядка
Приобретение навыков объектно-ориентированного программирования
Приобретение навыков работы в среде визуального программирования
Постановка задачи.
Имеется некоторая система дифференциальных уравнений, представленная в форме Коши. Требуется
Создать объектно-ориентированное представление задачи нахождения векторной функции Y=Y(x) скалярного аргумента x (далее просто «функции»), удовлетворяющей системе дифференциальных уравнений вида dY/dx=f(x,Y) и принимающей при x=x0 заданное значение Y0: Y(x0)=Y0. Для определенности принять, что x>x0;
В соответствии с разработанным представлением задачи выполнить программную реализацию нахождения функции методами Эйлера и Рунге-Кутта 4 порядка.
Создать интерфейсный модуль для ввода данных в диалоговом режиме и графической визуализации результатов
Провести сравнительный анализ методов.
Требование к программе.
Программа должна для заданной системы дифференциальных уравнений на отрезке [x0,xT] находить значения функции Y=Y(x) в узлах x1,_x2,_…_xT, равномерно, с шагом h, распределенных на заданном отрезке
При выполнении задания допускается использование только программных модулей и компонент, разработанных самим студентом, стандартных компонент, предоставляемых средой визуального программирования Delphi, а также модулей uCommon и uVector библиотеки Simulate1.
Решение задачи Коши
Простейшими методами решения системы дифференциальных уравнений, представленных в форме Коши (задача Коши) являются методы Эйлера и Рунге-Кутта 4 порядка.
Метод Эйлера
Относится к одношаговым методам. Основан на разложении искомой функции Y(x) в ряд Тейлора в окрестностях узлов x=xi (i=0,1,…), в которых отбрасываются все члены, содержащие производные второго и более высоких порядков. Разностная схема этого метода имеет вид рекуррентных формул, с помощью которых значение сеточной функции в любом узле вычисляются по ее значению в предыдущем узле
Метод Эйлера с пересчетом
Является модификацией метода Эйлера. Реализуется следующими рекуррентными соотношениями
Метод Рунге-Кутта
Является одним из самых распространенных одношаговых методов. Алгоритм метода можно записать в следующем виде
Объектно-ориентированное представление задачи
На данном этапе полагается, что студент в достаточной степени овладел объектно-ориентированной технологией программирования и должен самостоятельно разработать соответствующий программный модуль. В модуле Simulate1 подобная задача представлена, а документация к нему может быть использована как методическое пособие в помощь разработчику.
Интерфейсный модуль для ввода данных и графической визуализации результатов.
На данном этапе полагается, что студент в достаточной степени овладел возможностями визуализации исходных данных и результатов расчетов и может самостоятельно придумать и реализовать интерфейс своей программы. Остановимся лишь на основных требованиях к интерфейсному модулю
Модуль должен содержать стандартное меню, с помощью которого организуется возможности сохранения/считывания данных и управления процессом вычислений.
Во всех компонентах интерфейсного модуля обязательно должна проводится проверка корректности ввода данных.
Должна быть обеспечена возможность выбора метода решения
Результаты расчетов должны быть представлены в виде текстового файла, таблицы и графически, как в виде зависимостей компонент вектора Y от независимой переменной, например Y1=Y1(x), Y2=Y2(x) и т.п., так и в виде зависимости друг от друга, например Y2(Y1), Y3(Y2) и т.п..
Исследование метод решения и представление результатов
В заключение работы на примере решения какой-либо системы дифференциальных уравнений, позволяющем получить также и точное решение, необходимо провести сравнительную оценку рассмотренных методов, при этом
При одинаковом шаге проследить рост погрешности с возрастанием x
Оценить влияние шага на точность результатов
Провести анализ влияние времени вычисления правых частей на выбор метода решения
Полученные результаты оформляются в виде отчета, в котором представляются основные результаты работы, дается наглядная интерпретация объектно-ориентированного представления задачи, приводятся необходимые таблицы и графики, делаются выводы по проделанной работе. Отчет готовится в виде электронного документа, подготовленного в редакторе MS Word, и предоставляется при защите работы.
