Pull to refresh

Comments 20

Некоторые придирки.

Почему это формальное определение хаоса нарушается? Система детерминированная, значит и странный аттрактор — детерминированный хаос (вот например есть лекции, поновее чем [6], В.С. Анищенко, «Знакомство с нелинейной динамикой», 2002). Ничего необыкновенного в том, что мы можем просмотреть траектории даже в аттракторе я не вижу.

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

ничего не значит, все дело как раз в «качественной» теории. То есть она предсказывает, а численный эксперимент может как-то подтверждать, да и то — условно.
Я сослался на работу, ставшей классической. В.С. Анищенко в этой книге называет детерминированным хаосом то, когда траектория не замыкается и воспроизводит некий апериодический процесс (стр. 64). Получается, что, например, такой классический объект теории дифференциальных уравнений, как почти периодическая функция, является хаотической? :) А в системе Лоренца предельные решения описываются рекуррентными траекториями, при этом почти периодическое решение (как и периодическое решение) — их частный случай.

ничего не значит, все дело как раз в «качественной» теории. То есть она предсказывает, а численный эксперимент может как-то подтверждать

Да, это и имелось в виду, сейчас поправлю, спасибо за замечание.
Интересно, в свое время игрался с AUTO и открыл для себя то, что странный аттактор Лоренца по сути дела является набором неустойчивых циклов, между которыми «пляшет» траектория системы. Тогда же и возникла мысль, что если проводить численное интегрирование с абсолютной точностью, то никакого странного аттрактора бы и не было.
Если стартовать из окрестности точки (0,0,0), то рано или поздно траектория всё равно в неё вернётся — чтобы сделать новую петлю в том же полупространстве, откуда пришло, или обойти стороной сепаратрису, утыкающуюся строго в начало координат, и уйти во второе полупространство. Ничего необычного в этом нет, равно как и нет разрушения существующего детерминированного хаоса.
Тот факт, что системе Лоренца можно сопоставить одномерное отображение, подобное известному отображению «тент», если взять последовательность максимумов переменной z, занумеровать её и построить зависимость z[n+1] ( z[n] ). Получается картина, качественно и, если отмасштабировать, то и количественно подобная отображению:
z[n+1] = z[n]/2 при z[n] < 1/2, (1 — z[n])/2 при z[n] > 1/2.
Получается вполне определённая последовательность, в которой все элементы до бесконечности определяются начальным состоянием. А вот то, хаотичное будет поведение или нет, зависит, конечно, от самого начального состояния. Не помню, как с «тентом», но с более простым отображением было просто достаточно задать начальное положение иррациональным числом, и система никогда бы уже в него не вернулась. В то время как при рациональном значении получился бы цикл, определяемый только периодичностью двоичного представления этого рационального числа.
Да, известно так же, что в системе Лоренца есть циклы, но они неустойчивы, а суметь попасть на них крайне трудно — множество этих циклов так же фрактально, как и всем известная «бабочка» хаотической траектории (Кузнецов в своих книгах называл это множество «странным репеллером», т.к. оно в силу неустойчивости «отталкивает» траекторию). Но попасть в них всё-таки возможно.
А говорить о нарушении хаоса как минимум преждевременно.
Да, известно так же, что в системе Лоренца есть циклы

Строго существование циклов в системе Лоренца при классических значениях ее параметров до сих пор не доказано. Здесь нужен специальный математический аппарат. На сегодняшний день удалось показать лишь существование предельного цикла при больших значениях параметра r методом усреднения. Как говорил один знакомый математик, «если считается, что в системе Лоренца есть хотя бы один цикл, то укажите мне его начальную точку и период». Все заключения, которые есть в литературе о периодических решениях в системе, основаны на гипотезе, возникшей из численного эксперимента.
Динамической системой Лоренца является автономная система обыкновенных дифференциальных уравнений третьего порядка

