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

Сравнительный анализ методов интегрирования обыкновенных дифференциальных уравнений Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
231
40
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
НЕПРЕРЫВНОЕ МОДЕЛИРОВАНИЕ / МЕТОДЫ ТРАНСЛЯЦИИ / ПРОБЛЕМНО-ОРИЕНТИРОВАННЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Корягин С. В., Егорушкин И. С.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Comparative analysis of integration methods

This article discusses the options for implementing problem-oriented broadcasting media in the framework of the continuous simulation. Building transition process follow according formal description of the object, which is a set of ordinary differential and algebraic equations. Provide for possibility to change the integration methods and conditions for integration.

Текст научной работы на тему «Сравнительный анализ методов интегрирования обыкновенных дифференциальных уравнений»

Cloud of Science. 2017. T. 4. № 1 http:/ / cloudofscience.ru

Сравнительный анализ методов интегрирования обыкновенных дифференциальных уравнений

С. В. Корягин, И. С. Егорушкин

Московский технологический университет (МИРЭА) 119571, Москва, Вернадского пр-т, 78

e-mail: dongenealog2003@mail. ru

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

Ключевые слова: непрерывное моделирование, методы трансляции, проблемно-ориентированные языки программирования.

1. Введение

При изучении сложных объектов и систем иногда невозможно провести эксперимент в лабораторных или натуральных условиях. С целью изучения таких объектов и систем возникло понятие имитационного моделирования [1].

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

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

В данной статье представлено два варианта формального описания исследуемых объектов в виде наборов дифференциальных и алгебраических уравнений. При помощи разработанного транслирующего средства осуществляется получение переходных процессов с возможностью варьирования методов и условий интегрирования [2-5, 10].

2. Метод Эйлера

Метод является самым простым и популярным методом интегрирования, но не самым точным [11]. Согласно методу Эйлера, какждый следующий элемент вычисляется по формуле

У+1 = У + ¥ (X; Уi )• Более точное значение можно найти, разложив ряд Тейлора:

^ кк (к) , ' к2 . У,+1 = ^Т7У() = У, + кУг +V У" + ••• к =0 к ! 2

Графическое представление метода Эйлера представлено на рис 1. С целью увеличения точности вычисления необходимо уменьшить значение шага к.

птближенное .з начелие\

} /

4— юсгг ь

\

>ефу т реальное значег, иеу

»'Л VI

1

XI X 2 9

Рисунок 1. Метод Эйлера

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

Метод точнее, чем метод Эйлера, но вычисляется дольше из-за необходимости подсчета функции дважды [11]. Точность обеспечивается тем, что при вычислении следующего значения функции берется половина шага к/2 :

к1 = к х / ( х,; у, ); У+1 = У, + кх/{хг + к/2; уг + к/2 ). (3)

Графическое представление метода выглядит следующим образом (рис. 2).

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

С целью увеличения точности вычисления необходимо каждый раз уменьшать размер шага, разбивая его на более мелкие части [6]. Но с увеличением точности уве-

личивается и количество вычислений. Метод Рунге-Кутта 4-го порядка заключается в разбиении шага на 4 части:

к1 = к х / ( х^; у); к2 = к х / (хг + к/2; У + ^/2 ); кз= к х / (хг + к/2; yi + к^2 ); к4 = к х / (хг + к; у + к3);

кл кл кл к

Уг+1 = Уг + + + + • '+1 г 6 3 3 6

На графике приближение выглядит следующим образом (рис. 3).

гзр иб/1 'жен ное !нач ?ние V

/ 1 по Эйяе РУ

/ У пог оешъ ост

/1 )йле ? а

шчу

■ч

ре альъ оез юче шеу

нач ние фуш ции

(л)-

к

л Г1 £ X 2 Г

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

Рисунок 3. Метод Рунге-Кутта 4-го порядка

5. Метод Рунге-Кутта-Фельберга 4-5 порядка

При вычислении переходных процессов, важен момент перехода системы из 1 состояния в другое. Т. к. он может быть непредсказуем, то существуют методы интегрирования с динамическим шагом. Изначально шаг интегрирования мал для увеличения точности, а впоследствии увеличивается [7]. Нахождение следующего значения функции происходит следующим образом:

к/ = к х / (х; у);

к2 = к х / ^ х+к; Уi+к/ ^;

. . / 3к 3к/ 9к2 ]

к3 = кх/I х1 +—;у1 + + —^ ; 3 Ч 8 32 32 /

, У 12к 1932к 7200к 7296к ^

к4 = кх/I х,. +-;у1 +-1--2 +-3

4 ^ ' 13 2197 2197 2197

439к „, 3680к3 845к4

к = к х /1 х + к; у +-1 - 8к +

1 ' 216 513 4104

, , / к 8к 3544к 1859к, 11к

к = к х /I х +—;у.--- + 2к--3 +-4--5

^ ' 2 27 2565 4104 40

16к 6656к 28561к 9к 2к

У,-+1 = У, + 7ТТ + ■

135 12825 56430 50 55 6. Проблемно-ориентированный язык

Формальное описание проблемно-ориентированного языка имеет вид [8, 10]: Программа <имя программы>; Задано

