Введение

В курсовой работе в соответствии с заданием на проектирование решается задача разработки программы поиска решения системы дифференциальных уравнений двумя методами: Рунге-Кутта и Рунге-Кутта-Мерсона.

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

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

В пояснительной записке приводится также сравнения точности вычислений корней системы уравнений использованными методами.


1. Постановка задачи

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

 (1)

Требуется найти решение системы дифференциальных уравнений (1) методом Рунге-Кутта и методом Рунге-Кутта-Мерсона. Выбор метода решения посредствам меню, при помощи клавиш управления курсором.

Таким образом, программа должна обеспечивать возможность:

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

предоставить пользователю возможность получить краткую справку о программе;

вывода результатов вычисления на дисплей в удобном для восприятия виде.

В результате сформулируем следующую задачу по созданию программы:

вид системы дифференциальных уравнений должен задаваться в подпрограмме – процедуре;

вид правой части уравнений должен задаваться в подпрограмме – функции;

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

после выполнения указанной в строке подсказки процедуры перехода должно выводиться вертикальное меню с пунктами: «Справка», «Метод Рунге-Кутта», «Метод Рунге-Кутта-Мерсона» и «Выход»

при выборе в меню пункта «Справка» должна выводиться краткая справка о назначении программы;

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

при выборе пункта меню «Выход» программы должна завершать работу.


2. Математическая формулировка задачи

Задача Коши заключается в решении систем обыкновенных дифференциальных уравнений (1) первого порядка, представляемых в виде:

 (1.1)

 

Где j=1N-номер каждой зависимой переменной yj, x-независимая переменная .

Решение системы (1.1) при заданных начальных условиях x=x0, y1(x0)=y10,…,y2(x0)=y20, yN(x0)=yN0 сводиться к нахождению зависимостей (интегральных кривых) y1(x),…,y2(x), yN(x), проходящих через точки (x0,y10), (x0,y20),…, (x0,yN0). Задача Коши сводиться к интегрированию дифференциальных уравнений. Порядок метода численного интегрирования при этом определяется и порядок метода решения (1).

2.1 Метод Рунге-Кутта

 

Этот метод является наиболее распространенным методом решения систем (1.1) при шаге h=const. Его достоинством является высокая точность-погрешность  - и меньшая склонность к возникновению неустойчивости решения. Алгоритм реализации метода заключается в циклических вычислениях Yj(i+1) на каждом i+1 шаге по следующим формулам:

(2)

 (3)

 (4)

 (5)

 (6)

При переходе от одной формулы к другой задаются или вычисляются соответствующие значения x и Yjи находятся по подпрограмме значения функции Fj(x,Yj).

2.2 Метод Рунге-Кутта-Мерсона

Автоматическое изменение шага в ходе решения систем дифференциальных уравнений необходимо, если решение требуется получить с заданной точностью. При высокой точности (погрешность ) и решении в виде кривых с сильно различающейся крутизной автоматическое изменение шага обеспечивает уменьшение общего числа шагов в несколько раз, резко уменьшается вероятность числовой неустойчивости, даёт более равномерное расположение точек графика кривых (решений) при их выводе на печать. Данный метод обеспечивает приближённую оценку погрешностей на каждом шаге интегрирования. Погрешность интегрирования имеет порядок h5. Этот метод реализуется следующим алгоритмом: Задаём число уравнений N, погрешность ε=E, начальный шаг интегрирования h=H и начальное значение y10,…,yN0. С помощью пяти циклов с управляющей переменной J=1,2,..,N вычисляем коэффициенты:

 (7)

 (8)

 (9)

 (10)

 (11)

Находим (в последнем цикле) значение (12)

 (12)

И погрешность

 (13)

Проверяем выполнения условий

 (14)

 (15)

Если условие (14) не выполняется, то делим шаг h на 2 и повторяем вычисления. Если это условие выполняется и выполняется условие (15), значение xi+1=xi+h и Yj(i+1), то считаем, что решение системы дифференциальных уравнений найдено с заданной точностью. Если условие (15) не выполняется , шаг h увеличивается вдвое и вычисления повторяются.



Информация о работе «Разработка программы поиска решения системы дифференциальных уравнений двумя методами: Рунге-Кутта и Рунге-Кутта-Мерсона»
Раздел: Информатика, программирование
Количество знаков с пробелами: 19099
Количество таблиц: 9
Количество изображений: 21

0 комментариев


Наверх