Немного о хаосе и о том, как его сотворить


    Говоря «хаос», мы, обычно, подразумеваем полное отсутствие порядка, абсолютную неупорядоченность и случайность. С математической точки зрения, хаос и порядок – понятия не взаимоисключающие. Теория хаоса (есть что-то завораживающие в названиях математических теорий) – достаточно молодая математическая область, создание которой приравнивают по значимости открытий ХХ века к созданию квантовой механики. Хаос случается в нелинейных динамических системах. Иначе говоря, любой процесс, который протекает со временем, может быть хаотичным (например, высота дерева, температура тела или популяция мадагаскарских тараканов).

    Чтобы разобраться, что такое хаос, сначала обратимся к системам, такой чертой не наделённым. Детерминированные системы не допускают никаких случайностей: значение на выходе полностью определено значениями на входе. Таким образом, изменение начальных условий вызывает пропорциональное изменение результата. Так, ньютоновская механика подразумевает детерминированность, и изменяя, к примеру, силу пинка по мячу, можно ожидать соответствующее изменение в продолжительности полёта этого мяча. Так что, по принципу детерминированности, положение мяча в текущий момент полностью определено положением мяча в предыдущий момент и будущее положение зависит от текущего и всё это совсем несложно посчитать. Так, и астрономы прошлого времени полностью доверялись этому принципу и считали, что вселенная – строго детерминированная система и положение небесных тел в будущем (и в прошлом) можно рассчитать, зная их текущее положение и скорость, т.е. зная начальные условия. Предполагалось, что чем точнее известны начальные условия, тем точнее будет результат прогноза, однако известный математик Анри Пуанкаре, который (в свободное время, вероятно) занимался описанием орбит небесных тел, обнаружил, что в системах из 3-х и более тел, при незначительном изменение начальных условий (положения и скорости), траектории тела очень быстро удаляются друг от друга. Два близких набора начальных условий давали различные результаты.

    Большой вклад в теорию хаоса внёс метеоролог Эдвард Лоренц. В шестидесятых годах прошлого века этот американец работал над компьютерной программой, моделирующей движение воздушных масс в атмосфере Земли. Все мы знаем, что компьютер (вопреки расхожим слухам) является строго детерминированной системой, и это создаёт известный принцип «garbage in garbage out». Лоренц гонял свою программу и в хвост, и в гриву, получая всякие разные результаты. Некоторые его коллеги даже делали предположения, что эта модель является точным предсказателем погоды, спрашивали, брать ли завтра зонтик. Разумеется, эти выводы были поспешны, вскоре выяснилась одна особенность модели погоды. Один раз для ускорения вычислений, Лоренц запустил программу не сначала, а ввёл в неё данные из предыдущего «прогона», которые были распечатаны на бумаге. Однако результаты такого запуска быстро начали отклоняться от уже полученных, формируя абсолютно другую картину. Немного неожиданно, не так ли? Оказалось, что Лоренц вводил не точные результаты прошлых вычислений, а округлённые перед выводом на печать, эта погрешность просто игнорировалась. Модель Лоренца оказалась сверхчувствительна к начальным условиям. Малейшее различие во входных данных приводило к сильному расхождению результатов с течением времени. Эта зависимость от начальных условий и была названа хаосом. Лоренцом была озвучена знаменитая черта хаоса, именуемая «эффектом бабочки», который предполагает, что в зависимости от того, махнёт ли бабочка крыльями в лесах Бразилии зависит случится ли в Техасе ураган или нет. Этот же принцип был положен в основу одноимённого фильма с Эштоном Катчером (кино ненаучное, смотреть необязательно).

    Отклонение в результатах повторных вычислений

    Вся эта зависимость от начальных условий предполагает, что мы не можем делать долгосрочные прогнозы в нестабильных динамических системах. Любая погрешность в начальных условиях не позволит нам предсказать результат на какой-либо продолжительный отрезок времени. Если, к примеру, взять модель Лоренца, в качестве входных данных для определения скорости ветра нам будет необходимо ввести значения температуры и давления в каждой точке земной атмосферы, только тогда можно будет ожидать достоверный прогноз на длительный срок. Причём, входные данные должны быть абсолютно точными, т. е. с бесконечным числом знаков после запятой. А как известно, совершенно все измерительные приборы на Земле имеют ненулевую погрешность. Как бы точно не была измерена величина, всегда можно (теоретически) измерить точнее. Да и нет таких машин, которые бы позволили вводить бесконечное количество знаков после запятой. Может с приходом квантовых компьютеров что-то и изменится, не знаю.

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

    Однако «хаос» и «случайность» понятия совсем не равнозначные. Определённая интерпретация процессов, кажущихся случайными, приводит их в порядок. К примеру, время между биениями сердца человека величина непостоянная, даже если человек не подвержен физ нагрузке. Если мы понаблюдаем за биением сердца некоторое время и интервалы между биениями запишем в таблицу, а также создадим второй столбец, копируя значения из первого, но со сдвигом на одно значение (т.е. первому измерению (t) в первом столбце будет соответствовать второе измерение (t+1) во втором, второму — третье и т.д;), можно будет построить карту, где по вертикали будем иметь значения без сдвига (t), а по горизонтали — значения со сдвигом(t+1). Точки на этой карте не будут рассыпаны в случайном порядке, а будут притянуты к некой области, формируя аттрактор.

    Распространённый пример хаотической системы – это двойной маятник, т.е. маятник, к концу которого прикреплен второй маятник. Вы, возможно, видели подобные маятники в магазинах подарков. Так вот если взять два одинаковых маятника, поставить рядом и отклонить их приблизительно на равную величину, то уже через несколько колебаний маятники полностью рассинхронизируются. Чем точнее мы будем соблюдать начальные условия, тем дольше маятники будут качаться в такт, однако от расходимости никуда не деться.

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

    Долгое время теория хаоса считалась некой математической абстракцией, не имеющей подтверждения в реальных условиях. Эта проблема волновала одного японца по имени Леон Чуа, который был нацелен показать, что хаос можно создать. Для этой цели он собрал электрическую цепь.

    Цепь Чуа явилась первой электрической цепью, способной генерировать хаотические сигналы. Его творение было гениально в своей простоте, цепь состояла из четырёх линейных элементов: двух конденсаторов, одной индуктивности и резистора, а также включала в себя один нелинейный локально активный элемент, на кусочно-линейной вольт-амперной характеристике которого имелась область с негативным сопротивлением. Этот элемент теперь часто называют диодом Чуа. Цепь представляет собой генератор, и диод Чуа является необходимой частью для достижения хаотических колебаний. Этот элемент недоступен как отдельный компонент, но его несложно собрать, задействовав два операционных усилителя. Другие способы реализации этой нелинейности включают в себя встречно-параллельно подключенную пару инверторов или туннельный диод (похоже, всё-таки доступен, как отдельный компонент), на ВАХ которого, как известно, имеется «долина».

    Обобщённая схема генератора Чуа и уравнения, его описывающие

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

    Собрать генератор Чуа труда особого не составляет. Эта цепь может демонстрировать такие явления хаоса как бифуркации и хаотический аттрактор. Однако для наблюдения всех этих чудес, будет необходим осциллограф, да ещё с двумя входами. В классическом варианте, схема состоит из двух конденсаторов, одной индуктивности, семи резисторов, микросхемы с парой операционных усилителей и двух батареек на 9В (можно использовать блок питания, но питание должно быть двухполярным). Для достижения хаотического поведения, между номиналами элементов должны соблюдаться определённые соотношения. Так, ёмкость конденсатора С2 должна быть примерно 10 ёмкостей С1, отношение С2/С1 называют α. Коэффициент β показывает отношение между R, C2 и L, а именно, β = R^2 C2 / L и должен равняться приблизительно 15.

    Принципиальная схема генератора с отрицательным сопротивлением на операционных усилителях

    Итак, приступим к сборке. Собирать можно и на макетной плате, но чтобы сигналы были чётче, лучше компоненты спаять на печатной плате. В своей сборке я использовал конденсаторы на 47нФ и 470нФ, индуктивность на 15мГн и потенциометр на 1кОм (за неимением такового номиналом 2кОм, соединил его последовательно с резистором на 1кОм). Последовательно с индуктивностью можно (но необязательно) включить резистор малого номинала (до 10Ом), чтобы добавить «красоты» в сигналы. Диод Чуа реализован стандартным способом, с применением двух операционников. Я использовал микросхему TL082CP, по спецификации, это широкополосный операционный усилитель, советую использовать такой тип, с более простыми аналогами схема у меня не «завелась». Для создания характеристики с необходимыми наклонами, нам потребуются следующие номиналы резисторов: R1 = R2 = 220Ом, R3 = 2.2кОм, R4 = R5 = 22кОм, R6 = 3.3кОм. Запитать операционник можно двумя батарейками 9В, для корректной работы ОУ питание нам нужно двухполярное. Моя сборка топорная, согласен — проводки под питание и скрученные резисторы, другие мелкие недочёты, но для мониторинга хаотических сигналов этого хватило.

    Остальную часть платы сбережём для следующих проектов

    После аккуратной сборки этой несложной схемы, можно попробовать посмотреть, что за сигналы она генерирует. Сигналы будем снимать с конденсаторов C1 и С2. На моей схеме я сделал два BNC разъёма для удобства подсоединения схемы к осциллографу. Подключаем кабели к осциллографу и выбираем X-Y режим, когда по одной оси у нас будет напряжение на первом конденсаторе, а по другой – напряжение на втором. Что вывести на X, а что на Y значения не имеет. Выкрутим ручку потенциометра на максимальное значение и запитаем схему. На экране осциллографа должна появиться точка. Медленно уменьшаем значение сопротивления (лучше использовать потенциометры с большим ходом и с крупной ручкой, дабы обеспечить плавность изменения сопротивления), в какой-то момент точка должна превратиться в орбиту. Последующее уменьшение сопротивления приводит к раздваиванию этой орбиты, мы начинаем наблюдать бифуркации. Удвоения периода орбиты будут происходить и дальше с уменьшением сопротивления, расстояния между последующими раздвоениями будут постоянно и планомерно уменьшаться. Т.е. разница сопротивлений между четверной и восьмерной орбитой будет меньше, чем между четверной и двойной. Скорость, с которой интервал между бифуркациями уменьшается определяется константой Фейгенбаума. Период, до которого вам удастся наблюдать бифуркации зависит от четкости сигналов (т.е. от качества соединений) и от чувствительности потенциометра (дрожание рук тоже не на пользу). В какой-то момент стабильная орбита уступает место двухпетлевому аттрактору, который знаменует наступление хаоса. Этот аттрактор имеет три точки равновесия: одну в начале координат, и две в «дырках» петель. Типичная траектория аттрактора начинает вращение вокруг одной из «дырок», удаляясь от точки равновесия с каждым витком, затем траектория либо возвращается ближе в центру и вновь удаляется, либо направляется к другой точке равновесия, где процесс повторяется. Количество вращений в каждом случае случайно.


    Образование хаоса через бифуркации

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

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

    Спектр хаотического сигнала

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

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

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

    Данная схема может быть интересна студентам математических и электротехнических факультетов. Думаю, что демонстрация работы генератора Чуа сможет заинтересовать преподавателей, в чьи научные интересы входит теория хаоса. Спасибо всем за внимание!
    Share post

    Comments 65

      –16
      я наверное не единственный, кто прочитал как " генератора Чуда"
        +11
        Вероятно, вы из этой статьи впервые о нем узнали.
          –3
          генератор чихуахуа
          0
          Генератор Хаоса. Хм, интересно, такие штуки используются в каких-нибудь генераторах случайных чисел.
            0
            Такие попытки были. Вообще самый простой способ — это взять логистическое отображение. Из-за небольшой потери точности при потери разрядов и правильном подборе параметров отображения можно получить псевдослучайную последовательность чисел
              +5
              Моя кошка — типичный генератор хаоса, правда, не знаю, есть ли в ее схеме диод Чуа и как ее использовать в генераторе случайных чисел.
                0
                У меня возник вопрос — почему такая штука не используется в нынешних процах/материнках в качестве генератора случайных чисел?
                Схема ведь довольно простая.
                  +1
                  Потому что исполнить её в кристале весьма проблематично, а делать выводы из кристала ради рандомайзера — слишком жирно.
                  Есть и другие схемы реализации, например habrahabr.ru/post/128666/
                    0
                    Индуктивность же.
                    В отличие от сопротивлений и конденсаторов индуктивность нельзя изготовить в кремнии, её нужно делать и монтировать на плате отдельно.
                      +1
                      Ее можно реализовать в кремнии на основе ОУ.
                      0
                      Аппаратные генераторы случайных чисел и так почти не используются в пользовательских машинах.
                      Хотя уж компаратор с тиристором поставить — совсем не проблема(тоже вполне себе шумогенератор).
                    +1
                    Спасибо. Было интересно немного вспомнить курс нелинейной динамики и хаоса.
                    Когда то посчастливилось учиться у Анищенко Вадима Семеновича. Очень интересно он про все эти аттракторы рассказывал.
                      0
                      А я когда-то изучал по его книгам нелинейную динамику
                      +11
                      Помню время, когда только ZX Spectrum появились, наклепал программку использующую random функцию. Накопил много случайных данных и выявил, что они не случайны. На горизонте уже маячила Нобелевская премия.

                      Но через пару дней я узнал, что компьютер генерирует случайные числа не случайно.

                      Думаю это устройство тоже генерирует немного упорядоченный хаос.
                        +1
                        Да, упорядоченный. Сигналы лежат на аттракторе, т.е. они притянуты к некоторой области, за пределы которой выходить не будут. Но траектория, которую эти сигналы строят, никогда себя не повторит. Этот принцип и можно положить в основу генератора случайных чисел и последовательностей.
                          +1
                          И тем не менее, эти числа и последовательности будут псевдо-случайными.
                            +2
                            Не совсем так. Теоретичеки можно добиться того, что сигнал будет «почти случайным». Для этого достаточно будет внести погрешность небольшую в работу системы. Если мы возбмем не само устройство, а модель, которая его описывает и посччитаем на компьютере, то там появится эта неопределенность, обусловленная конечностью разрядов числа в компьютере. Было бы интересно, кстати проверить это на тестах случайных чисел. Я работы такие видел, но внимание сильно не заострял
                              0
                              Во первых внесенная погрешность не случайна.
                              Во вторых, «почти случайные» синонимичны «псевдослучайным» сигналам в данном контексте.
                              Даже если генерировать псевдослучайные сигналы взять за основу «белый шум», некорректно говорить о случайности.
                                +1
                                Отчасти, соглашусь)
                                Но есть один момент — ученые уже много лет устраивают холивар о природе случайности и методах ее оценки
                                В случае с этим генератором, у нас имеется маленькая неопределенность — в железке это будут тепловые флуктуации, которые случайны с точки зрения статистики, флуктуации электрического поля etc.
                                И вот небольшая такая неточность ввиду хаотичности системы рождает значительное отклонение на определенном промежутке времени (эффект бабочки тот самый)
                                Статистически эти флуктуации будут все таки случайны
                                Кстати сосем недавно была доказана случайная природа квантовых хаотических систем
                                  0
                                  Так то, я тоже с вами согласен :)
                                  Однако, это означает лишь то, что невозможно предсказать эти флуктуации статистическими методами.
                                    0
                                    Во-первых, статистическими методами (в строгом смысле) вообще ничего предсказать нельзя, статистические методы позволяют проверять гипотезы.

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

                                    С понятием псевдослучайности связано очень много легенд. Почти случайные и псевдослучайные — ни в коем случае не синонимы. О псевдослучайности говорят в том случае, когда в принципе имеется способ абсолютно точно предсказывать следующие значения величины, но при этом сама величина ведет себя как случайная. Здесь никакого способа для абсолютно точного предсказания нет, поэтому и псевдослучайности тоже нет.

                                    Кстати, такие генераторы физические на практике применять очень сложно, поскольку они дают неравномерные распределения. Преобразование же к равномерному распределению тоже помогает слабо, поскольку все они обычно очень капризны в смысле устойчивости статистических свойств генерируемого распределения. В свое время в некоторые материнки (например, Intel® 810, 815, 820, 840 Chipset family) встраивались физические генераторы, использующие тепловой шум резистора (в моей библиотеке даже остался код, работающий с таким датчиком). К сожалению там устойчивости распределения добивались методами, которые делают такой генератор почти неприменимым в практических задачах, поскольку из-за них он оказывался чрезвычайно медленным (сотни чисел в секунду, если мне не изменяет память).
                        0
                        Теперь я знаю, как я был сотворен :)
                          +3
                          Вообще тема интересная, я собственно дисер на этом защищал и было довольно тяжело провести эти исследования в совете, так как был прикладной объект — роторная система, а ученые у нас в этом плане довльно консервативны.
                          Еще очень интересная вешь в прикладном плане — синхронизация хаотических систем. Я вот не знаю, есть ли работы, где делали девайсы и проверяли синхронизацию на них — все больше попадались теоретичсеки работы
                            +1
                            Возможность синхронизовать две такие цепи была доказана. Собственно, после этого и начались появляться коммуникационные системы с этим генератором.
                              0
                              Да, теоретически возможность синхронизации доказали относительно давно
                              В свое время порывался девайс собрать и поэксперементировать сам, но в итоге руки так и не дошли(
                              Была так же дикая мысль, что телепатию чисто теоретически можно обосновать именно наличием синхронизации и слабыми связями в системе. Но это просто мои уже досужие размышления)
                                0
                                Ведь моз — это тоже очень сложная система)
                                  0
                                  Опечатка — мозг
                                0
                                Скажите пожалуйста, а вы хотя бы примерно не помните, в чем был основной принцип синхронизации? Что-то мне подсказывает, что добиться полной синхронизации двух генераторов не получится. В предельном случае будут слабые биения. Или там допускалось некоторое расхождение, которое потом нивелировалось некоторым образом для получения дискретного значения настройки…

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

                                Или же там рассматривались как раз математические модели таких аттракторов?
                                  +1
                                  Рассматриваются, конечно матемтические модели пржеде всего
                                  Смысл синхронизации в том, что есть две системы со слабой связью (какой-то параметр)
                                  И вот при прошествии некоторого времени начинает наблюдаться синхронизации — частотная, например
                                0
                                Например вот: www.dissercat.com/content/khaoticheskaya-sinkhronizatsiya-v-sistemakh-tsifrovykh-ostsillyatorov
                                Девайс вполне работал, хотя и был собран на сигнальных процессорах.
                                +5
                                Извините, может сложиться впечатление, что я придираюсь. Отнюдь, просто стараюсь несколько повысить качество материала. Тема действительно важная, а популяризация важна особенно. Но популяризация не подразумевает упрощение до дибилизма. (яркий пример — Е. Малышева).
                                Общий тон задан правильно, но всё время не покидает ощущение, что у автора путаются мысли. Некоторые логические выводы вообще не являются логическими. Например, цитата:
                                «Все мы знаем, что компьютер (вопреки расхожим слухам) является строго детерминированной системой, и это создаёт известный принцип «garbage in garbage out».»
                                1) Компьютер действительно не является детерминированной системой в области вычислений с плавающей точкой. Я не разбирался в работах Лоренца, но что то мне подсказывает, что даже если бы его программа не округляла данные перед выводом на печать, результат был бы схож.
                                2) Даже если компьютер является детерминированной системой — как это «создаёт известный принцип «garbage in garbage out»»?! А что, если бы он не был детерминированной системой, принцип GIGO в нем бы не работал?

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

                                Если говорить про популярную статью, то когда мы первый раз вводим понятие «аттрактор» было бы неплохо пояснить что это. А лучше еще и нарисовать. А то пример про сердце (часть моей диссертации как раз занимает анализ вариабельности сердечного ритма по Баевскому) мне пришлось перечитывать несколько раз даже при том, что я видел как оно реально выглядит.

                                Я понимаю, что критиковать всегда проще, чем писать, но надеюсь, что вы прислушаетесь к моим замечаниям.
                                  0
                                  Спасибо за такой развёрнутый комментарий! Всё принял к сведению.
                                  Про Garbage In Garbage Out скорее было сказано с иронией. Это я к тому, что если в компьютер вводить верные данные, то и результат будет надёжен, а в случае Лоренца верные данные привели к неожиданным результатам, прямо машинная душа какая-то. И, да, наверное если бы округления до печати не было, то всё равно отклонение было бы заметно, просто не так быстро. И если бы компьютер не был детерминированной системой, тогда принцип Garbage In Garbage Out мог бы быть Garbage Out при любом In.
                                  На счёт нелинейностей тоже, в принципе, согласен. Но что касается индуктивностей, конденсаторов и резисторов, то они часто называеются линейными. Это происходит от стремления людей всё линеаризировать (linearise, then analyse), т.к. линейных процессов в природе вообще нет. А так как в схеме присутствует ярко выраженный нелинейный элемент, то слабыми нелинейностями остальных можно пренебречь.
                                  Ко всему прислушался, спасибо!
                                    0
                                    Вам спасибо, пишите ещё! (:
                                    +2
                                    Компьютер действительно не является детерминированной системой в области вычислений с плавающей точкой.


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

                                    Если программу каждый раз запускать с одними и теми же исходными данными, а также запретить ей доступ к счетчику тактов, системному времени и прочим меняющемся вещам, то она всегда будет выдавать одинаковые результаты, даже если в ней используется ГСЧ.

                                    Я не разбирался в работах Лоренца, но что то мне подсказывает, что даже если бы его программа не округляла данные перед выводом на печать, результат был бы схож.


                                    Для того, чтобы вывести данные на печать без округления, их надо вывести в бинарном виде, в противном случае без округления обойтись не удастся. Если бы Лоренц использовал именно такой способ сохранения промежуточных данных, то результаты получались бы одинаковыми — см. пункт про детерминированность.
                                      0
                                      Согласен, был не точен (про ГСЧ это вы тонко пошутили).
                                      Ну так кто ж ей этот доступ запрещать то будет? Большинство учёных не является системными программистами. В этом смысле можно считать, что система является не детерминированной.
                                        +1
                                        Ну так кто ж ей этот доступ запрещать то будет?

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

                                        Вот скажите мне, какой программист будет использовать в своей программе системное время, если он пишет программу для предсказания погоды?
                                          0
                                          Вы же понимаете, программисты разные бывают. Дело ж не только в системном времени. Задачи с вычислением больших чисел с плавающей запятой встречаются в науке повсюду. Я видел у себя в институте годами работающий софт, в котором проводилось сравнение вещественной переменной на равенство определённому значению.
                                            +1
                                            И, тем не менее, из вычислительных недетерминированных алгоритмов я знаю только метод Монте-Карло. Все остальные вычислительные алгоритмы — детерминированные.
                                              0
                                              Да ладно. Вы, наверное, не так глубоко знакомы с алгоритмами. Есть множество недетерминированных вычислительных алгоритмов. Начиная от известного и простого в реализации сбалансированного бинарного дерева поиска под названием декартово дерево, заканчивая разными вероятностными алгоритмами, например, построения триангуляции Делоне, поиска максимального паросочетания в недвудольном графе и разных других.
                                                0
                                                Это вы перечислили структуры данных и геометрические алгоритмы. А вот в области вычислительной математики я таковых не встречал.
                                                  –1
                                                  Да сколько угодно. Самый популярный из ныне используемых — метод дифференциальной эволюции, который широко используют в задачах оптимизации. Он находится где-то между генетическими алгоритмами и т.н. псевдоградиентными методами оптимизации. Я уже не говорю про обширный класс методов Монте-Карло, используемых для решения вполне детерминированных задач (типа банального интегрирования).

                                                  Вообще Кнут вроде бы говорил, что в любой достаточно сложной программе используется хотя бы один генератор случайных чисел. И программы из области вычислительной математики тут не исключение (ну, конечно, если не говорить о понимании вычислительной математики уровня лаб по численным методам).
                                                    0
                                                    Пожалуйста, читайте обсуждение с начала, а не только последнюю реплику
                                                      0
                                                      Я внимательно прочитал все обсуждение и видел упоминание метода Монте-Карло. Именно поэтому я написал про класс методов Монте-Карло, который разросся и ушел очень далеко от тех времен, когда его придумали для задач расчета защиты ядерных реакторов. Сейчас это большой класс методов, широко применяемых повсюду в вычислительной математике, часто без упоминания самого метода Монте-Карло как прародителя. В первую очередь это алгоритмы т.н. бутстрапа данных и алгоритмы стохастической оптимизации. Так что Ваше "А вот в области вычислительной математики я таковых не встречал" связано в основном с поверхностным знакомством с этой областью.
                                                        0
                                                        Посмотрите еще одним моим комментарием выше. Если это так трудно, могу процитировать:
                                                        И, тем не менее, из вычислительных недетерминированных алгоритмов я знаю только метод Монте-Карло.

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

                                                        PS да, про генетические и эволюционные алгоритмы я забыл, и их действительно можно применять для вычислительных задач. Но я затрудняюсь придумать способ применения их к задачам из области «чистой» вычислительной математики, таким как задача Коши высокого порядка в частных производных (а задача, о которой шла речь в статье, является именно такой).
                                                          0
                                                          Я уже сказал, что видел Ваше упоминание метода Монте-Карло.

                                                          я затрудняюсь придумать способ применения их к задачам из области «чистой» вычислительной математики, таким как задача Коши высокого порядка в частных производных (а задача, о которой шла речь в статье, является именно такой)

                                                          Ну, во-первых, осциллятор Чуа описывается вовсе не системой уравнений в частных производных, а системой трех обыкновенных дифференциальных уравнений. Очевидно же, что система не распределенная, а сосредоточенная. Ну и это сходу видно из приведенных в статье формул, несмотря на кем-то зачем-то нарисованные кругленькие буквы d.

                                                          Во-вторых, пожалуйста: для обыкновенных дифур и для уравнений в частных производных.
                                                            0
                                                            Я имел в виду не осциллятор Чуа, а прогноз погоды. А за ссылки спасибо. Теперь есть чем пугать студентов с Примы.
                                                              0
                                                              [режим-зануды] Вы будете смеяться, но система Лоренца — это тоже система из трех обыкновенных дифференциальных уравнений, хотя она действительно появилась из задач, связанных с погодой. Изначально ее выписал Салзман (Salzman) в 1962 году, редуцировав уравнение гидродинамики, описывающее конвекцию в подогреваемом снизу тонком горизонтальном слое жидкости. [/режим-зануды]
                                                                0
                                                                Да уж… Теперь «точность» этой модели становится вполне понятна.
                                      0
                                      Линейный/нелинейный элемент — это скорее профессиональный жаргонизм. Линейной/нелинейными являются функции (законы), описывающие взаимосвязь их характеристик. В случае конденсатора, резистора, катушки как объекта теории цепей — линейные законы связи тока и напряжения. В случае ОУ — уже нелинейные законы.

                                      В том абзаце, в котором автор упомянул линейность, разговор шел о теоретической электрической схеме. Опять же объекте теории цепей, в которой катушка, конденсатор, резистор — элементы с линейными математическими моделями. Так что тут всё гладко)

                                      А вот абзац про пропорциональность лучше перекроить, она тут не при чем. Тех, кто не в теме, сильно запутает.
                                        0
                                        вы правы, меня несколько понесло и я спутал реактивность с нелинейностью.
                                      0
                                      Синергетика, теория хаоса… Мы такие графики в универе рисовали, в экселе :) Прям, ностальгия взяла.
                                        0
                                        Насколько я понял, в статье слово «Энтропия» заменено словом «Хаос». Лучше звучит конечно, но не совсем понятно зачем так сделано. При этом слово «Детерминированность» так и написано, хотя можно было бы поставить «Порядок».

                                        Про энтропию много чего написано, даже несколько лабораторных на эту тему в институте было. То есть тема достаточно старая. Кому интересно, можете по слову «энтропия» поискать, мне кажется будет больше информации чем по слову «хаос».
                                          0
                                          Энтропия — одна из числовых характеристик систем с недетерминированным поведением (если конечно откинуть все лженаучные манипуляции вокруг этого слова). Энтропию можно вычислить и для истинно стохастических систем и для систем с динамическим хаосом и от этого они не станут более похожими друг на друга (для них можно вообще много одинаковых характеристик вычислять). Стохастика и хаос — две разные модели возникновения случайности, отличающиеся по природе возникновения случайности.
                                          0
                                          Моё личное мнение. Не пойму в чем новая идея в теории. Проблема в том, что в любом практическом эксперименте начальные условия — это не только то, что хотел экспериментатор, а то, в каком состоянии находится вся вселенная в принципе, чего учесть изнутри неё никак нельзя. Всё что можно сделать — это чтобы влияние неучтенной части условий эксперимента было мало по отношению к учтенной. Когда это соотношение становится небольшим — тогда система переходит в непредсказанное (но не непредсказуемое) состояние. Поэтому на практике все математические модели эксперимента никогда не соблюдаются абсолютно точно.
                                          Вероятность — это ожидаемая мера учтенности условий. Самой вероятности и хаоса как таковых нет. Это способ математически сказать, что мы не в состоянии учесть всё.
                                          В описанном вами эксперименте идет циклическое накопление погрешности или «хаоса» в системе с течением времени, «хаос» при том совсем даже не хаос, а проекция состояния «всего» на кинетические характеристики наблюдаемого множества электронов. Эдакий конденсатор шума. Конечно, то что физически ближе к системе влияет на неё сильнее — наведенные тепловые и электромагнитные воздействия и т.д.
                                          А само пространство и время построены на детерминированных законах. Т.е. да, я считаю что всё предопределено.
                                            0
                                            По моему мнению, эта теория говорит о том, что мы никогда не сможем делать долгосрочные прогнозы в нелинейных динамических системах, т.к. мы никогда не сможем с необходимой точностью задать начальные условия. Т.е. как бы нам ни хотелось измерить некую величину абсолютно точно, нам это сделать не удастся из-за конечной точности наших инструментов.
                                            Возможно, всё и предопределено, но мы никогда не сможем эту определённость увидеть достаточно далеко. И, как я понимаю, то, что мы не видим и называется «хаос».
                                              0
                                              imho, тут возможен еще один вывод. Да, мы не сможем «абсолютно точно» предсказать поведение сложной системы. На то она и сложная система. Однако мы можем проследить тренд, предположить в каком диапазоне состояний будет пребывать система. Для большинства задач этого достаточно.
                                              В этом смысле понятен скепсис нейрофизиологов касательно понятия «загрузка сознания», т.к. даже если мы считаем состояние всех нейронов и синапсов в текущий момент в ГМ и перенесём это в кремний, то скорее всего с следующий момент состояния этих нейронов и синапсов в кремнии и в ГМ будут отличаться.
                                              Другой пример — создание генетически модифицированных организмов. Вот поменяли мы ДНК, загнали её в клетку донор — далеко не факт, что в конечном итоге получится именно то, что мы ожидали. Молекулярные машины тоже ошибаются. Но вот если мы сделаем подобное для 1000 организмов, то в конечном итоге большинство, даже с учетом всех возможных мутаций, всё равно приобретут требуемые характеристики.
                                              Думаю, теория хаоса безумна важна хотя бы потому, что гипотетически позволяет объяснить как из простых компонентов в случае их комбинации в миллиардах экземплярах, мог зародиться такой феномен, как жизнь.
                                                +1
                                                Да предполагать мы можем. С определенной вероятностью :) Если взять всеми любимый мешок с черными и белыми шарами, положить в него всего 2 шара — один белый, один черный и сделать 100500 миллиардов выборок, то вероятность вытащить шар определенного цвета будет стремиться к 0.5, но не абсолютно равна ей. Даже больше. Если в мешок положить всего 1 шар, то вероятность вытащить шар того цвета, который положили на практике будет стремиться к 1, но не равна ей :) Т.е. положили в мешок белый шар, а вытащили черный. А может красный. А может и не шар. А может и не вытащили. При осознании этого факта сначала немного сносит башню. Почему так получается? Слишком много неизвестных. Может шар легко окисляется, может он пластичен, может мешок с дыркой. Напомню что мы про практику. В математической модели то всё прекрасно.
                                                Поэтому всё на что мы способны изнутри вселенной — это стараться учесть как можно больше, и результат никогда не будет гарантирован. Это по тому, что на практике хорошо работает закон дырявых абстракций. Условия эксперимента оперируют понятиями «шар», «молекула», «элементарная частица». Всё это макро-понятия, абстракции.
                                                100% гарантию чего-то можно дать при простом условии. 1. Мы знаём всё состояние всего пространства и времени в любой момент, а так же все законы, по которым оно развивается. 2. Мы знаем нужное нам состояние пространства времени или его части и, возможно момент, когда этого состояния надо достичь. Тогда мы можем выбрать момент, воздействие на вселенную и его длительность, что-бы получить нужный нам результат. Также надо учитывать, что само воздействие не моментально и на него, в процессе воздействия тоже влияет система. Т.к. воздействие само описано в терминах пространства-времени, как бы было иначе :) Это т.н. эффект наблюдателя. В общем довольно веселая получается картина. Что-бы гарантировать хоть что-но надо быть Богом :)
                                                Представленный тут «эффект бабочки» я бы разделил на 2 составляющие.
                                                1. Если один эксперимент повторить несколько раз, то при одинаковых начальных условиях в каждый новый раз результат может быть другим, по тому что, что-бы действительно повторить эксперимент надо «отмотать назад» состояние всей вселенной.
                                                2. Любое событие влияет на будущее состояние вселенной, и его влияние расширяется во времени. Так происходит из-за немгновенного распространения влияния события — энергии, полей, материи. Эффект бабочки вполне естественен. Ничего удивительного в нем не вижу.
                                                Почему я считаю, что всё так? По моему всё хорошо видно из законов, описывающих силу воздействия. Будь то масса, заряд. С расстоянием воздействие уменьшается, с этим спорить трудно. Но ведь воздействие лишь стремится к 0 с ростом расстояния! Стремиться, но не равно. Это значит, что любая частица во вселенной всегда связана с любой другой, вопрос лишь в относительной силе воздействия.
                                                Так же могут возникать всякие интересные резонансные эффекты. Например, пустили мы электрон в ускорителе, а он взял и отклонился, хотя не должен был. По тому, что в какой-то момент времени суперпозиция всех всех воздействий всех частиц во вселенной оказалась достаточной для этого.
                                                Взять например постоянный магнит. Вроде бы просто одновременное совпадение очень большого числа событий, одинаково летают электроны. Зато какой эффект!
                                                Повторю, что это моё личное чайниковское мнение.
                                                  0
                                                  Я мог бы съесть батон за раз, а мог бы и за два. А мог бы и не съесть, а мог бы не батон.
                                                  imho ваш пример с шарами не удачен. Мешок с 2 шарами это примитивная макро система, которая отклоняется от мат. модели только в случае подтасовки, и вероятность вытащить из него что то иное всё-таки равна нулю. Особенность теории хаоса (если сравнивать её с другими системами, использующими теорию вероятностей) в том, что она оперирует действительно сложными системами с безумно большим количеством элементов. Отсюда и загадка — как все эти мириады частиц упорядочиваются.
                                                  А так да, с вашей аргументацией сложно спорить.
                                              0
                                              А само пространство и время построены на детерминированных законах.


                                              В квантовой механике так не считается.
                                              0
                                              а также создадим второй столбец, копируя значения из первого
                                              Речь идет о методе временных задержек: F. Takens. Detecting Strange Attractors in Turbulence // Lecture Notes in
                                              Mathematics. — 1981. — №898. — P. 366—381
                                              Смысл в том, что в сложных системах взаимодействия таковы, что даже по одной измеренной переменной состояния можно судить о динамике системы в целом. Таким образом, можно восстановить эквивалентную фазовую траекторию из одного временного ряда по методу временных задержек, который и упомянут. В общем виде выглядит примерно так: Umi = (ui, ui+τ, ui+(m-1)τ), где m — размерность реконструируемого фазового пространства, U — вектор в реконструируемом ф.п., u — значения исходного временного ряда, τ — индексная временная задержка.

                                              Вот так выглядит аттрактор Лоренца, сгенерированный по стандартным параметрам (слева) и реконструированный из х-компоненты (очевидно сохранение топологии аттрактора):
                                                0
                                                Гадкий парсер все испортил.

                                                Первая строка — цитата.

                                                В формуле испорчены верхние и нижние индексы.

                                                Картинка вот: toilet.spb.ru/img/lor-rec.png
                                                –4
                                                в лесах Бразилии зависит случиться ли

                                                в лесах Бразилии зависит, случится ли
                                                  0
                                                  Попробовал сэмулировать в Протеусе — не завелось. Глубоко пока не раскапывал, но обязательно надо будет добить
                                                    +1
                                                    Мне кажется, Вы зря не подчеркнули, что хаотическое поведение вполне уживается с детерминированностью. Т.е. эти понятия вообще не антагонистичны и динамический хаос наблюдается как раз в строго детерминированных системах в отличие от стохастических систем, где случайность имеет иную природу. Впрочем, с этим связано столько заблуждений, что возможно, это только увеличило бы количество недоуменных вопросов.
                                                      0
                                                      Не могли бы вы уточнить в статье что потенциометр на схеме — это резистор R? Из текста это не совсем очевидно.

                                                      Only users with full accounts can post comments. Log in, please.