Экспериментальные исследования методов Рунге-Кутты

PAGE 2

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

Севастопольский национальный технический университет

Кафедра технической кибернетики

КУРСОВАЯ РАБОТА

по дисциплине «Вычислительные методы»

Студентка Хмарская В.А.

Группа А-22д

№ уравнения 20, № метода 2

Руководитель Захаров В.В.

Оценка________

Севастополь

2006

СОДЕРЖАНИЕ

Введение ________________________________________________________________3

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

1.1. Преобразование уравнения к нормальной форме Коши ____________________4

  1. Методы Рунге-Кутты интегрирования систем обыкновенных дифференциа-

льных уравнений________________________________________________________4

1.2.1. Вывод формулы Рунге-Кутты второго порядка________________________5

1.2.2. Свойства исследуемых методов___________________________________7

2. Описание программных модулей__________________________________________9

2.1.Главная программа__________________________________________________9

2.2. Процедура RK2_____________________________________________________10

2.3. Процедура RK4_____________________________________________________10

2.4. Процедура Right____________________________________________________11

2.5. Функция Reshenie__________________________________________________11

2.6. Процедура Output___________________________________________________12

2.7. Процедура OutputVspom_____________________________________________12

2.8. Руководство оператора______________________________________________12

3. Экспериментальные исследования методов Рунге-Кутты_____________________13

3.1. Анализ влияния величины шага на точность интегрирования методами Рунге-Кутты второго и четвертого порядков_____________________________________13

3.2. Проверка гипотезы Рунге____________________________________________14

3.3 Исследование поведения ошибки интегрирования как функции независимой переменной для обоих методов Рунге-Кутты при различных значениях шага____15

  1. Сравнительный анализ эффективности методов Рунге-Кутты при различных требованиях к точности вычислений___________________________________18

Заключение______________________________________________________________20

Список используемых источников___________________________________________21

Приложение А Схемы программных модулей________________________________22

Приложение Б Текст программы___________________________________________28

Приложение В Таблицы результатов вычислений на ЭВМ_____________________32


ВВЕДЕНИЕ

Настоящая курсовая работа по курсу «Вычислительные методы» посвящена экспериментальному исследованию свойств методов Рунге-Кутты, наиболее часто применяющихся в практике моделирования и проектирования систем управления и автоматики. Экспериментальные исследования проводятся на ЭВМ с помощью составленных и отлаженных студентом программ интегрирования обыкновенных дифференциальных уравнений.

В разных областях техники и экономики приходится встречаться с математическими задачами, для которых невозможно описать точное решение классическими методами. Разрабатываемые вычислительной математикой численные методы носят в основном приближенный характер, позволяя, тем не менее, получить окончательный числовой результат с приемлемой для практических целей точностью. С помощью численных методов можно найти решение нелинейных алгебраических и трансцендентных уравнений, определенных интегралов, дифференциальных уравнений. Вопрос о точности вычислений на ПЭВМ имеет большое значение, поскольку объем вычислений для получения результатов приближенными методами велик и погрешности могут существенно их исказить. Кроме того, оценка точности численного метода важна и поэтому, что в некоторых пределах увеличить точность можно за счет увеличения количества вычислений, а уменьшить временные затраты при решении задачи - за счет снижения точности получаемого решения.


1 ПОСТАНОВКА ЗАДАЧИ

  1. Преобразование уравнения к нормальной форме Коши

Требуется найти решение х(t) обыкновенного дифференциального уравнения второго порядка, в соответствии с вариантом №20, имеющим вид (1.1):

(1.1)

на отрезке при заданных начальных условиях (1.2):

t0=1, tf=11 ,x0=43/30 , x0’=2.3

(1.2)

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

(1.3)

Подставив эти переменные в (1.1), (1.2) и, проведя преобразования, приходим к системе из двух дифференциальных уравнений в нормальной форме Коши (1.4):

(1.4)

с начальными условиями (1.5):

t0=1, tf=11 ,x0=43/30 , x0’=2.3

(1.5)

Функция , удовлетворяющая (1.4) и (1.5) является искомым решением уравнения (1.1), удовлетворяющего начальным условиям (1.2).

1.2 Методы Рунге-Кутты интегрирования систем обыкновенных дифференциальных уравнений

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

Наиболее удобной для теоретических исследований и программирования является векторная форма записи. Для перехода к векторной форме записи введём вектор решений Х(t) (1.6):

(1.6)

Теперь заданное дифференциальное уравнение можно представить в виде (1.7):

(1.7)

В соответствии с (1.7), решение на одном интервале может быть получено в виде (1.8):

(1.8)

Bce методы Рунге-Кутты можно представить в общем виде (1.9):

(1.9)

где m- целое положительное число,

i i, i, - вещественные коэффициенты, определяющие метод.

Формулу (1.9) называют m-cтадийньм явным методом Рунге-Кутты. Если известно решение в некотором узле интегрирования , то, применив формулу метода, можно выполнить один шаг интегрирования и вычислить приближенное решение в следующем узле . Для выполнения шага требуется несколько раз вычислить значения функции при разных значениях аргументов. Количество вычисления правых частей на шаге определяется порядком метода. Вычисления рекуррентно повторяются до тех пор, пока значение независимой переменной не достигнет правого конца отрезка интегрирования .

Метод Рунге-Кутты имеет порядок m, если выполняется условие (1.10):

(1.10)

т.е., если ряды Тейлора для точного решения и для , определённого по формуле (1.9), совпадают до члена включительно.

1.2.1 Вывод формулы Рунге-Кутты второго порядка

Из (1.9) следует, что для метода второго порядка

(1.11)

или

(1.12)

Чтобы определить метод, достаточно найти значения 1, 2, , и . Воспользуемся условием (1.10). Для метода второго порядка ряды Тейлора для точного решения и для , определённого по формуле (1.12) должны совпадать до члена включительно, т.е.

(1.13)

Разложение в ряд Тейлора точного решения, определяемого по формуле (1.8), имеет вид (1.14):

(1.14)

где содержит сумму членов ряда по со степенями не менее m+1.

Найдем разложение в ряд Тейлора приближенного решения, определяемого методом Рунге-Кутты по формуле (1.12). Здесь m = 2.

(1.15)

Коэффициенты вычисляются из следующих соотношений:

(1.16)

Введем новую переменную . Тогда

(1.17)

Для нахождения коэффициентов необходимо вычислить . Продифференцируем по h, учитывая, что S – сложная функция:

(1.18)

(1.19)

Находим вторую производную:

(1.20)

Производную от S находим, воспользовавшись правилом дифференцирования сложных функций:

(1.21)

(1.22)

Приравнивая члены с одинаковыми производными и , получим (1.23):

(1.23)

СЛАУ (1.23) имеет не одно решение, но на практике наиболее часто используются два из них:

