Разработка алгоритма метода Рунге — Кутта четвертого порядка для решения систем дифференциальных уравнений на примере системы Лоренца | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 4 мая, печатный экземпляр отправим 8 мая.

Опубликовать статью в журнале

Автор:

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

Опубликовано в Молодой учёный №27 (369) июль 2021 г.

Дата публикации: 28.06.2021

Статья просмотрена: 2611 раз

Библиографическое описание:

Лобашевская, В. А. Разработка алгоритма метода Рунге — Кутта четвертого порядка для решения систем дифференциальных уравнений на примере системы Лоренца / В. А. Лобашевская. — Текст : непосредственный // Молодой ученый. — 2021. — № 27 (369). — С. 24-27. — URL: https://moluch.ru/archive/369/82905/ (дата обращения: 26.04.2024).



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

Ключевые слова: Рунге-Кутта четвертого порядка, система Лоренца, решение дифференциальных уравнений, С++, Python.

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

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

В данном методе вводятся вспомогательные величины k0, k1, k2, k3. Вычисление координат очередной точки (x i +1 , y i +1 ) происходит исходя из уже известных координат предыдущей точки.

, где i = 0, 1, …

Таким образом, метод Рунге-Кутта требует на каждом шаге четырехкратного вычисления правой части уравнения f(x, y).

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

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

Система Лоренца

Наиболее яркий пример динамического хаоса обнаружил в 1963 году метеоролог Эдвард Лоренц, решая задачу о тепловой конвекции жидкости.

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

Эта система уравнений, ставшая теперь классической, имеет вид:

Решение этих уравнений — функции X(t), Y(t) и Z(t) — определяют в паpаметpическом виде тpаектоpию системы в тpехмеpном «фазовом» пpостpанстве X, Y, Z. Ввиду однозначности функций, стоящих в правых частях этих уравнений, тpаектоpия себя никогда не пересекает.

Лоpенц исследовал вид этих тpаектоpий пpи разных начальных условиях пpи значениях паpаметpов a = 10, b = 28 и c = 8/3. Он обнаружил, что пpи этом тpаектоpия хаотическим образом блуждает из полупpостpанства x>0 в полупpостpанство x<0, фоpмиpуя две почти плоских, пеpепутанных сложным образом спирали.

Проектирование

Основная программа реализована на языке С++.

Так как в решаемой системе Лоренца четыре неизвестных: t, x, y, z, рассчитывать вспомогательные величины k0, k1, k2, k3 надо будет для x, y, z. Будем считать наши уравнения относительно t. Для этого в массиве t будем хранить значения: предыдущее значение плюс шаг начиная с 0.

Для хранения всех k воспользуемся двумерным массивом 3 на 4.

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

Для записи массивов с полученными точками в файлы используем библиотеку «fstream».

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

– Коэффициенты a, b, c;

– Шаг h;

– Количество точек, которые надо вычислить;

– Начальные значения x, y, z.

Выходные данные — это массивы точек x, y, z записанные в файлы формата.txt. Схема основной программы на рисунке 1.

Рис. 1

Вспомогательная программа для вывода графиков на экран написана на языке Python.

Для построения графиков понадобится библиотека «matplotlib.pyplot».

Входные данные программы — массивы точек x, y, z считанные из прежде сохраненных файлов.

Выходные данные — 3D график, построенный из массивов точек x, y, z. Схема вспомогательной программы на рисунке 2.

Рис. 2

Результаты работы программы

Запустим программу. возьмем шаг = 0.01, коэффициент a = 10, коэффициент b = 28 (считается классическим случаем), коэффициент c = 2.6, начальные координаты (10,10,10), количество точек = 3000. Получившийся график показан на рисунке 3.

Рис. 3

Выводы

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

Литература:

  1. Демченко В. В. Метод Рунге-Кутты решения задачи Коши для обыкновенных дифференциальных уравнений первого порядка. М.: МФТИ, 2004. -20с.
  2. Арнольд В. И. Обыкновенные дифференциальные уравнения. — М.: МЦНМО, 2012. — 344 с.
  3. Лоренц Э. Детерминированное непериодическое движение. Странные аттракторы. — М.:, 1981. — С. 88–116.
  4. Эльсгольц Л. Э. Дифференциальные уравнения и вариационное исчисление. — Наука, 1969. — 425 c.
Основные термины (генерируются автоматически): решение систем, уравнение, вспомогательная программа, двумерный массив, инженерно-технический характер, основная программа, порядок, решение задач, шаг.


Ключевые слова

python, С++, Рунге-Кутта четвертого порядка, система Лоренца, решение дифференциальных уравнений

Похожие статьи

Алгоритм интегрирования с переменным числом стадий для...

Для численного решения жестких задач в [2] предлагается применять явные методы вида.

Таким образом, задача о построении явных методов Рунге-Кутта первого порядка точности с