<имя /-го дифференциального уравнения>=<дифференциальное уравнение>; Коэффициенты

<имя коэффициента>=<коэффициент>; Начальные данные

Range=[<начало интегрирования>, <конец интегрирования>]; й=<шаг интегрирования^ х=[(<начальные условия>)]; Метод

<метод интегрирования^ Конец

Структура, описанная выше, имеет следующие ключевые слова:

Программа — начало программы, где описывается имя программы;

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

Коэффициенты — блок, где описываются коэффициенты;

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

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

Конец — конец программы.

Внутри блоков каждая строка отделяется символом «;». Левая и правая части отделяются знаком «=». Для символов используется латинский алфавит. Для чисел используются как целые, так и вещественные числа с разделителем в виде точки «.».

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

Уравнение Колмогорова, описывающее вероятность состояния системы для марковского процесса через промежуток времени используем в качестве эксперимента. Рассмотрим систему с 2 уязвимостями и 4 состояниями: Ц — начальное состояние системы; — выявлена первая уязвимость, но не устранена; Б3 — выявлена, но не устранена вторая уязвимость; — обе уязвимости выявлены, но не устранены. Коэффициенты I и 12 отображают вероятность нахождения 1-й и 2-й уязвимости соответственно. т1 и т2 показывают вероятность устранения уязвимости.

Система уравнения имеет следующий вид:

&Р(Ц)

щР ( ^2 )+ Щ2 Р ( )-(1 + 12 ) Р ( Р1 ) = 1Р ( Ц) + т2 Р ( Б4 )-(/2 + щ) Р ( ?2 ) = 12Р ( Ц ) + т,Р ( Б4 )-(/1 + т2) Р ( Б3 ) = 12Р ( ?2) + 1Р ( Б3)-( т1 + т2) Р ( Б4 ) =

&

&Р (Ц?)

& '

ЖР (¥3)

ж '

&Р(?А)

& '

Пример 1.

Для решения имеем следующие данные:

Ц = 1;

F2 = 0.3; F3 = 0.4; F4 = 0.2; ^ = 0.07; /2 = 0.09; m = 0.1;

m = 0.2.

Шаг интегрирования = 0.1, интервал интегрирования: от 0 до 30. Решим задачу методом Эйлера. программа Вероятность_Состояний; задано

dxdt (1) = m1 x x(2) + m2 x x(3) - (/1 + / 2) x x(1); dxdt (2) = /1 x x(1) + m2 x x(4) - (/ 2 + m1) x x(2); dxdt (3) = / 2 x x(1) + m1 x x(4) - (/1 + m2) x x(3); dxdt (4) = / 2 x x(2) + /1 x x(3) - (m1 + m2) x x(4);

коэффициенты /1 = 0.07; / 2 = 0.09; m1 = 0.1; m2 = 0.2;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

начальные данные range = [0,30]; h = 0.1;

x = [1,0.3,0.4,0.2];

метод

euler;

конец

В результате отработки транслирующего средства получаем следующие графики, представленные на рис. 4. Из графика видно, что при низких значениях интенсивности обнаружения уязвимостей и при высокой интенсивности их обнаружения, вероятность, что система не изменит своего изначального состояния, 78%. При этом шанс обнаружения хотя бы одной уязвимости 54%, а второй или обеих — менее 50%.

Рисунок 4. Решение задачи определения состояний системы методом Эйлера (пример 1)

Пример 2.

Внесем изменения:

Б2= 0.5;

Бз= 0.2;

Р4= 0.3; 1 = 0.17; /2 = 0.39; т = 0.4; т2 = 0.5.

Шаг интегрирования = 0.2, интервал интегрирования: от 0 до 10. Используем метод Рунге-Кутта 4-го порядка.

В результате отработки транслирующего средства получаем следующие графики, представленные на рис. 5.

При увеличении интенсивности обнаружения почти в 3 раза шанс системы остаться неизменной составляет 68%, что всего лишь на 10% меньше, чем в предыдущем примере. Но вероятность обнаружения уязвимостей теперь не менее 35%.

0.6

I

0,5

0,4

0.3

1,5 3

7,5

Рисунок 5. Решение задачи определения состояний системы методом Рунге-Кутта 4-го порядка (пример 2)

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

Пример 3.

Для решения имеем следующие данные: N(0) = 10;

М(0) = 50; а = 0.003; Ь = 0.004; п = 0.5; т = 0.3; пх = 0.07; тх = 0.05.

Шаг интегрирования = 0.05, интервал интегрирования: от 0 до 10. Используем метод Рунге-Кутта-Фельберга.

программа Конкуренция_популяций;

задано

dxdt(l) = x(l) + a x x(l) x(l - x(l)/nz - m x (x(2)/mz)); dxdt(2) = x(2) + b x x(2) x (l - x(2)/mz - n x (x(l)/nz)).

коэффициенты a = 0.003; b = 0.004; n = 0.5; m = 0.3; nz = 0.07; mz = 0.05; начальные данные range = [0,10];

h = 0.05; x = [10,50]; метод rkf4; конец

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