1) - получившее название модифицированного метода Эйлера;

2) - получившее название исправленного метода Эйлера.

Первое решение определяет метод, исследуемый в данной курсовой работе. Для него:

(1.24)

1.2.2 Свойства исследуемых методов

Рунге получил оценку погрешности, делаемой на одном kом шаге, при условии, что решение на (k-1)ом шаге получено точно для метода порядка m .

(1.25)

Локальная погрешность является величиной (m+1)го порядка малости относительно шага интегрирования. В первом приближении можно считать, что коэффициент в (1.25) не зависит от величины шага интегрирования. Формула (1.25) позволяет оценить точность выполнения шага интегрирования, применяя правило Рунге для определения значения коэффициента.

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

(1.26)

Известно точное решение уравнения при заданных начальных условиях (1.27):

(1.27)

Это дает возможность вычислить ошибку интегрирования по формуле (1.28):

(1.28)

где - определённое по формуле (29) точное решение;

- приближённое решение.

Формула (1.28) может быть применена в любом узле интегрирования, поскольку в каждом узле определяется приближённое решение.

Оценку ошибки интегрирования на заданном отрезке можно определить формулой (1.29):

(1.29)


2 ОПИСАНИЕ ПРОГРАММНЫХ МОДУЛЕЙ

В ходе работы была составлена программа, реализованная на языке Turbo Раsса1 7.0, вычисляющая точное и приближенные решения дифференциального уравнения (1.1) на заданном отрезке интегрирования, полученные двумя методами: Рунге-Кутты второго и четвёртого порядка.

Программа имеет четыре части:

1).главная программа;

2).процедура вычисления правой части Right;

3).функция вычисления точного решения Reshenie;

4).процедура одного шага интегрирования методом Рунге-Кутты 2-го порядка;

5).процедура одного шага интегрирования методом Рунге-Кутты 4-го порядка;

6).процедура вывода результатов Output;

7).вспомогательная процедура для вывода результатов OutputVspom.

2.1 Главная программа

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

Кроме этого, она позволяет вычислить полную ошибку на шаге, а также оценку ошибки (1.29).

Полная ошибка определяется по формуле (2.1):

(2.1)

Программу можно условно разделить на 3 основных блока: ввод исходных данных, решение уравнения (методами Рунге-Кутты и точное) и вывод результатов в файлы и на экран.

После ввода исходных данных векторам решений присваиваются соответствующие начальные условия.

Решение уравнения осуществляется в цикле по t, изменяющемся от t0 до tf с шагом h. В цикле производится последовательный вызов процедур RK2 и RK4, определяющих решение уравнения в точке t+h, а также вычисляется точное решение вызовом функции Reshenie. По формуле (2.1) определяется полная ошибка на шаге для выбранного метода, и, в случае выполнения условия Error > V_Error значению V_Error присваивается Error, т.е. вычисляется оценка ошибки для каждого метода по формуле (1.29). Через определенное число шагов h_print указанные данные выводятся в файлы и на экран. Это осуществляется путем проверки равенства переменной Count(счетчик вывода результатов) с переменной h_print(шаг вывода результатов).

Результаты выводятся в файлы и на экран при помощи процедур Output и OutputVspom.

Описание основных переменных:

h - шаг интегрирования;

t - независимая переменная интегрирования;

t0 - нижний предел интегрирования;

tf - верхний предел интегрирования;

N - количество шагов интегрирования;

x2, x4 - массивы решений системы;

Error2, Error4 - ошибки интегрирования в текущем узле tk, вычисляется по (2.1);

Cal2, Cal4 –коэффициенты;

V_Error2, V_Error4 - оценки ошибок интегриров. на отрезке, вычисляется по (1.29);

h_Print - шаг вывода результатов;

Count - счетчик вывода результатов;

f, p, s - файловые переменные.

Схема основной программы приведена в приложении А, а текст - в приложении Б.

  1. Процедура RK2

Процедура RK2 производит вычисление одного шага интегрирования методом Рунге-Кутты второго порядка. Метод представляется формулами

X(tk) = X(tk-1) + h/4(F1 + 3F2) (2.2)

где

F1 = f(X(k-1), tk-1), (2.3)

F2 = f(X(k-1) + 2h/3F1, tk-1 +2h/3)

На входе в процедуру массив Х содержит решение в предыдущем узле, на выходе – в следующем. Процедура работает следующим образом: вычисляется правая часть в точке t и результат заносится в массив f1. Указанные действия осуществляются вызовом процедуры right. Затем в цикле по i формируется промежуточный массив xr, после чего снова вызывается процедура right, но правые части вычисляются уже в точке t+h. После этого формируется массив решений Х, а результат возвращается основной программе.

Описание переменных:

Входные параметры:

t - значение независимой переменной;

h - шаг интегрирования;

x2, x4 - векторы решений в точке tk – 1 для соответствующего метода.

Выходные параметры:

x2, x4 - векторы решений в точке tk = tk – 1 + h.

Локальные переменные:

xr - массив значений векторных аргументов правой части уравнения при вычислении f2;

f1,f2 - массивы значений правых частей.

Схема процедуры приведена в приложении А, а текст процедуры – в приложении Б.

  1. Процедура RK4

Процедура RK4 предназначена для выполнения одного шага интегрирования методом Рунге-Кутты четвертого порядка.

Метод реализуется формулами (2.4):

(2.4)

Для вычисления значений правых частей процедура четыре раза обращается к процедуре Right, в соответствующей формуле точке. Перед вычислением F2, F3 и F4 формируется массив аргументов xr. После вычисления F4 формируется массив решений уравнения в точке tk-1+h.

Описание переменных:

Входные параметры:

t - значение независимой переменной;

h - шаг интегрирования;

x2, x4 - векторы решений в точке tk – 1 для соответствующего метода.

Выходные параметры:

x2, x4 - векторы решений в точке tk = tk – 1 + h.

Локальные переменные:

xr - массив значений векторных аргументов правой части уравнения при вычислении f2;

f1,f2,f3,f4 - массивы значений правых частей.

Схема процедуры приведена в приложении А, текст процедуры – в приложении Б.

  1. Процедура Right

Процедура right предназначена для формирования массивов правых частей Fi. Данный процесс осуществляется согласно формуле (1.4).

Описание переменных:

t - Значение независимой переменной;

f - массив правых частей;

x - массив решений.

Схема процедуры приведена в приложении А, текст процедуры – в приложении Б.

  1. Функция Reshenie

Функция Reshenie предназначена для получения точного решения уравнения в точке t. Данный процесс осуществляется согласно формуле (1.27).

Описание переменных:

t - значение независимой переменной.

Схема функции приведена в приложении А, текст процедуры– в приложении Б.

  1. Процедура Output

Процедура Output предназначена для вывода полученных результатов интегрирования в файл и на экран.

