Computer-algebraic approach to first differential approximation: Van der Pol oscillator
- Авторлар: Blinkov Y.A.1
-
Мекемелер:
- Saratov State National Research University, ul. Astrakhanskaya 83
- Шығарылым: № 2 (2024)
- Беттер: 7-12
- Бөлім: COMPUTER ALGEBRA
- URL: https://medbiosci.ru/0132-3474/article/view/262637
- DOI: https://doi.org/10.31857/S0132347424020022
- EDN: https://elibrary.ru/RPFLEU
- ID: 262637
Дәйексөз келтіру
Толық мәтін
Аннотация
First differential approximation has been used to analyze various numerical methods for solving systems of ordinary differential equations. This has made it possible to estimate the stiffness of the ODE system that models the oscillations of the Van der Pol oscillator and the error of the method as well as to propose simple criteria for choosing a calculation step. The presented methods allow one to perform efficient calculations using computer algebra systems.
Толық мәтін
1. Введение
В 60-х годах прошлого века Н.Н. Яненко [1] сформулировал метод дифференциальных приближений разностной схемы. Основная идея этого метода состоит в замене исследования свойств разностной схемы исследованием некоторой задачи с дифференциальными уравнениями, занимающими промежуточное положение между исходной дифференциальной задачей и аппроксимирующей ее разностной схемой. В работах Н.Н. Яненко и его учеников в результате были сформулированы такие понятия, как аппроксимационная вязкость разностной схемы и первое дифференциальное приближение разностной схемы.
Первое дифференциальное приближение (ПДП) для дифференциальных уравнений в частных производных эволюционного типа, в частности, уравнения Кортевега-де Фриза с использованием систем компьютерной алгебры рассмотрено в [16], а для уравнений Навье–Стокса в [17] .
В [18] рассмотрено ПДП для разностных схем, описывающих обыкновенные дифференциальные уравнения. Обсуждена связь между сингулярным возмущением исходной системы и понятием ПДП. Для этого простого случая показана связь между методом оценки ошибки аппроксимации решения, основанным на анализе ПДП, и методом Ричардсона–Калиткина. Приведены примеры, когда при аппроксимации совместной системы дифференциальных уравнений в частных производных не всегда получаются совместные разностные системы уравнений. В качестве способа проверки совместности системы разностных уравнений предлагается проверять совместность ПДП для разностной системы. Рассмотрены вопросы вычисления ПДП в системах компьютерной алгебры Sage и SymPy.
Существует большое количество численных методов решения систем обыкновенных дифференциальных уравнений (ОДУ). Применение для их исследования ПДП позволяет получить информацию о качестве выбранного численного метода для конкретной системы, используя только символьные вычисления. В данной работе будут рассмотрены методы Рунге–Кутты [19] и многошаговые методы Адамса–Башфорта и Адамса–Мультона [20, 21] на примере осциллятора Ван дер Поля [22].
2. ПДП для систем ОДУ
Для систем ОДУ, в отличие от общего случая дифференциальных уравнений, построение ПДП не требует применения специальных алгоритмов. Обычно для численных методов требуется система ОДУ первого порядка, разрешенная относительно первых производных. Алгоритм построения ПДП для такого вида систем представляет набор простых операций с формальными степенными рядами.
Рассмотрим систему ОДУ первого порядка, разрешенную относительно производных. Также наложим условие, что правая часть уравнений Fi представляет собой полиномы от искомых функций u1, …un:
(2.1)
Применяя к системе (2.1) конкретный численный метод и заменяя искомые функции их разложением в ряд Тейлора с шагом h, получим в любой выбранной точке набор уравнений, которые будут представлять собой равенство нулю степенных рядов по h с коэффициентами Gj, k от искомых функций и их производных
(2.2)
Система (2.2) образует дифференциальный идеал [23] относительно операций сложения, умножения и дифференцирования рядов, равных нулю. Сам вид рядов (2.2), разрешенных относительно первых производных, позволяет выполнить замену производных от функций u1,…un в коэффициентах Gj, k через сами функции.
Можно сформулировать алгоритм построения ПДП, используя алгоритмы построения базисов Грёбнера [24] для рядов. Алгоритм построения ПДП оканчивается при получении первого ненулевого члена по степеням h, выраженного только через сами функции. Как следствие, вид ПДП не зависит от точки разложения в ряд Тейлора и представляет собой канонический вид.
На языке Python была написана программа с использованием системы компьютерной алгебры SymPy, которая строит ПДП для систем ОДУ, разрешенные относительно старших производных с полиномиальной правой частью. Головной модуль имеет имя fda_ode.py. Он и остальные файлы программ и файлы с приведенными ниже расчетами расположены по адресу https://github.com/blinkovua/sharing-blinkov/tree/master/FDA_ODE. Рассмотрим для примера уравнение Дуффинга [25], которое представляет собой важный пример системы (с одной степенью свободы) с нелинейной восстанавливающей силой с малым параметром e << 1.
(2.3)
Уравнение (2.3) имеет первый интеграл с константой C.
Для применения методов Рунге–Кутты перепишем (2.3) в виде системы первого порядка
(2.4)
Пример использования приведен ниже.
В строке 1 произведен импорт основного модуля с вызовом необходимых библиотек, включая и систему компьютерной алгебры SymPy. Далее в строках 2–3 и 6 описываются основные символьные переменные и задается само уравнение Дуффинга.
В строках 8-10 производится проверка первого интеграла системы.
На строке 11 функция init первым аргументом принимает список зависимых функций от второго аргумента t с шагом h. Функция init также определяет представление мономов в виде списка степеней, в данном случае порядок производной по времени, и номера зависимой функции, что стандартно при построении базисов Грёбнера [10].
Первый аргумент всегда должен быть больше второго, который обычно должен быть больше предполагаемого порядка численного метода, а последний влияет только на объем вычислений.
В строках 13-24 задан метод Рунге–Кутты [5] для автономных систем. Правая часть для системы ОДУ задается в строках 12-17 списком аргументов y[0], y[1] = u, u1. Для значительного ускорения громоздких символьных вычислений применяется функция clip_n, которая обрезает ряд до заданной степени h.
В строках 25-31 происходит вычисление разложения метода Рунге-Кутты в ряд Тейлора в точке t = 0
(2.5)
В строках 32–38 происходит приведение ПДП к каноническому виду, который, в частности, дает точный порядок численного метода:
(2.6)
Первый аргумент содержит обрезанный ряд исходного разложения, второй список производных, которые являются старшими относительно операций дифференцирования в первых членах разложения, заданных в третьем аргументе в виде списка. Явное задание выбрано из нелинейности уравнений и сложного алгоритма определения старшего члена. Это обусловлено тем, что старший член может входить в несколько членов полинома от функций и их производных. Поэтому для проведения редукции необходимо выделить старший член сразу во всех частях полинома.
Параметр head=False показывает, что не нужно редуцировать первый член разложения. При его значении True будет происходить, если возможно, редукция головного члена. Это необходимо в том случае, если необходимо посчитать S-полином, как, например, сделано в работе [17] или посчитать первый интеграл, как показано ниже.
В строках 39–43 происходит вычисление разложения первого интеграла из системы (2.4) в ряд Тейлора в точке t = 0.
(2.7)
В строках 45–47 происходит приведение первого интеграла к каноническому виду. ПДП первого интеграла позволяет осуществлять дополнительный контроль численного метода для конкретного вида ОДУ (2.8).
(2.8)
3. ПДП для осциллятора Ван дер Поля
Запишем уравнение осциллятора Ван дер Поля
(3.1)
в виде системы двух уравнений
(3.2)
Применяя метод Рунге–Кутты четвертого порядка для (3.2), получим
(3.3)
Разложение в ряд Тейлора при t = 0 для (3.3) дает
(3.4)
Используя алгоритмы построения базисов Грёбнера для рядов в системе компьютерной алгебры SymPy, построим ПДП для (3.4), в результате получим
(3.5)
Построение ПДП позволило правильно определить порядок численного метода и его остаточный член. Были построены ПДП для различных явных и неявных Рунге–Кутты и многошаговых методов Адамса–Башфорта и Адамса–Мультона. Все результаты показали, что ПДП второго уравнения системы (3.2) имеет вид , где p – порядок метода, C – некоторая константа. Значения констант C представлены в табл. 1.
Таблица 1
Метод | p | C |
Гаусса–Лежандра (неявное правило средней точки) | 2 | 1/12 |
Кранка–Николса [27] | 2 | 1/12 |
Рунге–Кутты | 4 | –1/120 |
Адамса–Башфорта | 4 | –251/720 |
Адамса–Мультона | 4 | 19/720 |
Дормана–Принса [28] | 5 | –1/3600 |
Адамса–Башфорта | 5 | 95/288 |
Адамса–Мультона | 5 | 19/720 |
Вычисление всех представленных примеров на компьютере с процессором Intel(R) Core(TM) i7-4770K CPU@3.50GHz в системе Debian 12 в оболочке Jupiter потребовало 620 сек и 160 Мегабайт оперативной памяти.
Остаточный член показывает жесткость системы [26] относительно параметра m. В результате необходимо выбирать шаг h таким образом, чтобы обеспечить малость остаточного члена. Вычисленный остаточный член для методов Рунге–Кутты позволяет организовать эффективное определение размера шага h для заданной погрешности.
4. Численные эксперименты
Были проведены расчеты для всех представленных примеров с начальными условиями u = 0, ut = 1 при t = 0 до t = 100. Обозначение max показывает максимальное отклонение значения u от 0 и выбрано для контроля точности. Для табл. 2 шаг задан следующим значением h = 0.01. Символ * обозначает прерывание вычислений при значении abs(u) >= 3.
Таблица 2
μ | h pμ p+1 | max | μ | h pμ p+1 | max |
Гаусса–Лежандра 2 | Кранка–Николса 2 | ||||
0 | 0.00e+00 | 1.000 | 0 | 0.00e+00 | 1.000 |
1 | 1.00e-04 | 2.009 | 1 | 1.00e-04 | 2.009 |
5 | 1.25e-02 | 2.022 | 5 | 1.25e-02 | 2.022 |
10 | 1.00e-01 | 2.015 | 10 | 1.00e-01 | 2.015 |
20 | 8.00e-01 | 2.011 | 20 | 8.00e-01 | 2.011 |
50 | 1.25e+01 | 2.018 | 50 | 1.25e+01 | 2.018 |
100 | 1.00e+02 | * | 100 | 1.00e+02 | * |
150 | 3.38e+02 | * | 150 | 3.38e+02 | * |
Рунге–Кутты 4 | Дормана–Принса 5 | ||||
0 | 0.00e+00 | 1.000 | 0 | 0.00e+00 | 1.000 |
1 | 1.00e-08 | 2.009 | 1 | 1.00e-10 | 2.009 |
5 | 3.13e-05 | 2.022 | 5 | 1.56e-06 | 2.022 |
10 | 1.00e-03 | 2.014 | 10 | 1.00e-04 | 2.014 |
20 | 3.20e-02 | 2.008 | 20 | 6.40e-03 | 2.008 |
50 | 3.12e+00 | 2.004 | 50 | 1.56e+00 | 2.001 |
100 | 1.00e+02 | * | 100 | 1.00e+02 | 2.265 |
150 | 7.59e+02 | * | 150 | 1.14e+03 | * |
Адамса–Башфорта 4 | Адамса–Мультона 4 | ||||
0 | 0.00e+00 | 1.000 | 0 | 0.00e+00 | 1.000 |
1 | 1.00e-08 | 2.009 | 1 | 1.00e-08 | 2.009 |
5 | 3.13e-05 | 2.022 | 5 | 3.13e-05 | 2.022 |
10 | 1.00e-03 | 2.014 | 10 | 1.00e-03 | 2.014 |
20 | 3.20e-02 | * | 20 | 3.20e-02 | 2.008 |
50 | 3.12e+00 | * | 50 | 3.12e+00 | 2.008 |
100 | 1.00e+02 | * | 100 | 1.00e+02 | * |
150 | 7.59e+02 | * | 150 | 7.59e+02 | * |
Адамса–Башфорта 5 | Адамса–Мультона 5 | ||||
0 | 0.00e+00 | 1.000 | 0 | 0.00e+00 | 1.000 |
1 | 1.00e-10 | 2.009 | 1 | 1.00e-10 | 2.009 |
5 | 1.56e-06 | 2.022 | 5 | 1.56e-06 | 2.022 |
10 | 1.00e-04 | * | 10 | 1.00e-04 | 2.014 |
20 | 6.40e-03 | * | 20 | 6.40e-03 | 2.008 |
50 | 1.56e+00 | * | 50 | 1.56e+00 | 2.022 |
100 | 1.00e+02 | * | 100 | 1.00e+02 | * |
150 | 1.14e+03 | * | 150 | 1.14e+03 | * |
Как видно из табл. 2, значения h pμp+1 может использоваться для выбора h при вычислениях с фиксированным шагом. Также заметно преимущество неявных методов, по сравнению с явными методами, что возможно обусловлено меньшим значением константы C в ПДП.
Для вычислений с переменным шагом для заданной погрешности tol = 0.01 по следующей формуле . Как показано в табл. 3, при начальном шаге h = 0.01 все вычисления показали устойчивость при изменении шага и большую сходимость при большем порядке метода.
Таблица 3
μ | шагов | max | μ | шагов | max |
Гаусса–Лежандра 2 | Кранка–Николса 2 | ||||
0 | 10001 | 1.000 | 0 | 10001 | 1.000 |
1 | 10001 | 2.009 | 1 | 10001 | 2.009 |
5 | 12999 | 2.022 | 5 | 14079 | 2.022 |
10 | 14922 | 2.014 | 10 | 16211 | 2.014 |
20 | 16783 | 2.008 | 20 | 18441 | 2.008 |
50 | 16899 | 2.003 | 50 | 18471 | 2.003 |
100 | 20332 | 2.001 | 100 | 22327 | 2.001 |
150 | 32912 | 2.001 | 150 | 35752 | 2.001 |
Рунге–Кутты 4 | Дормана–Принса 5 | ||||
0 | 10001 | 1.000 | 0 | 10001 | 1.000 |
1 | 10001 | 2.009 | 1 | 10001 | 2.009 |
5 | 10001 | 2.022 | 5 | 10001 | 2.022 |
10 | 10024 | 2.014 | 10 | 10001 | 2.014 |
20 | 10179 | 2.008 | 20 | 10004 | 2.008 |
50 | 10225 | 2.003 | 50 | 10041 | 2.003 |
100 | 10273 | 2.001 | 100 | 10062 | 2.001 |
150 | 11796 | 2.001 | 150 | 10815 | 2.001 |
5. Заключение
Проведенные вычисления показывают, что, применяя ПДП, можно оценить невязку используемого численного метода в зависимости от параметров задачи.
Применяя ПДП, возможно обнаружить и оценить жесткость системы ОДУ, а также использовать остаточный член ПДП для выбора постоянного шага или для управления переменным шагом.
Исходные тексты программ и представленные вычисления приведены по адресу github.com/blinkovua/sharing-blinkov/tree/master/FDA_ODE .
Представленные методы позволяют провести эффективные вычисления средствами систем компьютерной алгебры для решений систем ОДУ с правой полиномиальной частью.
Авторлар туралы
Yu. Blinkov
Saratov State National Research University, ul. Astrakhanskaya 83
Хат алмасуға жауапты Автор.
Email: blinkovua@info.sgu.ru
Ресей, Saratov, 410012
Әдебиет тізімі
- Yanenko N.N., Shokin Yu.I. On the first differential approximation of difference schemes for hyperbolic systems of equations, Sib. Mat. Zh., 1969. V. 10. No. 5. P. 1173–1187.
- Blinkov Yu.A., Gerdt V.P., Marinov K.B. Discretization of quasilinear evolution equations by computer algebra methods. Program. Comput. Software. 2017. V. 43. No. 2. P. 84–89.
- Blinkov Yu.A., Rebrina A.Yu. Investigation of difference schemes for two-dimensional Navier–Stokes equations by using computer algebra algorithms, Program. Comput. Software, 2023. V. 49. No. 1. P. 26–31.
- Blinkova A.Yu., Malykh M.D., evast’yanov L.A. On differential approximations of difference schemes, Izv. Sarat. Univ., Nov. Ser., Ser. Mat., Mekh., Inf. 2021. V. 21. No. 4. P. 472–488.
- Kutta M. Beitrag zur näherungsweisen Integration totaler Differentialgleichungen. Zeitschrift für Mathematik und Physik. 1901. V. 46. P. 435–453.
- Bashforth F. An Attempt to test the Theories of Capillary Action by comparing the theoretical and measured forms of drops of fluid. With an explanation of the method of integration employed in constructing the tables which give the theoretical forms of such drops, by J. C. Adams, Cambridge. 1883.
- Moulton F.R. New methods in exterior ballistics, University of Chicago Press. 1926.
- van der Pol B. On “Relaxation-Oscillations”. The London, Edinburgh, and Dublin Philosophical Magazine and Journal of Science. 1926. N. 2. P. 978–89992. doi: 10.1080/14786442608564127
- Kolchin E.R. Differential Algebra and Algebraic Groups. Academic Press, New York, 1973. 446 p.
- Buchberger B. Gröbner bases: an Buchberger algorithmic method in polynomial ideal theory. Recent Trends in Multidimensional System Theory / Ed. by N. K. Bose. V. 6. 1985. P. 184–232.
- Duffing G. Brzwungene Schwingungen bei veranderlicher Eigenfrequenz und ihre technische Bedeutung, Braunschweig, 1918.
- Curtiss C.F., Hirschfelder J.О. Integration of stiff equations. Proceedings of the National Academy of Sciences of the USA. 1952. V. 38. N. 3. P. 235–243. doi: 10.1073/pnas.38.3.235
- Crank J., Nicolson P. A practical method for numerical evaluation of solutions of partial differential equations of the heat conduction type. Proc. Camb. Phil. Soc. 1947. V. 43. N. 1. P. 50–67. doi: 10.1017/S0305004100023197
- Dorman J.R., Prince P.J. A family of embedded Runge–Kutta formulae. Journal of Computational and Applied Mathematics. 1980. V. 6. N. 1. P. 19–26. doi: 10.1016/0771-050X(80)90013-3
Қосымша файлдар