Рисунок 6. Решение системы дифференциальных уравнений конкуренции популяций методом Рунге-Кутта-Фельберга (пример 3)

Пример 4.

N(0) = 100; М(0) = 70; а = 0.006; Ь = 0.005; п = 0.7; т = 0.2; пх = 0.03; тх = 0.06;

Шаг интегрирования равен 0.01, интервал интегрирования: от 0 до 5. Используем метод Рунге-Кутта 2-го порядка.

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

Рисунок 7. Решение системы дифференциальных уравнений конкуренции популяций методом Рунге-Кутта 2-го порядка (пример 4)

7. Заключение

При увеличении точности метода интегрирования увеличивается и скорость выполнения алгоритма [9]. Поэтому при моделировании процесса необходимо выбирать что важнее: точность или время. Метод Рунге-Кутта 4-го порядка позволяет найти компромисс, т. к. он не занимает много времени как методы более высокого порядка и более точен, чем методы низкого порядка.

Литература

[1] Коробов П. Н. Математическое программирование и моделирование экономических процессов. — СПб. : Изд-во ДНК, 2006.

[2] Корягин С. В., Ильмухин С. В., Цыпленков С. В. Система непрерывного моделирования // ВестникМГУПИ. 2013. № 47. С. 66-77.

[3] Ахо А., Сети Р., Ульман Д. Компиляторы: принципы, технология и инструменты. М., 2011.

[4] Ахо А. В., Хопкрофт Дж. Э., Ульман Дж. Д. Структуры данных и алгоритмы. — М. : Издательский дом «Вильямс», 2008.

[5] Свердлов С. З. Языки программирования и методы трансляции. — СПб. : Питер, 2009.

[6] Harder D. W. 4th-order Runge Kutta and the Dormand-Prince Methods. — Ontario : M.Math. LEL Department of Electrical and Computer Engineering University of Waterloo, 2012.

[7] Балдин К. В., Башлыков В. Н., Рукосуев А. В. Основы теории вероятностей и математической статистики: учебник. — М. : Флинта: НОУ ВПО «МПСИ», 2010.

[8] Cellier F. E. Continuous System Simulation. — Springer, 2006.

[9] Birta Louis G., Gilbert A. Modelling and Simulation: Exploring Dynamic System Behaviour. — Ottawa : School of information technology and engineering, 2007.

[10] Корягин С. В., Яковлев А. А. Проблемно-ориентированный язык системы непрерывного моделирования // Вестник МГУПИ. 2014. № 6. С. 36-40.

[11] Корягин С. В., Яковлев А. А. Сравнительный анализ методов интегрирования с плавающим шагом // Cloud of Science. 2016. Т. 3. № 1. С. 95-105.

[12] Gunz M. Differential Equations and Numerical Approximation using C++, 2007.

Авторы:

Сергей Викторович Корягин — кандидат технических наук, доцент, доцент кафедры управления и моделирования систем, Московский технологический университет (МИРЭА)

Илья Сергеевич Егорушкин — студент 1-го курса магистратуры, Московский технологический университет (МИРЭА)

Comparative analysis of integration methods

S. V. Koriagin, I. S. Egorushkin

Moscow technological university MIREA 78, Prospect Vernadskogo, Moscow, Russia, 119571

e-mail: [email protected]

Abstract. This article discusses the options for implementing problem-oriented broadcasting media in the framework of the continuous simulation. Building transition process follow according formal description of the object, which is a set of ordinary differential and algebraic equations. Provide for possibility to change the integration methods and conditions for integration. Key words: Continuous simulation, translation methods, problem-oriented programming languages.

References

[1] Korobov P. N. (2006) Mathematical programming and simulation of economic processes. DNK [In Rus]

[2] Koriagin S. V., Il'mukhin S. V., Tsyplenkov S. V. (2013) VestnikMGUPI, 47: 66-77. [In Rus]

[3] Aho A., Sethi R., Ulman J. (2011) Compilyatory: principy, tekhnologiya i instrumenty. Williams [In Rus]

[4] Aho A., Hopcroft J., Ulman J. (2008) Struktury dannyh i algoritmy. Williams [In Rus]

[5] Sverdlov S. Z. (2009) Yazyki programmirovaniya i metody translyacii. Piter [In Rus]

[6] Harder D. W. (2012) 4th-order Runge Kutta and the Dormand-Prince Methods. University of Waterloo.

[7] Baldin K. V., Bashlykov V.N., Rukosuev A. V. (2010) Fundamentals of the theory of probability and mathematical statistics. Flinta [In Rus]

[8] Cellier F. E. (2006) Continuous system simulation. Springer.

[9] Birta Louis G., Gilbert A. (2007) Modelling and Simulation: Exploring Dynamic System Behaviour. School of information technology and engineering.

[10] Koriagin S. V., Yakovlev A. A. (2014) Vestnik MGUPI, 4:36-40. [In Rus]

[11] Koriagin S. V., Yakovlev A. A. (2016) Cloud of Science, 3(1):95-105. [In Rus]

[12] Gunz. M. (2007) Differential Equations and Numerical Approximation using C++.

i Надоели баннеры? Вы всегда можете отключить рекламу.