Выходные переменные:

k - файловая переменная;

Error-ошибка интегрирования;

x - приближенное решение.

Схема процедуры приведена в приложении А, текст процедуры – в приложении Б.

  1. Процедура OutputVspom

Процедура OutputVspom предназначена для вывода пояснительных надписей, а также оценок ошибок в файл и на экран.

Выходные переменные:

k - файловая переменная;

V_Error- оценка ошибка интегрирования.

Схема процедуры приведена в приложении А, текст процедуры – в приложении Б.

  1. Руководство оператора

Программа работает следующим образом: при запуске программы на исполнение на экране появляется надпись:

Введите исходные данные:

Шаг интегрирования h=

Программа ожидает ввода значения шага интегрирования. Когда шаг введен, на экране появляется надпись:

Левый предел интегрирования t0=

Программа ожидает ввода значения левой границы интервала интегрирования. Когда она введена, на экране появляется надпись:

Правый предел интегрирования tf=

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

Получено ',N,' полных шагов интегрирования

Затем программа запрашивает шаг вывода результатов:

Введите шаг вывода результатов h_Print='

После его задания на экране появляется надпись:

Ввод исходных данных завершен.

После нажатия клавиши <ENTER> программа осуществляет действия, описанные в пункте 2.1. По окончании работы программы на экран ив файлы выводятся точные, приближенные решения, ошибки и оценки ошибок интегрирования.
3 ЭКСПЕРИМЕНТАЛЬНЫЕ ИССЛЕДОВАНИЯ МЕТОДОВ РУНГЕ-КУТТЫ

3.1 Анализ влияния величины шага на точность интегрирования методами Рунге-Кутты второго и четвертого порядков

Полная ошибка, возникающая при численном решении задачи Коши, складывается из алгоритмических ошибок и ошибок вычисления и вычисляется по формуле (3.1):

Eп(tk)=Ea(tk)+EB(tk) (3.1)

Ошибки вычислений связаны с приближенным представлением чисел в ЭВМ и приближенным выполнением операций с плавающей точкой. Алгоритмические ошибки возникают из-за того, что вместо точного решения уравнения мы получаем лишь приближенную формулу. Для вычисления полной ошибки в данной курсовой работе используется формула (1.28).

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

Для исследования влияния величины шага на точность интегрирования методами Рунге-Кутты на одном рисунке приводятся графики зависимости оценок ошибок интегрирования V_Error2 и V_Error4 от величины шага h для обоих методов. График приведен на рис. 1, аналитические результаты в приложении В.

Проведя анализ графика видно, что полная ошибка интегрирования метода Рунге-Кутты второго порядка заметно уменьшается при увеличении шага интегрирования до значения приблизительно до ,что обусловлено уменьшением вычислительных ошибок . Далее следует сравнительно ровный участок, на котором не происходит заметного роста полной ошибки, но уже при шаге равном 110-5 ошибка начинает расти более интенсивно, т.е. метод начинает терять устойчивость. Для метода Рунге-Кутты четвертого порядка наблюдается аналогичная картина. Как и в методе второго порядка значение полной ошибки уменьшается до значения шага ,причиной этого является также уменьшение . Далее следует относительно ровный участок, он продолжается до шага со значением приблизительно . Далее, с увеличением шага, ошибка начинает интенсивно расти - метод начинает терять устойчивость. Отличая между методами можно установить в численной величине оценки ошибки интегрирования, у метода четвертого порядка она приблизительно на пол-порядка меньше, чем у метода второго порядка при одинаковом значении шага интегрирования h.

Анализируя полученные результаты, можно сделать вывод, что результаты эксперимента соответствуют теоретическим положениям.

Соответствующий график приведен на рисунке 3.1.

Рисунок 3.1 График зависимости оценки интегрирования от

величины шага интегрирования

3.2 Проверка гипотезы Рунге

Рунге получил оценку погрешности, делаемой на одном k-ом шаге, при условии, что решение на (k-1)ом шаге получено точно для метода порядка m:

(1.25)

где С – коэффициент, зависящий от вида уравнения и длины отрезка интегрирования.

Локальная алгоритмическая ошибка является величиной (m+1)-го порядка малости относительно шага интегрирования h. В первом приближении можно считать, что коэффициент не зависит от величины шага интегрирования. Формула позволяет оценить точность выполнения шага интегрирования, применяя правило Рунге для определения значения коэффициента. Она часто используется для выбора величины шага интегрирования.

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

(1.26)

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

Полученные в результате описанного эксперимента зависимости представлены на рисунке 3.2. Аналитические данные находятся в приложении В. Исследуя полученные зависимости, мы видим, что в диапазоне изменения шага t от 0,000007 до 0,00003 для метода второго порядка и в диапазоне t 0,00001 … 0,00003 для метода четвертого порядка зависимость VE(h)/h^m является прямой линией, параллельной оси h. При значениях h, меньших, чем h в указанных диапазонах, проявляется влияние ошибки вычислений, при больших значениях – влияние потери устойчивости алгоритма. Эти выводы подтверждаются кривыми на рисунке 3.1. Таким образом, гипотеза Рунге для данной функции выполняется при соблюдении соответствующих условий.

Рисунок 3.2 Зависимость отношения величины оценки ошибки

к величине шага интегрирования в степени, равной

порядку метода

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

На рисунках 3.3, 3.4 и 3.5 приведены решения дифференциального уравнения при различных значениях шага h равных 0,00001, 0,08 и 1 соответственно. Соответствующие данные приведены в приложении 3. Т.к. величины полных ошибок при h=0,00001 и h = 0,08 для обоих методов несравнимо меньше значений решения на каждом шаге, на графиках, приведенных на рисунках 3.3 и 3.4 можно увидеть только одну кривую, соответствующую точному решению. Отклонение решений по методам второго и четвертого порядков от точного решения можно увидеть на графике для h=1, представленном на рисунке 3.5.

Рисунок 3.3 Графики точного и приближенного решений для обоих

методов(Rk2, Rk4) как функций независимой переменной t при значении

шага интегрирования h=0,00001

Рисунок 3.4 Графики точного и приближенного решений для обоих

методов(Rk2, Rk4) как функций независимой переменной t при значении

шага интегрирования h=0,08

Рисунок 3.5 Графики точного и приближенного решений для обоих

методов(Rk2, Rk4) как функций независимой переменной t при значении

шага интегрирования h=1

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

При численном интегрировании дифференциальных уравнений на каждом шаге возникает локальная ошибка, состоящая из ошибок вычислений и алгоритмических ошибок. Зависимость глобальной ошибки от локальной определяет устойчивость алгоритма. Если алгоритм неустойчив, то даже небольшие локальные ошибки приводят к быстрому росту глобальной ошибки. Полная ошибка интегрирования на шаге состоит из локальной ошибки на этом шаге и накопившейся к моменту t глобальной ошибки. Следовательно, с ростом t полная ошибка интегрирования также растет.