Судя по представленным ниже уравнениям, ОДУ в системе первого порядка. Т.е. это система трех диф. уравнений первого порядка.
Вы говорите о порядке системы относительно каждой из функций x(t), y(t) и z(t). Число 3 является порядком системы — см. стр. 26 классической книги Л.С. Понтрягина «Обыкновенные дифференциальные уравнения».
Тогда фразу следует перестроить, т.к. «система обыкновенных дифференциальных уравнений третьего порядка» имеет неопределенность к чему относится указание порядка (к дифф. уравнениям или же к системе).
Пример: «система третьего порядка обыкновенных дифференциальных уравнений» — пусть и корявая, но уже не требует разбора контекста.
Лично я стараюсь к миниму свести неоднозначности в высказываниях (не всегда получается).
Про корявость фразы я специально написал. Быстро устранить неоднозначность в данном случае не мог. Пришлось лишь указать на оную.
Касаемо «диффурщиков», могу сказать за себя. Системы ДУ занимают большУю часть времени в моих мыслях. Всегда стараюсь разделять порядок системы (или, например, порядок модели Пространства Состояний) и порядок самих уравнений в системе.
На моей практике чаще всего приходится рассматривать одно ДУ высокого порядка, которое раскладывается в Форму Коши, т.е. в систему ДУ первого порядка. В этом случае порядок системы станет равен порядку исходного ДУ высокого порядка. Ожнако, даже в этом случае стараюсь не допускать, чтобы эти два «порядка» в смысле фразы смешивались.
во-первых, малая степень свободы для уменьшения ошибки (изменение величины шага image интегрирования и точности представления вещественного числа для управления вычислительным процессом)

Некорректное, на мой взгляд, использование термина "степень свободы".
Даже в мат. статистике этот термин означает скорее количество независимых случайных переменных в некоем случайном векторе. Здесь же оно использовано как характеристика числовой обусловленности, если я правильно понял. Т.е. допустимый диапазон варьирования кванта времени численного интегрирования, в котором сохраняется устойчивость решений.
Здесь имеется в виду количество независимых переменных, которые управляют процессом численного интегрирования системы: разрядность вещественного числа, величина шага, максимальный порядок производной при усечении степенного ряда.
поэтому будем реализовывать высокоточные вычисления с плавающей точкой на базе библиотеки GNU MPFR Library

Реализовать «вычисления с плавающей точкой» невозможно на библиотеке вещественных типов с фиксированной точкой. Видимо имелась в виду возможность изменения точности математических операций, увеличивая ее, когда нужно использованием представлений чисел с бОльшим числом разрядов дробной части.
The MPFR library is a C library for multiple-precision floating-point computations with correct rounding.

ХМММ Видимо я по-другому понимаю термин «floating-point» в данном случае. Для меня он означает, что конкретное число в форме floating-point задается неким дробным числом помноженным на степенную функцию. Производя действия над ним, мы меняем показатель степенной функции и тем самым смещаем разделитель дробной и целой частей.
Здесь же, если я правильно понимаю, позиция разделителя задается в момент создания экземпляра переменной и не меняется на протяжении жизни. Если результат действия может выйти за пределы заданного при создании переменной диапазона, то под хранение результата создается переменная увеличенной разрядности либо уменьшенной точности.
С какой-то точки зрения сами операций, наверное, можно обозначить термином Floating-Point, но я бы обозначил его Variable-Precision Operations.
Разрядность не меняется, просто точка в записи числа может быть помещена где угодно относительно его цифр. Поэтому и плавающая точка.
Я внес небольшие изменения «косметического» характера в код. Спасибо за замечания Павлу Голобородько — разработчику MPFR C++.
Код и текст топика я опять поправил — в MPFR C++ есть встроенная функция определения машинного эпсилон, она точнее его вычисляет; оставил для экспоненты диапазон по умолчанию (он шире). И метод toString() можно вызывать без параметров.
Тут были ко мне вопросы о несовпадении координат точки в конечный момент времени. Предыдущая версия моей программы производила вычисления не совсем до конечного момента времени, а до T+delta_t (немножко пересчитывала), поэтому результаты сходились до первого знака после запятой с результатами, полученными в других программах. Я немного поправил код, параметры и результаты вычислений. Принципиально ничего не изменилось.
Only those users with full accounts are able to leave comments. Log in, please.