Параметры методов можно хранить в виде двухмерного массива E с элементами eij вида.

Программа минимизации функции многих переменных методом деформируемого многогранника (по Нелдеру...

Индивидуальная домашняя работа в процессе обучения...

Для учащихся, овладевшими на уроке навыками решения определенных задач, повторное их решение дома или подобных им — требование заниженное. Им было бы полезнее найти новые пути решения разобранных задач или применить методы решения к нетиповым задачам.

Необходимо провести исследование, построить информационную модель, сделать вывод и выделить...

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

Решение дифференциальных уравнений сеточными методами есть задача вычисления приближенных значений функций в узлах ; для различных моментов времени . Исходная дифференциальная задача аппроксимируется системой сеточных уравнений, которую можно

Особо следует отметить возможность существенного выигрыша за счет применения последовательности...

Использование двумерных массивов в VBA на уроках...

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

Массив — набор однотипных переменных, объединенных одним именем и доступных через это имя и порядковый номер переменной в наборе.

По умолчанию максимальное число элементов массива, построенного одной командой, равно...

Место и роль системы организации в решении соревновательных...

С помощью системы организации решении соревновательных задач пяти категорий (простой, средней сложности, повышенной сложности, олимпиадные и задачи чемпионата по программированию) по предмету Программирование на С++ происходит активизация

Применение в процессе обучения студентов перечисленных выше ЭОР позволяет повысить...

Методическое обеспечение решения математических моделей

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

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

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

Система автоматизированного проектирования MathCAD...

Для решения систем уравнений в MathCAD используется специальный вычислительный блок Given — Find, состоящий из четырех частей

Также MathCAD позволяет производить символьное решение уравнений и систем с использованием того же вычислительного блока

Поэтому вначале следует задать соответствующие значения трех матриц, определяя их...

Программирование разностного метода решения одной задачи...

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

Ключевые слова: разностное уравнение третьего порядка, условная устойчивость, пространство начальных...

Конспект открытого урока по алгебре в 7 классе «Решение систем...

(Решить систему уравнений- значит найти все её решения или доказать, что решений нет).

А есть ли еще способы решения систем уравнений? Кто догадался, чем мы сегодня будем с вами

1. Основными уравнениями являются два уравнения равновесия и два уравнения

Задача: Научиться решать системы линейных уравнений методом Крамера и сравнить...

Похожие статьи

Алгоритм интегрирования с переменным числом стадий для...

Для численного решения жестких задач в [2] предлагается применять явные методы вида.

Таким образом, задача о построении явных методов Рунге-Кутта первого порядка точности с

Параметры методов можно хранить в виде двухмерного массива E с элементами eij вида.

Программа минимизации функции многих переменных методом деформируемого многогранника (по Нелдеру...

Индивидуальная домашняя работа в процессе обучения...

Для учащихся, овладевшими на уроке навыками решения определенных задач, повторное их решение дома или подобных им — требование заниженное. Им было бы полезнее найти новые пути решения разобранных задач или применить методы решения к нетиповым задачам.

Необходимо провести исследование, построить информационную модель, сделать вывод и выделить...

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

Решение дифференциальных уравнений сеточными методами есть задача вычисления приближенных значений функций в узлах ; для различных моментов времени . Исходная дифференциальная задача аппроксимируется системой сеточных уравнений, которую можно

Особо следует отметить возможность существенного выигрыша за счет применения последовательности...

Использование двумерных массивов в VBA на уроках...

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

Массив — набор однотипных переменных, объединенных одним именем и доступных через это имя и порядковый номер переменной в наборе.

По умолчанию максимальное число элементов массива, построенного одной командой, равно...

Место и роль системы организации в решении соревновательных...

С помощью системы организации решении соревновательных задач пяти категорий (простой, средней сложности, повышенной сложности, олимпиадные и задачи чемпионата по программированию) по предмету Программирование на С++ происходит активизация

Применение в процессе обучения студентов перечисленных выше ЭОР позволяет повысить...

Методическое обеспечение решения математических моделей

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

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

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

Система автоматизированного проектирования MathCAD...

Для решения систем уравнений в MathCAD используется специальный вычислительный блок Given — Find, состоящий из четырех частей

Также MathCAD позволяет производить символьное решение уравнений и систем с использованием того же вычислительного блока

Поэтому вначале следует задать соответствующие значения трех матриц, определяя их...

Программирование разностного метода решения одной задачи...

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

Ключевые слова: разностное уравнение третьего порядка, условная устойчивость, пространство начальных...

Конспект открытого урока по алгебре в 7 классе «Решение систем...

(Решить систему уравнений- значит найти все её решения или доказать, что решений нет).

А есть ли еще способы решения систем уравнений? Кто догадался, чем мы сегодня будем с вами

1. Основными уравнениями являются два уравнения равновесия и два уравнения

Задача: Научиться решать системы линейных уравнений методом Крамера и сравнить...

Задать вопрос