Зависимость полной ошибки от независимой переменной t для обоих методов представлена на рисунке 3.6. Соответствующие табличные данные представлены в приложении 3. Для исследования взяты значения шага 0,00001; 0,08 и 1.

Наименьшие ошибки были получены при h = 0,00001. При этом значении шага вклад как ошибок алгоритма, так и ошибок вычислений мал, что и дало высокую точность результата. При одном и том же значении t ошибки метода IV порядка меньше, что характеризует его как более точный. Полная ошибка с ростом t растет слабо, что говорит о хорошей устойчивости алгоритма.

Наибольшие ошибки получены при h = 1. Это связано с потерей алгоритмами устойчивости. Полные ошибки на каждом шаге быстро растут, что соответствует теории (в неустойчивом алгоритме даже небольшие локальные ошибки приводят к быстрому росту глобальной ошибки). При этом зависимость оценки ошибки метода четвертого порядка лежит ниже зависимости оценки ошибки метода четвертого порядка, что свидетельствует о лучшей устойчивости первого метода. Анализируя результаты экспериментов, можно заключить, что при увеличении t полная ошибка растет. Графики зависимостей ошибок от шага интегрирования приведены на рисунке 3.6.

Рисунок 3.6 Зависимость ошибки интегрирования как функции

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

шага интегрирования

  1. Сравнительный анализ эффективности методов Рунге-Кутты при различных требованиях к точности вычислений

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

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

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

Сравнивая графики для обоих методов, следует отметить, что метод Рунге-Кутты четвертого порядка дает большую точность вычислений, при меньших затратах машинного времени, поэтому он является более эффективным.

Рисунок 3.7 Анализ эффективности методов Рунге-Кутты


ЗАКЛЮЧЕНИЕ

В результате проделанной работы была разработана, введена и отлажена программа интегрирования дифференциальных уравнений методами Рунге-Кутты второго и четвертого порядков на языке Turbo Pascal 7.0. Были закреплены и углублены теоретические знания о свойствах методов Рунге-Кутты, а именно: устойчивости, локальной и полной ошибках алгоритма, ошибках вычислений. Мною были приобретены навыки составления и отладки подпрограмм интегрирования методами Рунге-Кутты и программ интегрирования систем дифференциальных уравнений с применением подпрограмм; проведены экспериментальные исследования на ЭВМ зависимости точности, эффективности и устойчивости алгоритмов интегрирования от шага интегрирования и порядка метода. Кроме того, были закреплены навыки работы в приложениях Excel и MathCad, с помощью которых осуществлялось графическое представление результатов экспериментов.

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

Проведя анализ полученных в результате экспериментов данных, подчеркнем следующее: вклад алгоритмических ошибок в полную ошибку возрастает с увеличением шага интегрирования, а ошибок вычислений – наоборот, уменьшается. Метод Рунге-Кутты четвертого порядка является более устойчивым, чем метод Рунге-Кутты второго порядка, так как алгоритм первого теряет устойчивость при большем значении шага. Проверка гипотезы Рунге дала положительные результаты, а именно, в определенном диапазоне изменения шага зависимость отношения величины полной ошибки к величине шага интегрирования в степени, равной порядку метода имеет вид прямой линии, параллельной оси h. Графическое представление решений уравнения при различных h позволило наглядно увидеть потерю устойчивости методов II и IV порядков при большом значении шага (h = 1). Отклонение решения по методу четвертого порядка оказалось меньше отклонения в методе второго порядка, что характеризует метод четвертого порядка как более точный и устойчивый. Анализируя зависимость ошибки как функции независимой переменной, можно заключить, что при увеличении t полная ошибка растет. Это является прямым следствием потери алгоритмом устойчивости. Сравнивая эффективность обоих методов, необходимо отметить, что метод Рунге-Кутты четвертого порядка дает большую точность вычислений при меньших затратах машинного времени.

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

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


СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

1. Дж.Форсайт, М. Малькольм, К. Моулер. Машинные методы математических вычислений .-М.:Мир, 1982.-238с.

  1. Мудров А.Е. Численные методы для ПЭВМ на языках Бейсик, Фортран и Паскаль.-Томск: МП

«РАСКО»,1991.-272с.: ил.

3. Маликов В. Т., Кветный Р. Н. Вычислительные методы и применение ЭВМ. – Киев, Выща школа, 1989. – 312с.

4. Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. Численные методы – М.:Наука, ГРФМЛ, 1987 – 600 с.

5. Схемы алгоритмов, программ, данных и систем. ГОСТ 19.701-90.


Приложение А

Схемы программных модулей

Procedure Right

-----------------

вычисление правой части диф. уравнения

Function Reshenie

------------------ вычисление точного решения дифференц.

уравнения

Procedure Output

-------------------- вывод на экран и в файл значений t, Reshenie,

x, Error2(Error4)


Procedure Rk2

---------------------- вычислен. значения вектора правой части f1

---------------------- цикл вычисление значений xr- вектора

значений аргументов правой части

уравнения системы при вычислении f1.

---------------------- вычислен. вектора значения правой части f2

цикл вычисления значений x - вектора

значений решений системы

----------------------

Procedure Rk4

вычисление значения вектора правой

---------------------- части f1

---------------------- цикл вычисление значений xr-вектора

значений аргументов правой части

уравнения системы при вычислении f1

---------------------- вычисление вектора значения правой

части уравнения f2

---------------------- цикл вычисление значений xr- вектора

значений аргументов правой части

уравнения системы при вычислении f2.

---------------------- вычисление значения правой части f3

---------------------- цикл вычисление значений xr-вектора

значений аргументов правой части

уравнения системы при вычислении f3.

---------------------- вычисление значения правой части f4

---------------------- цикл вычисление значений x-массива

значений решений системы


Главная программа

Ввод исходных значений: шага интегр.-h,

------------------------ левого и правого пределов интегр. –t0, tk,

шага вывода результатов – h_Print

Задание начальных значений: независ.

переменной t, векторов решений системы

-------------------- x1 и x2, ошибок интегриров. Error2 и

Error4, оценок ошибок V_Error2,V_Error4

и счетчика вывода результатов Count

-------------------- открытие файлов Result.dat, Result2.dat и

Result.dat

t = t0, t tf -------------------- цикл , где работают методы РК2 и РК4 и

вычисл. ошибки интегрирования

-------------------- выполнение одного шага интегрирования

метода Рунге-Кутты 2-го порядка

-------------------- выполнение одного шага интегрирования

метода Рунге-Кутты 2-го порядка

-------------------- вычисление ошибки интегрирования

метода Рунге-Кутты 2-го порядка

-------------------- вычисление ошибки интегрирования

