Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: XLIX Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 30 января 2017 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Галенин Д.В., Бобенко С.С. ЧИСЛЕННОЕ РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ В ПРОГРАММНОЙ СРЕДЕ MICROSOFT VISUAL STUDIO // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. XLIX междунар. студ. науч.-практ. конф. № 1(48). URL: https://sibac.info/archive/technic/1(48).pdf (дата обращения: 04.05.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 171 голос
Дипломы участников
Диплом лауреата
отправлен участнику

ЧИСЛЕННОЕ РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ В ПРОГРАММНОЙ СРЕДЕ MICROSOFT VISUAL STUDIO

Галенин Денис Владимирович

магистрант кафедры электроэнергетики и автоматики БГТУ им. В. Г. Шухова,

РФ, г. Белгород

Бобенко Сергей Сергеевич

магистрант кафедры электроэнергетики и автоматики БГТУ им. В. Г. Шухова,

РФ, г. Белгород

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

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

Целью написания данной работы является решение заданного дифференциального уравнения в программной среде Microsoft Visual Studio следующими методами:

  • метод Эйлера;
  • уточненный метод Эйлера;
  • метод прогноза и коррекции (Эйлера-Коши);
  • метод Рунге-Кутта 4-го порядка.

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

Таблица 1

Пример дифференциального уравнения

Дифференциальное уравнение

Начальное условие

Интервал интегрирования

Точное решение

 

 

Для наглядного представления поставленной задачи в таблице 2 произведено раскрытие заданного интервала интегрирования.

Таблица 2

Точки заданного интервала

0

0

1,1

0,1155

1,2

0,264

1,3

0,4485

1,4

0,672

1,5

0,9375

1,6

1,248

1,7

1,6065

1,8

2,016

1,9

2.4795

2

3

 

Для метода Эйлера значения функции в заданных точках определяются по формуле (1):

  (1)

где  – значение функции на начальном шаге;   – значение функции на последующем шаге;   - шаг функции;  – результат подстановки точек в искомое дифференциальное уравнение.

В уточненном методе Эйлера производная берется не в начале, как в предыдущем методе, а в центре частичного интервала [1]. Поэтому  значения функции для этого метода в заданных точках определяются по формуле (2):

(2)

Для метода прогноза и коррекции  значения функции в заданных точках определяется по формуле (3):

    (3)

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

  (4)

(5)

(6)

(7)

Затем значения функции в заданных точках  методом Рунге-Кутта 4-го порядка определяется по формуле (8):

    (8)

Алгоритм программы на языке C++, выполняющей решения заданного дифференциального уравнения при начальном условии и интервале интегрирования, выглядит следующим образом:

  1. Производится запись дифференциального уравнения в виде функции.
  2.  Пользователь разбивает интервал на участки, тем самым задавая требуемый шаг.
  3. Заводятся массивы на значения входных и выходных данных (X и Y).
  4.  Уточняются начальные условия и заданный интервал.
  5. Заводится цикл для решения дифференциального уравнения каждым методом.
  6. Заводится цикл для вывода полученных данных.
  7. Производится очистка памяти и удаление массивов после вывода полученных данных на экран.

Результат работы программы приведен на рисунке 1.

Рисунок 1. Результат работы программы без повышения точности

 

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

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

    (9)

где - значение ординаты при заданном шаге;  - значение ординаты при удвоенном шаге;  – порядок уравнения.

Результат работы программы при заданной погрешности   приведен на рисунке 2.

Рисунок 2. Результат работы программы  c заданной точностью

 

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

 

Список литературы:

  1. Численные методы и оптимизации: Учеб. пособие/В .Г. Рубанов, Д. В. Величко.- Белгород: Изд-во БГТУ им. В. Г. Шухова, 2004. – 161 с.
Проголосовать за статью
Конференция завершена
Эта статья набрала 171 голос
Дипломы участников
Диплом лауреата
отправлен участнику

Комментарии (3)

# Александр 04.02.2017 15:53
Толковая статья.
# Анатолий 06.02.2017 23:40
Статья понравилась, понятно написано, спасибо!
# Анатолий 06.02.2017 23:43
Статья понравилась, понятно написано, спасибо!

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.