метода Рунге-Кутты 4-го порядка

_

+

-------------------- вычисление оценки ошибки интегриров.

метода Рунге-Кутты 2-го порядка

_

+

------------------ вычисление оценки ошибки интегриров.

метода Рунге-Кутты 4-го порядка

_

------------------ проверка равенства счетчика шагу вывода

результатов

+

------------------ вывод результатов интегриров. на экран и

в файл Result2.dat

------------------- вывод результатов интегриров. на экран и

в файл Result4.dat

------------------ сброс счетчика вывода результатов

вычисление значения независимой

------------------ переменной в следующем узле

------------------ увеличение значения счетчика вывода рез.

tt+h ----------------- окончание цикла

------------------ вычисление коэффициентов Cal2, Cal4

-------------------- вывод в файл Result.dat

------------------ вывод пояснительных надписей в файл

Result2.dat

------------------ вывод пояснительных надписей в файл

Result4.dat

------------------ закрытие файлов Result.dat, Result4.dat и

Result4.dat

------------------- вывод оценок интегрирования на экран

Procedure OutputVspom

--- ----------------- вывод в файл вспомогательных надписей


Приложение Б

Текст программы

{ Решение д.у. методами Рунге-Кутты 2-ого и 4-ого порядка.}

Program RyngeKytt;

Uses Crt;

Type Vect_2=array[1..2] of real;

Var h,t,t0,tf :real;

Error2,V_Error2 :real;

Error4,V_Error4 :real;

Cal2,Cal4 :real;

h_Print,Count,N :integer;

i :byte;

x2,x4 :Vect_2;

f,p,s :text;

{ Глобальные переменные:

h - шаг интегрирования;

t - независимая переменная интегрирования;

t0- нижний предел интегрирования;

tf- верхний предел инт.;

N - количество полных шагов интегрирования;

x2,x4 - массивы решений системы;

Error2,Error4 - ошибки интегрирования;

V_Error2,V_Error4 - оценки ошибок интегрирования;

h_Print - шаг вывода результатов;

Count - счетчик вывода результатов;

f,p,s- файловые переменные }

{---------- Процедура вычисления правой части.------------------- }

Procedure Right( t:real; var x,f:Vect_2 );

begin

f[1]:=x[2];

f[2]:=(2+4*t*x[2]-6*x[1])/sqr(t);

end;

{-------------------- Функция вычисления точного решения.--------- }

Function Reshenie( t:real):real;

begin

Reshenie:=0.1*t*t*t+sqr(t)+1/3;

end;

{-- Выполнение одного шага интегрирования системы обыкновенных

дифференциальных уравнений методом Рунге-Кутты 2-ого порядка --}

Procedure Rk2( var t:real; h:real; n:integer;

var x:Vect_2 );

{ f1,f2 -массивы значений Fi правой части

уравнения системы для i=1,2 ;

xr-массив значений векторных аргументов

правой части уравнения системы при

вычислении Fi,i=1,2. }

var xr,f1,f2 :Vect_2;

h2 :real; { Коэффициент Рунге-Кутты }

begin

h2:=0.5*h;

{ Первый этап }

Right(t,x,f1);

for i:=1 to n do xr[i]:=x[i]+h*f1[i];

{ Второй этап }

Right(t+h,xr,f2);

for i:=1 to n do

x[i]:=x[i]+h2*(f1[i]+f2[i])

end;

{-- Выполнение одного шага интегрирования системы обыкновенных

дифференциальных уравнений методом Рунге-Кутты 4-ого порядка--}

Procedure Rk4( var t:real; h:real; n:integer;

var x:Vect_2 );

{ f1,f2,f3,f4 -массивы значений Fi правой части

уравнения системы для i=1,2,3,4 ;

xr-массив значений векторных аргументов

правой части уравнения системы при

вычислении Fi,i=1,2,3,4. }

var xr,f1,f2,f3,f4 :Vect_2;

h2,h6 :real;{ Коэффициенты Рунге-Кутты }

begin

h2:=0.5*h;

h6:=0.1666666666*h;

{ Первый этап }

Right(t,x,f1);

for i:=1 to n do xr[i]:=x[i]+h2*f1[i];

{ Второй этап }

Right(t+h2,xr,f2);

for i:=1 to n do xr[i]:=x[i]+h2*f2[i];

{ Третий этап }

Right(t+h2,xr,f3);

for i:=1 to n do xr[i]:=x[i]+h*f3[i];

{ Четвертый этап }

Right(t+h,xr,f4);

for i:=1 to n do

x[i]:=x[i]+h6*(f1[i]+2*(f2[i]+f3[i])+f4[i])

end;

{----------------- Процедура вывода результатов.-------------------- }

Procedure Output(var k: text;var Error :real;var x: Vect_2);

begin

writeln(t:3:2,' ',Reshenie(t),' ',x[1],' ',Error);

writeln(k,t:3:2,' ',Reshenie(t),' ',x[1],' ',Error);

end;

{-----------------Вспомогательная процедура для вывода результатов.-------------------- }

Procedure OutputVspom(var k: text;var V_Error :real);

begin

Write(k,'Метод ');

Write(k,'t',' Точное решение ');

Write(k,' Приближенное решение ');

Writeln(k,' Ошибки интегрир.');

writeln(k);

Writeln(k,'Оценка ошибки интегрирования ',V_Error);

end;

{--------------------- Главная программа.--------------------------- }

Begin

ClrScr;GotoXY(20,1);

Writeln('Введите исходные данные:');

Write ('Шаг интегрирования h=');Readln(h);

Write ('Левый предел интегрирования t0=');Readln(t0);

Write ('Правый предел интегрирования tf=');Readln(tf);

N:=round((tf-t0)/h);

Writeln('Получено ',N,' полных шагов интегрирования');

Write ('Введите шаг вывода результатов h_Print=');Readln(h_Print);

Write ('Ввод исходных данных завершен.');Readkey;

t:=t0;

x2[1]:=43/30; x2[2]:=2.3;

x4[1]:=43/30; x4[2]:=2.3;

Error2:=0;Error4:=0;

V_Error2:=0; V_Error4:=0;

Count:=0;

begin

ClrScr;

Assign(f,'Result2.dat');

Rewrite(f);

Assign(p,'Result4.dat');

Rewrite(p);

Assign(s,'Result.dat');

Append(s);

Writeln(f,' Метод Рунге-Кутты 2-го порядка');

Writeln(f,' h=',h:7:5,' ','t0=',t0:5:3,' ','tf=',tf:5:3);

Writeln(p,' Метод Рунге-Кутты 4-го порядка');

Writeln(p,' h=',h:7:5,' ','t0=',t0:5:3,' ','tf=',tf:5:3);

while t<=tf+0.001 do

begin

{ Выполнение одногo шага инт. метода Рунге-Кутты 2-го порядка}

Rk2(t,h,2,x2);

{ Выполнение одногo шага инт. метода Рунге-Кутты 4-го порядка}

Rk4(t,h,2,x4);

{ Вычисление ошибки интегрирования метода Рунге-Кутты 2-го порядка }

Error2:=abs(Reshenie(t)-x2[1]);

{ Вычисление ошибки интегрирования метода Рунге-Кутты 4-го порядка }

Error4:=abs(Reshenie(t)-x4[1]);

{ Вычисление оценки ошибки интегрирования метода Рунге-Кутты 2-го порядка}

if abs(Error2)>V_Error2 then V_Error2:=abs(Error2);

{ Вычисление оценки ошибки интегрирования метода Рунге-Кутты 4-го порядка}

if abs(Error4)>V_Error4 then V_Error4:=abs(Error4);

if Count=h_Print then

begin

Write('Rk2 '); Output(f,Error2,x2); { Вывод результатов Rk2}

Write('Rk4 '); Output(p,Error4,x4); { Вывод результатов Rk4}

Count:=0{сброс счетчика}

end;

t:=t+h;{Вычисление значения независимой переменной в след.узле}

Count:=Count+1;{увеличение значения счетчика}

end;

Cal2:=V_Error2/sqr(h); Cal4:=V_Error4/sqr(sqr(h));

Writeln(s,h,' ',Cal2,' ',Cal4);

OutputVspom(f,V_Error2);

OutputVspom(p,V_Error4);

Close(f);

Close(p);

Close(s);

{ Close(d);}

Write('Метод ');

Write('t',' Точное решение ');

Write(' Приближенное решение ');

Writeln(' Ошибки интегрир.');

writeln;

Writeln('Оценка ошибки интегрирования Rk2 ',V_Error2);

Writeln('Оценка ошибки интегрирования Rk4 ',V_Error4);

Writeln('Интегрирование окончено ');Readkey

end

End.

Приложение В

Результаты вычислений ЭВМ

В.1 Зависимость оценки ошибки интегрирования от величины шага

Таблица1

h V_Error2 V_Error4

0,000001

1,7440998554e-01

1,7376133800e-01

0,000005

3,5576492548e-02

3,2397955656e-02

0,00001

5,9983849525е-02

6,6319694445е-02

0,00005

1,3274517655е-01

1,6429975629е-01

0,0001

2,6806935668е-01

3,3113998175е-01

0,0005

1,3515779376е+00

1,666840511е+00

0,0008

2,1614482403е+00

2,6658954620е+00

0,001

2,7025787830е+00

3,3331351057е+00

0,003

8,1073768139е+00

9,9988627136е+00

0,005

1,3512183100е+01

1,6664193034е+01

0,008

2,1621720999е+01

2,6664360553е+01

0,01

2,7028943628е+01

3,3331769049е+01

0,03

8,1032957375е+01

9,9901478738е+01

0,05

1,3532505623е+02

1,6679361737е+01

0,08

2,1616002548е+02

2,6631904590е+02

0,1

2,7110087097е+02

3,3393145704е+02

0,3

8,0790937343е+02

9,9274383301е+02

0,5

1,3736300235е+03

1,6846146352е+03

0,8

2,1906456321е+03

2,6789192505е+03

1

2,7930278632е+03

3,41031652275е+03

2

5,4051956878е+03

6,5461074605е+03

3

7,8395734702е+03

9,4194312544е+03

5

1,2188940026е+04

1,4380006067е+04

8

2,0160831642е+04

2,3042815864е+04

10

2,0260931140е+04

2,2036623343е+04

15

2,4764317396е+04

2,2950261841е+04

20

5,7154760525е+04

5,2797935428е+04

21

6,5906110248е+04

6,0855164738е+04

22

7,5509254600е+04

9,9695241730е+04

23

8,6000136336е+04

7,9346122503е+04

24

9,7419368772е+04

8,9852100037е+04

25

1,0980625551е+05

1,0124551200е+05


В.2 Проверка гипотезы Рунге

Файл Result.dat

Шаг V_Error2/h2 V_Error4/h4

1.0000000000E-06 1.7376133800E+11 1.7440998554E+23

5.0000000000E-06 1.2959182262E+09 5.6922388077E+19

1.0000000000E-05 6.6319644451E+08 5.9983849526E+18

5.0000000000E-05 6.5719902515E+07 2.1239228249E+16

1.0000000000E-04 3.3113998175E+07 2.6806935668E+15

5.0000000000E-04 6.6674962044E+06 2.1625247002E+13

8.0000000000E-04 4.1654616594E+06 5.2769732429E+12

1.0000000000E-04 3.3113998175E+07 2.6806935668E+15

1.0000000000E-03 3.3331351578E+06 2.7025787830E+12

3.0000000000E-03 1.1109847460E+06 1.0009107178E+11

5.0000000000E-03 6.6656772137E+05 2.1619492960E+10

8.0000000000E-03 4.1663063364E+05 5.2787404784E+09

1.0000000000E-02 3.3331769049E+05 2.7028943628E+09

3.0000000000E-02 1.1100164304E+05 1.0004068812E+08

5.0000000000E-02 6.6717446947E+04 2.1652009029E+07

8.0000000000E-02 4.1612350922E+04 5.2773443720E+06

1.0000000000E-01 3.3393145704E+04 2.7110087097E+06

3.0000000000E-01 1.1030487033E+04 9.9741897954E+04

5.0000000000E-01 6.7384585409E+03 2.1978080376E+04

8.0000000000E-01 4.1858113290E+03 5.3482559377E+03

1.0000000000E+00 3.4103165275E+03 2.7930278632E+03

2.0000000000E+00 1.6365268651E+03 3.3782473050E+02

3.0000000000E+00 1.0466034727E+03 9.6784857656E+01

5.0000000000E+00 5.7520024267E+02 1.9502304041E+01

8.0000000000E+00 3.6004399787E+02 4.9220780376E+00

1.0000000000E+01 2.2036623343E+02 2.0246093114E+00

1.5000000000E+01 1.0200116374E+02 4.8917170165E-01

2.0000000000E+01 1.3199483857E+02 3.5721725328E-01

2.5000000000E+01 1.6199286868E+02 2.8110544448E-01


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

Файл Result2.dat с результатами при шаге h=0.00001

Метод Рунге-Кутты 2-го порядка

h=0.00001 t0=1.000 tf=30.000

1.40 6.2582856398E+00 6.2583604069E+00 7.4767056503E-05

2.20 1.5502544960E+01 1.5502718599E+01 1.7363876395E-04

3.00 3.3333331874E+01 3.3333650890E+01 3.1901668990E-04

3.80 6.2735154694E+01 6.2735667221E+01 5.1252730191E-04

4.60 1.0675339964E+02 1.0675414008E+02 7.4043893255E-04

5.40 1.6844922080E+02 1.6845022210E+02 1.0013021529E-03

6.20 2.5088936879E+02 2.5089066548E+02 1.2966899667E-03

7.00 3.5714299716E+02 3.5714462188E+02 1.6247234307E-03

7.80 4.9028042850E+02 4.9028241203E+02 1.9835284911E-03

8.60 6.5337261072E+02 6.5337498191E+02 2.3711845279E-03

9.40 8.4949085097E+02 8.4949363683E+02 2.7858596295E-03

10.20 1.0817066747E+03 1.0817099002E+03 3.2255444676E-03

11.00 1.3530917464E+03 1.3530954350E+03 3.6886185408E-03

11.80 1.6667178222E+03 1.6667219948E+03 4.1725374758E-03

12.60 2.0256567213E+03 2.0256613966E+03 4.6753380448E-03

13.40 2.4329803064E+03 2.4329855021E+03 5.1956288517E-03

14.20 2.8917604723E+03 2.8917662035E+03 5.7312436402E-03

15.00 3.4050691364E+03 3.4050754166E+03 6.2801390886E-03

15.80 3.9759782339E+03 3.9759850745E+03 6.8406052887E-03

16.60 4.6075589894E+03 4.6075671227E+03 8.1332698464E-03

17.40 5.3028836772E+03 5.3028935132E+03 9.8360255361E-03

18.20 6.0650244685E+03 6.0650362042E+03 1.1735692620E-02

19.00 6.8970533224E+03 6.8970671612E+03 1.3838790357E-02

19.80 7.8020422027E+03 7.8020583503E+03 1.6147628427E-02

20.60 8.7830630774E+03 8.7830817469E+03 1.8669545650E-02

21.40 9.8431879176E+03 9.8432093276E+03 2.1409913898E-02

22.20 1.0985488697E+04 1.0985513074E+04 2.4376347661E-02

23.00 1.2213037392E+04 1.2213064966E+04 2.7573034167E-02

23.80 1.3528905981E+04 1.3528936988E+04 3.1006649137E-02

24.60 1.4936166442E+04 1.4936201124E+04 3.4682080150E-02

25.40 1.6437890757E+04 1.6437929364E+04 3.8606554270E-02

26.20 1.8037150908E+04 1.8037193695E+04 4.2787134647E-02

27.00 1.9737018876E+04 1.9737066104E+04 4.7227859497E-02

27.80 2.1540566646E+04 2.1540618582E+04 5.1935791969E-02

28.60 2.3450866202E+04 2.3450923119E+04 5.6917011738E-02

29.40 2.5470989529E+04 2.5471051707E+04 6.2178581953E-02

t Точное решение Приближенное решение Ошибки интегрир.

Оценка ошибки интегрирования 6.6319644451E-02

Файл Result4.dat с результатами при шаге h=0.00001

Метод Рунге-Кутты 4-го порядка

h=0.00001 t0=1.000 tf=30.000

1.40 6.2582856398E+00 6.2583594101E+00 7.3770330346E-05

2.20 1.5502544960E+01 1.5502708535E+01 1.6357484856E-04

3.00 3.3333331874E+01 3.3333621977E+01 2.9010319849E-04

3.80 6.2735154694E+01 6.2735609737E+01 4.5504292939E-04

4.60 1.0675339964E+02 1.0675404434E+02 6.4470153302E-04

5.40 1.6844922080E+02 1.6845007847E+02 8.5767079145E-04

6.20 2.5088936879E+02 2.5089046427E+02 1.0954758618E-03

7.00 3.5714299716E+02 3.5714435350E+02 1.3563390821E-03

7.80 4.9028042850E+02 4.9028206690E+02 1.6384045593E-03

8.60 6.5337261072E+02 6.5337455041E+02 1.9396878779E-03

9.40 8.4949085097E+02 8.4949310933E+02 2.2583622485E-03

10.20 1.0817066747E+03 1.0817092670E+03 2.5923252106E-03

11.00 1.3530917464E+03 1.3530946859E+03 2.9395800084E-03

11.80 1.6667178222E+03 1.6667211207E+03 3.2984670252E-03

12.60 2.0256567213E+03 2.0256603880E+03 3.6666747183E-03

13.40 2.4329803064E+03 2.4329843491E+03 4.0426775813E-03

14.20 2.8917604723E+03 2.8917648967E+03 4.4244676828E-03

15.00 3.4050691364E+03 3.4050739461E+03 4.8096776009E-03

15.80 3.9759782339E+03 3.9759834305E+03 5.1966123283E-03

16.60 4.6075589894E+03 4.6075652957E+03 6.3063055277E-03

17.40 5.3028836772E+03 5.3028914938E+03 7.8166872263E-03

18.20 6.0650244685E+03 6.0650339827E+03 9.5142200589E-03

19.00 6.8970533224E+03 6.8970647265E+03 1.1404074728E-02

19.80 7.8020422027E+03 7.8020556939E+03 1.3491190970E-02

20.60 8.7830630774E+03 8.7830788591E+03 1.5781700611E-02

21.40 9.8431879176E+03 9.8432061991E+03 1.8281459808E-02

22.20 1.0985488697E+04 1.0985509694E+04 2.0996779203E-02

23.00 1.2213037392E+04 1.2213061326E+04 2.3933336139E-02

23.80 1.3528905981E+04 1.3528933077E+04 2.7096465230E-02

24.60 1.4936166442E+04 1.4936196935E+04 3.0492812395E-02

25.40 1.6437890757E+04 1.6437924879E+04 3.4121751785E-02

26.20 1.8037150908E+04 1.8037188910E+04 3.8002490997E-02

27.00 1.9737018876E+04 1.9737061011E+04 4.2135298252E-02

27.80 2.1540566646E+04 2.1540613172E+04 4.6526134014E-02

28.60 2.3450866202E+04 2.3450917383E+04 5.1180690527E-02

29.40 2.5470989529E+04 2.5471045633E+04 5.6104749441E-02

t Точное решение Приближенное решение Ошибки интегрир.

Оценка ошибки интегрирования 5.9983849525E-02

Файл Result2.dat с результатами при шаге h=0.08

Метод Рунге-Кутты 2-го порядка

h=0.08000 t0=1.000 tf=30.000

1.24 5.1930756129E+00 5.7004805138E+00 5.0740490088E-01

1.96 1.1959740082E+01 1.3110456296E+01 1.1507162139E+00

2.68 2.4981966329E+01 2.7067908315E+01 2.0859419861E+00

3.40 4.6398117648E+01 4.9725840719E+01 3.3277230708E+00

4.12 7.8417246449E+01 8.3296186404E+01 4.8789399549E+00

4.84 1.2326651557E+02 1.3000694649E+02 6.7404309172E+00

5.56 1.8317947212E+02 1.9209197779E+02 8.9125056725E+00

6.28 2.6039238768E+02 2.7178768810E+02 1.1395300424E+01

7.00 3.5714285716E+02 3.7133174142E+02 1.4188884259E+01

7.72 4.7566918170E+02 4.9296247855E+02 1.7293296847E+01

8.44 6.1821006744E+02 6.3891863101E+02 2.0708563574E+01

9.16 7.8700446634E+02 8.1143916856E+02 2.4434702216E+01

9.88 9.8429148662E+02 1.0127632128E+03 2.8471726176E+01

10.60 1.2123103397E+03 1.2451299858E+03 3.2819646133E+01

11.32 1.4733003073E+03 1.5107787782E+03 3.7478470949E+01

12.04 1.7695007206E+03 1.8119489288E+03 4.2448208209E+01

12.76 2.1031509460E+03 2.1508798105E+03 4.7728864536E+01

13.48 2.4764903761E+03 2.5298108219E+03 5.3320445810E+01

14.20 2.8917584227E+03 2.9509813800E+03 5.9222957328E+01

14.92 3.3511945123E+03 3.4166309162E+03 6.5436403878E+01

15.64 3.8570380828E+03 3.9289988727E+03 7.1960789852E+01

16.36 4.4115285809E+03 4.4903247002E+03 7.8796119295E+01

17.08 5.0169054601E+03 5.1028478561E+03 8.5942395963E+01

17.80 5.6754081798E+03 5.7688078030E+03 9.3399623245E+01

18.52 6.3892762036E+03 6.4904440079E+03 1.0116780432E+02

19.24 7.1607489988E+03 7.2699959410E+03 1.0924694217E+02

19.96 7.9920660358E+03 8.1097030754E+03 1.1763703955E+02

20.68 8.8854667873E+03 9.0118048864E+03 1.2633809911E+02

21.40 9.8431907282E+03 9.9785408514E+03 1.3535012324E+02

22.12 1.0867477335E+04 1.1012150449E+04 1.4467311427E+02

22.84 1.1960566086E+04 1.2114873160E+04 1.5430707440E+02

23.56 1.3124696459E+04 1.3288948465E+04 1.6425200562E+02

24.28 1.4362107936E+04 1.4536615846E+04 1.7450790988E+02

25.00 1.5675039998E+04 1.5860114787E+04 1.8507478902E+02

25.72 1.7065732126E+04 1.7261684771E+04 1.9595264477E+02

26.44 1.8536423803E+04 1.8743565281E+04 2.0714147884E+02

27.16 2.0089354512E+04 2.0307995804E+04 2.1864129272E+02

27.88 2.1726763736E+04 2.1957215824E+04 2.3045208788E+02

28.60 2.3450890961E+04 2.3693464827E+04 2.4257386574E+02

29.32 2.5263975670E+04 2.5518982297E+04 2.5500662780E+02

t Точное решение Приближенное решение Ошибки интегрир.

Оценка ошибки интегрирования 2.6631904590E+02

Файл Result4.dat с результатами при шаге h=0.08

Метод Рунге-Кутты 4-го порядка

h=0.08000 t0=1.000 tf=30.000

1.24 5.1930756129E+00 5.6975446921E+00 5.0446907920E-01

1.96 1.1959740082E+01 1.3059860968E+01 1.1001208859E+00

2.68 2.4981966329E+01 2.6906895574E+01 1.9249292452E+00

3.40 4.6398117648E+01 4.9391548955E+01 2.9934313065E+00

4.12 7.8417246449E+01 8.2726095802E+01 4.3088493526E+00

4.84 1.2326651557E+02 1.2913874054E+02 5.8722249662E+00

5.56 1.8317947212E+02 1.9086344942E+02 7.6839772994E+00

6.28 2.6039238768E+02 2.7013668911E+02 9.7443014276E+00

7.00 3.5714285716E+02 3.6919615528E+02 1.2053298119E+01

7.72 4.7566918170E+02 4.9028020539E+02 1.4611023693E+01

8.44 6.1821006744E+02 6.3562757907E+02 1.7417511632E+01

9.16 7.8700446634E+02 8.0747724918E+02 2.0472782841E+01

9.88 9.8429148662E+02 1.0080683376E+03 2.3776850936E+01

10.60 1.2123103397E+03 1.2396400648E+03 2.7329725087E+01

11.32 1.4733003073E+03 1.5044317189E+03 3.1131411647E+01

12.04 1.7695007206E+03 1.8046826357E+03 3.5181915136E+01

12.76 2.1031509460E+03 2.1426321849E+03 3.9481238842E+01

13.48 2.4764903761E+03 2.5205197613E+03 4.4029385198E+01

14.20 2.8917584227E+03 2.9405847787E+03 4.8826356038E+01

14.92 3.3511945123E+03 3.4050666651E+03 5.3872152764E+01

15.64 3.8570380828E+03 3.9162048593E+03 5.9166776467E+01

16.36 4.4115285809E+03 4.4762388090E+03 6.4710228056E+01

17.08 5.0169054601E+03 5.0874079683E+03 7.0502508208E+01

17.80 5.6754081798E+03 5.7519517972E+03 7.6543617450E+01

18.52 6.3892762036E+03 6.4721097598E+03 8.2833556205E+01

19.24 7.1607489988E+03 7.2501213236E+03 8.9372324839E+01

19.96 7.9920660358E+03 8.0882259594E+03 9.6159923621E+01

20.68 8.8854667873E+03 8.9886631401E+03 1.0319635282E+02

21.40 9.8431907282E+03 9.9536723408E+03 1.1048161262E+02

22.12 1.0867477335E+04 1.0985493038E+04 1.1801570323E+02

22.84 1.1960566086E+04 1.2086364710E+04 1.2579862480E+02

23.56 1.3124696459E+04 1.3258526837E+04 1.3383037740E+02

24.28 1.4362107936E+04 1.4504218898E+04 1.4211096117E+02

25.00 1.5675039998E+04 1.5825680374E+04 1.5064037620E+02

25.72 1.7065732126E+04 1.7225150748E+04 1.5941862255E+02

26.44 1.8536423803E+04 1.8704869503E+04 1.6844570035E+02

27.16 2.0089354512E+04 2.0267076121E+04 1.7772160953E+02

27.88 2.1726763736E+04 2.1914010087E+04 1.8724635023E+02

28.60 2.3450890961E+04 2.3647910883E+04 1.9701992249E+02

29.32 2.5263975670E+04 2.5471017996E+04 2.0704232636E+02

t Точное решение Приближенное решение Ошибки интегрир.

Оценка ошибки интегрирования 2.1616002548E+02

Файл Result2.dat с результатами при шаге h=1.00

Метод Рунге-Кутты 2-го порядка