Содержание Лабораторная работа № 1. Работа в командном окне системы MatLAB ..........................................................................3 Цель работы ...............................................................................................................................3 Введение .....................................................................................................................................3 Типы данных ..............................................................................................................................4 Действия над матрицами ..........................................................................................................4 Построение графиков. ...............................................................................................................6 Поиск решения уравнения ........................................................................................................7 Задание на лабораторную работу.............................................................................................8 Литература к лабораторной работе №1 ...................................................................................8 Лабораторная работа № 2. Построение трехмерных графиков. Программирование в MatLAB ................................9 Цель работы ...............................................................................................................................9 Построение трехмерных графиков ..........................................................................................9 Программирование в системе MatLAB .................................................................................10 Задание на лабораторную работу...........................................................................................13 Литература к лабораторной работе №2 .................................................................................14 Лабораторная работа № 3. Вычисление определенных интегралов в среде MatLAB ..................................................15 Цель работы .............................................................................................................................15 Вычисление определенных интегралов ................................................................................15 Аналитические вычисления....................................................................................................16 Решение систем линейных уравнений ..................................................................................16 Задание на лабораторную работу...........................................................................................16 Литература к лабораторной работе №3 .................................................................................17 Лабораторная работа № 4. Хаотические свойства нелинейных систем ..........................................................................18 Цель работы .............................................................................................................................18 Введение ...................................................................................................................................18 Дискретные отображения .......................................................................................................18 Порядок построения паутинной диаграммы.........................................................................20 Задание на лабораторную работу...........................................................................................20 Варианты заданий ....................................................................................................................21 Пояснения к выполнению лабораторной работы .................................................................21 Литература к лабораторной работе №4 .................................................................................21 Лабораторная работа № 5. Дискретные отображения и бифуркационные диаграммы ..............................................22 Цель работы .............................................................................................................................22 Основные сведения о бифуркационных диаграммах...........................................................22 Порядок построения бифуркационной диаграммы ..............................................................22 Задание на лабораторную работу...........................................................................................23 Варианты заданий ....................................................................................................................23 Пояснения к выполнению лабораторной работы .................................................................23 Литература к лабораторной работе №5 .................................................................................24 1 Лабораторная работа № 6. Карты динамических режимов и решетки связанных отображений..............................25 Цель работы .............................................................................................................................25 Основные сведения о картах динамических режимов .........................................................25 Решетки связанных отображений ..........................................................................................26 Задание на лабораторную работу...........................................................................................28 Литература к лабораторной работе №6 .................................................................................29 Лабораторная работа № 7. Фазовые портреты динамических систем. ...........................................................................30 Цель работы .............................................................................................................................30 Основные сведения о фазовом пространстве .......................................................................30 Построение аттракторов .........................................................................................................31 Фрактальная размерность и показатель Хёрста ...................................................................31 Задание на лабораторную работу...........................................................................................32 Пояснения к выполнению лабораторной работы .................................................................32 Литература к лабораторной работе №7 .................................................................................33 2 Лабораторная работа № 1. Работа в командном окне системы MatLAB Цель работы Целью данной лабораторной работы является ознакомление с основами работы в среде MatLAB: изучение типов используемых данных, работа с массивами, построение графиков и т.д. Введение После запуска системы MatLAB на экране появиться окно, показанное на рис. 1.1, предназначенное для ввода команд и вывода результатов. Рис. 1.1. Командное окно системы MatLAB Знак «>>» показывает готовность системы к выполнению введенных команд. Набрав простейшие математические выражения в естественной форме записи, сразу же вычисляется результат. Это выражение может быть записано в двух видах: <Выражение> или <Имя переменной> = <Выражение>. Во втором случае результат не только вычисляется, но и присваивается указанной переменой. MatLAB не требует от пользователя специальных команд для объявления переменных, они создаются автоматически при первом указании пользователем их имени. В первом случае на самом деле результат выражения присваивается специальной служебной переменной имеющей 3 имя ans, так же можно использовать эту переменную в расчетах. Если нет необходимости, что бы MatLAB выводил результаты промежуточных выражений на экран, то необходимо поставить в конце выражения символ «;». Типы данных Фактически MatLAB содержит один тип данных - массив или матрица. Массив это группа ячеек памяти, имеющие одно имя. Массивы бывают одномерные - строка или столбец, прямоугольные, квадратные (число строк рано числу столбцов). Когда Вы указываете переменную и присваиваете ей одно число, фактически MATLAB создает матрицу из одной строки и одного столбца. Ниже приведены примеры столбца – а, строки – б, прямоугольной матрицы – в, квадратной матрицы – г, матрицы единичной размерности – е (простой переменой). а б е в г Рис. 1.2. Виды матриц Помимо одномерных и двумерных матриц MatLAB поддерживает ряд других типов данных. К ним относятся многомерные массивы, строки, структуры, массивы ячеек, а также объекты. Действия над матрицами 1. Создание матриц Простейшей операций с матрицей является ее создание. Для создания строки необходимо указать его имя, знак равенства и в квадратных скобках через запятую или через пробел перечислить значения элементов: >> А=[1 2 3 4 5]; В случае если необходимо создать столбец чисел, то в качестве разделителя выступает символ точка с запятой: >> B=[1 ; 3 ; 5 ; 7]; Для создания квадратной или прямоугольной матрицы понадобится чередовать оба этих способа. >> С=[1 2 3 ; 4 5 6 ; 7 8 9]; 2. Создание матриц специального вида: Для генерации векторов пользователю предоставляется следующая команда: <Имя вектора>=<Начальное значение>:<Шаг>:<Конечное значение> >> Х=6 : 0.2 : 26; В результате получиться вектор X следующего вида: 6 6.2 6.4 6.6 … 25.6 25.8 26 В математике часто встречаются матрицы специального вида. Ниже приведен ряд из них: Единичная матрица, рис. 1.3.а. В единичной матрице все элементы равны нулю, кроме элементов стоящих на главной диагонали (матрица является квадратной). Для 4 создания единичной матрицы Вам необходимо подать команду <Имя матрицы>=eye(<Размер>); >> a = eye(4); Матрица со всеми единицами, рис. 1.3.б. Эта матрица содержит единицы во всех ячейках. Для создания матрицы необходимо указать <Имя матрицы>=ones(<Кол-во строк>, <Кол-во столбцов>); >> b = ones(3, 4); Нулевая матрица, рис. 1.3в. Эта матрица содержит во всех своих ячейках одни нули. Для создания необходимо выполнить следующую команду: <Имя матрицы>=zeros(<Кол-во строк>, <Кол-во столбцов>); >> c =zeros(4, 2); Случайная матрица, рис. 1.3.г. Все значения этой матрицы получаются с генератора случайных чисел. Для создания такой матрицы необходимо дать следующую команду: <Имя матрицы>=rand(<Кол-во строк>, <Кол-во столбцов>); >> d =rand(3, 4); 1 0 0 0 0 1 0 0 а 0 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 б 0 0 0 0 в 5 4 0 6 1 3 г Рис. 1.3. Специальные матрицы. 3. Доступ к ячейкам матрицы. Для доступа к ячейкам матрицы необходимо указать имя матрицы, номер строки и номер столбца. Нумерация строк и столбцов ведется с ЕДИНИЦЫ! Номера пишутся в круглых скобках. Общий формат записи: <Имя массива>(<Номер строки>, <Номер столбца>); >> d(3,2) ans = 2 >> d(3,1) >> d ans = 5 4 9 = 9; 6 1 3 4. Умножение, деление матрицы на скаляр. В математики для всех матриц определена операция умножения (деления) матрицы на скаляр (число) – «.*» («./»). Все значения матрицы в этом случае умножаются (делятся) на это число. A(1,1) A(2,1) A(3,1) A(1,2) A(2,2) A(3,2) A(1,3) A(2,3) A(3,3) .* r = A(1,1).*r A(2,1).*r A(3,1).*r A(1,2).*r A(2,2).*r A(3,2).*r A(1,3).*r A(2,3).*r A(3,3).*r 5 5. Сложение, вычитание скаляра из матрицы. Кроме операции умножения матрицы на скаляр, для матрицы и скаляра определены операции сложение «+» и вычитания «–». Действия так же выполняются с каждой ячейкой матрицы отдельно. 6. Сложение, вычитание матриц. Эта операция допустима только с матрицами одинакового размера. При выполнении операции действие выполняется с соответствующими друг другу ячейками. Пример: а(1,1) а(1,2) а(1,3) а(2,1) а(2,2) а(2,3) а(3,1) а(3,2) а(3,3) + b(1,1) b(1,2) b(1,3) b(2,1) b(2,2) b(2,3) b(3,1) b(3,2) b(3,3) = а(1,1)+ b(1,1) а(1,2)+ b(1,2) а(1,3)+ b(1,3) а(2,1)+ b(2,1) а(2,2)+ b(2,2) а(2,3)+ b(2,3) а(3,1)+ b(3,1) а(3,2)+ b(3,2) а(3,3)+ b(3,3) 7. Произведение матриц. При выполнении операции перемножения матриц выполняется последовательное умножение строки на столбец. При этом количество столбцов в первой матрице должно равняться количеству строк во второй матрице. Матрица результата будет иметь столько же строк, сколько и в первой матрице, и количество столбцов равное количеству столбцов во второй матрице. A(1,1) A(1,2) A(1,3) A(2,1) A(2,2) A(2,3) * B(1,1) B(1,2) B(2,1) B(2,2) B(3,1) B(3,1) = A(1,1)*B(1,1)+ A(1,2)*B(2,1)+ A(1,3)*B(3,1) A(2,1)*B(1,1)+ A(2,2)*B(2,1)+ A(2,3)*B(3,1) A(1,1)*B(1,2)+ A(1,2)*B(2,2)+ A(1,3)*B(3,2) A(2,1)*B(1,2)+ A(2,2)*B(2,2)+ A(2,3)*B(3,2) Построение графиков. Вывод одного графика MatLAB предоставляет следующие функции для работы с графикой: plot(<Массив>) – построение графика значений из массива Х от номера отсчета. plot(<Массив точек по оси Х>,<Массив точек по оси Y>) – построение графика значений из массива Y от значений из массива Х. При вызове команды создается окно с указанным графиком. Вывод нескольких графиков Для вывода нескольких графиков на одном окне Вам необходимо указать их последовательно, например: >> t=-10:0.1:10; >> x1=sin(t); >> x2=cos(t)./t; >> plot(t,x1,t,x2) или 6 >> >> >> >> >> >> t=-10:0.1:10; x1=sin(t); x2=cos(t)./t; plot(t,x1) hold on; plot(t,x2) Вывод на экран сразу нескольких графиков предоставляет простейший способ найти приблизительное значение решения. Рис. 1.4. Иллюстрация графического метода решения На данном графике представлены графики функций y=sin(t)/t и (x/5)2+y2=1. Как не трудно заметить данные функции имеют три точки пересечения. Поиск решения уравнения Графическим методом можно лишь примерно оценить решение. Для решения уравнений или систем уравнений в среде MATLAB используются процедуры fzero и fsolve. Процедура fzero служит для нахождения нулей функции одного переменного y = f(x). Рассмотрим решение такой задачи: необходимо найти значение x, при котором функция f(x)=x2 – 5 равна 0 вблизи точки x=2. >> x0=fzero('x^2-5',2) x0 = 2.2361 Для решения систем нелинейных уравнений в среде программирования MATLAB используется процедура fsolve. Процедура fsolve решает уравнения и системы уравнений следующего вида: F(X) = 0. Рассмотрим случай определения нулей функции одного переменного: >> x=fsolve('sin(4*x)',1,optimset('Display','off')) x = 0.7854 Рассмотрим подробней формат вызова fsolve: – первый параметр задает функцию; – второй, что решение будет найдено возле точки 1; – optimset('Display','off') – отключить вывод на экран сообщения о результатах оптимизации. 7 Задание на лабораторную работу Графически и при помощи функций найти: 1. Пересечение двух кривых: y = x2 – 5x + 3 и y = 7x – 4. 2. Найти точку экстремума функции y = (x+2)(x-4); 3. Дан треугольник ABC: A(-1;-2), B(-1;4), C(5;4). Найти координаты основания перпендикуляра, опущенного из точки B на сторону AC. 4. Найти основание перпендикуляра, опущенного из точки A(3;10) на окружность радиуса 4, с центром в начале координат. 5. На графике функции y = (5+x)(5-x) определить точки, касательная в которых имеет угол наклона. Литература к лабораторной работе №1 1. Мартынов Н.Н. Иванов А.П. MatLAB 5.x Вычисления. Визуализация. Программирование – М.: КУДИЦ-ОБРАЗ, 2000. – 366 с. 2. Сергиенко А.Б. Цифровая обработка сигналов – СПб.: Питер, 2002. – 608 с.: ил. 3. http://www.adubanov.narod.ru/ 4. www.matlab.ru 5. www.exponenta.ru 8 Лабораторная работа № 2. Построение трехмерных графиков. Программирование в MatLAB Цель работы Целью лабораторной работы является изучение языка программирования среды MatLAB. Основной задачей ставится изучение типовых конструкций языка, таких как функции, условия и циклы. Также внимание уделяется построению трехмерных графиков. Построение трехмерных графиков Для построения трехмерных графиков, во-первых, понадобится создать сетку координат на плоскости. Выполняет это функция [X,Y]=meshgrid(x,y), где x и y одномерные массивы, а X и Y - полученные в результате двухмерные массивы. Если массивы x и y одинаковые, то достаточно указать [X,Y]=meshgrid(x). Например: >> [X,Y]=meshgrid([-2:0.1:2]); После этого описывается сама функция, например >> Z=X.*exp(-X.^2-Y.^2); После этого подается команда на вывод трехмерного графика: >> plot3(X,Y,Z); Результат исполнения для данного примера приведен на рис. 2.1. Рис. 2.1. Вывод трехмерных графиков Помимо этой простейшей функции система MatLAB располагает ещё рядом функций, позволяющих добиваться большей реалистичности в изображении трехмерных графиков. Это функции mesh, surf и surfl. К примеру, вместо ранее показанного при помощи функции plot3 графика, можно вызовом функции mesh получить следующий график (рис. 2.2). >> mesh(X, Y, Z); 9 Рис. 2.2 Вывод трехмерных графиков. Программирование в системе MatLAB Программирование в системе MatLAB очень близко к обычному программированию. Программа создается в любом текстовом редакторе. Файл должен иметь расширение *.m. Текст М-файла функции должен начинаться с заголовка function, имеющего следующий вид: function [y1, y2, …] = fname(x1, x2, …) Здесь fname – имя функции, х1, х2 и т.д. – входные параметры, у1, у2 и т.д. – выходные параметры. Входные и/или выходные параметры могут отсутствовать. На самом деле имя функции определяется не строкой fname, а именем, под которым сохранен М-файл, оно должно совпадать с именем функции. В качестве примера создадим функцию myfunc, которая будет строить трехмерных график предыдущего примера и принимать три входных параметра: точку начала построения графика, точку окончания построения, шаг. Для этого, открыв окно редактора командой меню File -> New -> M-file, вводим текст: function myfunc(x1, x2, step) [X,Y]=meshgrid([x1: step : x2]); Z=X.*exp(-X.^2-Y.^2); mesh(X, Y, Z); Введя текст, необходимо сохранить файл под именем myfunc. Для того чтобы функция была доступна из системы MatLAB, система должна быть способна найти соответствующий М-файл. Поиск файлов осуществляется следующим образом: сначала просматривается текущий рабочий каталог (его имя показано в панели инструментов главного окна, рис 1.2), а затем каталоги, входящие в путь поиска (MatLAB search path). Для вызова M файла необходимо набрать его имя в командной строке MatLAB, и если необходимо его аргументы. Важным элементом, облегчающим программирование, являются комментарии. Строка комментария начинается в MatLAB символом ‘%’. Проверка условия Оператор проверки условия позволяет организовать разветвление исполнения программы. Внешний вид оператора представлен на рис.2.3. 10 Условие Условие Оператор Оператор Оператор Рис. 2.3. Блок-схема условного оператора: редуцированная и полная формы Формат записи оператора, редуцированная форма: if условие операторы end полная форма: if условие операторы elseif условие операторы else операторы end Ввод с клавиатуры x=input(‘строка подсказки’) x=input(‘строка подсказки’, ‘s’) Функция input выводит на экран строку подсказки и ждет ввода переменной. Функция x=input(‘строка подсказки’, ‘s’) возвращает введенную пользователем строку. При вводе переменных допустимо пользоваться стандартными функциями. Циклы MatLAB предоставляет пользователю два способа организации цикла. Первый из них цикл с известным количеством повторений. Блок-схема этого цикла представлена на рис. 2.4. Условие Оператор Продвижение по циклу Рис. 2.4. Блок-схема цикла for Формат оператора: for переменная = начальное значение : [шаг :] конечное значение операторы 11 end Поле шаг в конструкции оператора не является обязательным. Например: for i=1:100 x(i) = sin(2*PI*i/100); end Тело цикла обязательно заканчивается служебным словом end. При работе с циклом for допустимо использование оператора прерывания цикла break. При выполнении оператора break работа цикла завершается, и управление передается на следующий после конца цикла оператор. Блок-схема программы, иллюстрирующий использование оператора break, приведена на рис. 2.5. Текст программы соответствующий рис. 2.5. for i=1:100 операторы if a(i) == 0 break end операторы end Условие Операторы Условие Операторы break Продвиж ение по циклу Рис. 2.5. Иллюстрация использования оператора break Кроме цикла for в программировании на MatLAB используется цикл while. В отличие от цикла for в структуре цикла while не предусмотрены элементы для изменения переменной, по которой организован цикл. Эти элементы должен предусмотреть сам пользователь в операторах цикла. Блок-схема цикла представлена на рис. 2.6. 12 Условие Операторы Рис. 2.6. Блок-схема цикла while Формат оператора цикла с неизвестным количеством повторений: while условие операторы end Тело цикла обязательно заканчивается служебным словом end. Например, программа определения точности вычислений: a=1; while a+1 != 1 a=a/2; end a Последняя строчка программы выведет на экран значение переменной а. Задание на лабораторную работу 1. Написать программу (m-файл), которая строит график сферы или квадратной пирамиды по выбору пользователя. Выбор фигуры и длины запрашиваются у пользователя в процессе работы функции: – для сферы – это идентификатор и радиус – ‘сфера’, R. – для пирамиды – это идентификатор, высота, длина стороны основания – ‘пирамида’, h, l. 2. Написать программу (m-файл), которая строит график куба или конуса по выбору пользователя. Выбор фигуры задается как входные параметры функции: – для куба – это идентификатор и длина ребра – ‘куб’, r. – для конуса – это идентификатор, высота, радиус основания – ‘конус’, h, r. 3. Написать программу (m-файл), которая создает трехмерную матрицу и “раскрашивает” её значениями в шахматном порядке по всему объему. Значение раскрашивания зависят от входного параметра идентификации id: – id = ‘digit’ – матрица заполняется числами 1 и 0; – id = ‘char’ – матрица заполняется буквами ‘1’ и ‘0’. Входные параметры – это размерность матрицы по трём координатам, идентификатор; выходной – сама матрица. 4. Написать программу (m-файл), которая создает трёхмерную матрицу, заполненную случайными целыми числами (от 0 до 10) и производит арифметические поэлементные действия между двумерными массивами этой 13 матрицы (по любой координате внутри матрицы). Значения операции зависит от идентификатора: – id = ‘+’ – id = ‘–’ – id = ‘*’ (поэлементное умножение). Размерность матрицы по трём координатам и идентификатор запрашивается у пользователя в процессе работы функции. Выходной параметр – полученная матрица. 5. Написать программу (m-файл), которая раскрашивает черно-белый рисунок красным или зеленым или синим цветом. Цвет зависит от входного параметра: – id = 'красный'; – id = 'зеленый'; – id = 'синий'. Входной параметр – раскрашиваемый цвет. – – – – 6. Написать программу (m-файл), которая инвертировала цвета черно-белого изображения (черное в белое, белое в черное) и поворачивала рисунок на угол кратный 90 вокруг своей оси. Угол поворота зависит от входного параметра: id = 90 – поворот на 90; id = 180 – поворот на 180; id = 270 – поворот на 270; id = 0 – нет поворота; Пояснение к заданию 5 и 6: Изображения представляют собой трёхмерный массив – [x, y, z], где x, y – размеры изображения; z – значение цвета. Черный цвет = 0, белый = 255. Для черно-белого изображения размерность z = 1, для цветного размерность z = 3. Цвет состоит из трёх цветов: красного, зеленого, синего. Смешивание этих цветов и определяет различные оттенки. Литература к лабораторной работе №2 1. Мартынов Н.Н. Иванов А.П. MatLAB 5.x Вычисления. Визуализация. Программирование – М.: КУДИЦ-ОБРАЗ, 2000. – 366 с. 2. Сергиенко А.Б. Цифровая обработка сигналов – СПб.: Питер, 2002. – 608 с.: ил. 14 Лабораторная работа № 3. Вычисление определенных интегралов в среде MatLAB Цель работы Ознакомиться с некоторыми средствами математического анализа в среде MatLAB. Изучить предоставляемые пакетом возможности по вычислению определенных интегралов, дифференцированию и аналитическим вычислениям. Вычисление определенных интегралов Один из методов вычисления определенных интегралов – метод трапеций. В MatLAB'е функция, которая использует метод трапеций, называется trapz. 1 Пример. Вычислим интеграл e dx . x 1 Сначала зададим значение аргумента: >> x = -1:0.1:1; Затем вычислим значение функции в этих точках: >> y = exp(x); Вычислим интеграл и получим результат: >> int1 = trapz(x, y) int1 = 2.3524 Получить высокую точность результата можно, увеличив количество шагов интегрирования (уменьшив шаг интегрирования): >> x = -1:0.01:1; >> y = exp(x); >> int2 = trapz(x, y) int2 = 2.3504 Таким образом, чтобы получить достаточную точность, необходимо последовательно сравнивать вычисленные результаты. Однако в MatLAB'е есть функции, которые используют методы интегрирования более высоких порядков точности – quad (метод Симпсона) и quad8 (метод НьютонаКотеса 8-го порядка точности). При одном и том же шаге интегрирования методы более высоких порядков точности достигают более точных результатов (точность результата равна 0.001). Оба этих метода являются адаптивными. Это означает, что пользователю нет необходимости контролировать достигнутую точность результата путем сравнения последовательных значений, соответствующих разным шагам интегрирования. Используя функции quad и quad8, вычислим предыдущий пример. Сначала создадим подынтегральную функцию: function y = my_func(x) y = exp(x); Теперь вычислим интеграл: >> [int, cnt] = quad('my_func', -1, 1) int = 2.3504 cnt = 21 15 и >> [int, cnt] = quad8('my_func', -1, 1) int = 2.3504 cnt = 33 Входные параметры, используемые в данных функциях – название вычисляемой функции и пределы вычисления. Выходные параметры – вычисленный результат и количество точек, в которых пришлось вычислять подынтегральную функцию. Как видно по значениям cnt в данном случае функция quad8 более трудоемкая. Аналитические вычисления В системе MatLAB есть возможность не только вычислять конкретные значения выражения, но и проводить аналитические вычисления. Пример. Требуется символьно сложить два выражения x+y и 3y (ответ x+4y). Для этих целей сначала необходимо создать объект нового типа – объект sym. С этими объектами и производятся аналитические вычисления. >> f1 = sym('x+y'); >> f2 = sym('3.*y'); >> f = f1+f2 f = x+4.*y Используя аналитические вычисления можно выполнять операции символьного дифференцирования и символьного интегрирования – функции diff и int соответственно. Так же существует ещё ряд функций для работы с символьными выражениями: simplify – упрощение символьных выражений; expand – для раскрывания алгебраических и функциональных выражений; factor – раскладывание многочленов на простые множители; subs – осуществляет подстановку новых переменных для указанных символьных переменных; limits – вычисляет пределы. Решение систем линейных уравнений Для решения систем линейных уравнений в MatLAB'е существуют операции '/' и '\'. Левое деление матриц – '\'. Ay = b, где A – заданная квадратная матрица NxN, а b – заданный вектор-столбец длины N. Тогда у = A\b. Правое деление матриц – '/' – решает систему следующего вида yA = b. Задание на лабораторную работу Написать функцию, которая: 1. Вычисляет значение производной в заданной точке. Входные параметры – функция («экспоненциальная», «логарифмическая», «степенная»), координата точки; выходные – значение производной. 2. Вычисляет площадь фигуры, ограниченную полиномом второй степени. Входные параметры – коэффициенты полинома, пределы интегрирования; выходной – площадь. 3. Вычисляет производную полинома второй степени и выводит график исходной функции и производной. Входные параметры – коэффициенты полинома. 16 4. Находит экстремумы полиномов 3-го порядка. Входные параметры – коэффициенты полинома; выходные – координаты экстремумов. 5. Вычисляет интеграл заданных функций. Входные параметры – функция («экспоненциальная», «логарифмическая», «степенная»), пределы интегрирования; выходные – значение интеграла. 6. Вычисляет скорость и ускорение физического тела в заданной точке. Тело движется по кривой описываемой полиномом третьей степени. Входные параметры – коэффициенты полинома, координата точки; выходные значение скорости и ускорения. Литература к лабораторной работе №3 1. Мартынов Н.Н. Иванов А.П. MatLAB 5.x Вычисления. Визуализация. Программирование – М.: КУДИЦ-ОБРАЗ, 2000. – 366 с. 2. Сергиенко А.Б. Цифровая обработка сигналов – СПб.: Питер, 2002. – 608 с.: ил. 17 Лабораторная работа № 4. Хаотические свойства нелинейных систем Цель работы Познакомиться с хаотическими свойствами простых нелинейных систем. Исследовать при помощи паутинных диаграмм хаотические свойства нелинейных дискретных отображений. Введение Данная лабораторная работа посвящена исследованию явления в нелинейных системах, получившего название детерминированного хаоса1. Этот вид хаоса порождается не случайным поведением большого количества элементов системы, а внутренней сущностью нелинейных процессов. Одной из простейших задач, демонстрирующей хаотичность поведения системы является нелинейный рост популяции, описываемый логистическим уравнением xn1 xn (1 xn ) . На этом примере мы познакомимся с хаотическим поведением нелинейной динамической системы. Независимо от конкретной физической природы любой объект является динамической системой, если можно указать такой набор величин (называемых динамическими переменными и характеризующих состояние системы), значения которых в любой последующий момент времени выводятся из начального набора по определенному правилу – закону эволюции. Дискретные отображения Рассмотрим функцию, отображающую некоторое множество само с себя: f :M M . (n) Итерация f функции f определяется как композиция f с самой собой n раз: f 0 f , f n f n1 f . Итерацию можно выразить другим способом: f n x f f f x . n Поскольку каждая точка x M под действием итераций функции f перемещается по множеству М, то функция f задает дискретную динамическую систему, т.е. некое движение на множестве М с течением дискретного времени n. Если для некоторой точки x M определены все итерации f n x , то множество f n x : n N называется орбитой точки x под действием функции f. Точка x называется неподвижной точкой функции f, если f n x x для любого n. Неподвижная точка x функции f называется притягивающей, если все точки из некоторой ее окрестности стремятся к x под действием итераций функции f; и отталкивающей, если все точки из некоторой окрестности покидают эту окрестность под действием итераций. Если неподвижная точка является притягивающей либо отталкивающей, то она также называется гиперболической. Точка x называется периодической точкой функции f периода k, если f k x x , причем f i x x при i < k. Орбита периодической точки состоит из k точек и называется 1 Кроме термина «детерминированный хаос» часто встречается термин «динамический хаос». 18 циклом периода k. Точка x является периодической точкой функции f периода k, если она является неподвижной точкой итерации f k , но не является периодической точкой итераций с меньшими номерами. Дав основные понятия, можно вернуться к исследованию логистической функции. Исследуемая функция является функцией одного параметра λ. Наша задача выяснить, как меняются орбиты точек, при изменении параметра λ. Чаше всего, при малом изменении параметра динамика, определяемая функцией, меняется мало. Немного изменяются значения неподвижных, периодических точек. Однако при некоторых значениях параметра происходит резкое изменение качественной картины, например, изменяется количество неподвижных точек, меняется их характер (притягивающие превращаются в отталкивающие). Скачкообразное изменение качественного поведения системы при плавном изменении параметра называется бифуркацией. Рассмотрим, что будет происходить с точками из интервала [0;1] под действием итераций логистической функции. При 0 < λ < 1 точка x = 0 является притягивающей, и каждая точка выбранного отрезка под действием итераций стремится к ней. При λ = 1 происходит бифуркация, и точка x = 0 перестает быть притягивающей. 1 При 1 < λ < 3 точка x = 0 является отталкивающей, а точка x2 – притягивающей неподвижной точкой. 1 Следующая бифуркация происходит при λ = 3, когда точка x2 перестает быть притягивающей и превращается в отталкивающую при λ > 3. Поскольку теперь обе точки x1 и x2 являются отталкивающими, логично предположить о наличии некого притягивающего объекта между ними. Так оно и происходит. При λ > 3 появляются еще две неподвижные точки, которые не являются неподвижными точками исходной функции. Они образуют цикл периода 2. Таким образом, имеет место бифуркация удвоения периода. При дальнейшем увеличении параметра λ можно наблюдать и дальнейшие бифуркации удвоения периода. Для того чтобы наблюдать весь этот каскад бифуркаций можно провести следующий эксперимент. Выберем какое-либо начальное значение x и проделаем над ним 100-200 итераций отображения логистической функции. Затем отложим значения следующих 100-200 итераций по вертикальной оси, а значение параметра λ, при котором производились вычисления, – по горизонтальной. По оси λ пройдем отрезок от 2,9 до 4 с небольшим интервалом, например 0,01. Полученное множество называется бифуркационной диаграммой логистической функции. Бифуркационная диаграмма позволяет проследить за развитием системы при плавном изменении параметра. При фиксированном значении параметра за орбитами точек позволяет проследить паутинная диаграмма (диаграмма Ламерея), изображенная на рисунке 1. Построение паутинной диаграммы позволяет выявить различные эффекты, незаметные на бифуркационной. 19 Рис. 4.1. Паутинная диаграмма логистической функции при λ = 2.7 Порядок построения паутинной диаграммы 1. Стоится график исследуемой функции. В нашем случае – f x x(1 x) . 2. Строим прямую y x . 3. Строим «траекторию» – ломанную, которая исходит из начального значения x, затем отражается под прямым углом от графика исследуемой функции, отражается от прямой y x , потом отражается от графика функции и т.д. Действие этого правила легко пронаблюдать, если внимательно проследить за процессом построения паутинной диаграммы при различных значениях параметра λ. Задание на лабораторную работу 1. Ознакомиться с теоретическим введением к лабораторной работе. 2. При помощи программы Chaos (в среде MatLab) построить паутинные диаграммы нелинейных дискретных отображений в соответствии со своим вариантом при различных значениях параметра λ. 3. Написать функцию, позволяющую построить паутинные диаграммы для заданного нелинейного дискретного отображения. Значение параметра, при котором производится построение паутинной диаграммы, должно передаваться в функцию в качестве параметра. 4. Сравнить полученные результаты с результатами программы Chaos. 20 Варианты заданий № варианта Функция «Рабочий» диапазон параметра λ 1 xn1 xn 1 xn 2 xn1 xn 1 xn 3 xn1 n 1–3 4 xn1 1 xn 0–2 5 5 1 x n 1 cos2 x 2 2 0 – 0.39 6 xn1 sin xn 0.9 – 2 7 x n 1 cos2 x x 0.1 2 1.8 – 3.9 x 1 x 2 n 2 1–4 4 – 6.75 Для каждого варианта имеются сохраненные настройки программы Chaos (файл var#.chs). Пояснения к выполнению лабораторной работы 1. При работе с программой Chaos необходимо помнить, что параметр функции λ обозначен как a. 2. В поле «Исследуемая функция» задается функция в соответствии правилами, принятыми в среде MatLab. В связи с этим многие операции принудительно заданы как поэлементные («.+», «.*»). В файле с Вашим вариантом задана правильная запись исследуемой функции, изменять эту запись не рекомендуется. 3. Для сохранения результатов построения паутинной диаграммы необходимо выполнить следующее: установить задержку рисования в 0; выбрать «Команды -> Построить паутинную диаграмму в новом окне». В этом окне можно будет сохранить результаты с помощью стандартных средств MatLab. 4. При написании программы для построения паутинной диаграммы рекомендуется сделать 2 варианта: первый – построение диаграммы при помощи функции plot; второй – анимационное построение при помощи функции mycomet (функция аналогична стандартной функции comet, но в качестве 4-го параметра получает значение задержки в секундах между шагами). Литература к лабораторной работе №4 1. Медведева Н.Б. Динамика логистической функции. Соросовский образовательный журнал, том 6, №8, 2000. 2. Климонтович Ю.Л. Введение в физику открытых систем. Соросовский образовательный журнал, №8, 1996. 3. Кузнецов А.П. Наглядные образы хаоса. Соросовский образовательный журнал, том 6, №11, 2000. 4. Кузнецов С.П. Динамический хаос. – М: Физматлит, 2001. 21 Лабораторная работа № 5. Дискретные отображения и бифуркационные диаграммы Цель работы Познакомиться с хаотическими свойствами простых нелинейных систем. Исследовать при помощи бифуркационных диаграмм хаотические свойства нелинейных дискретных отображений. Работа является логическим продолжением исследования нелинейных дискретных отображений при помощи паутинных диаграмм. Основные сведения о бифуркационных диаграммах В прошлой лабораторной работе были рассмотрены основные вопросы, связанные с дискретными отображениями и построением паутинных диаграмм. Бифуркационная диаграмма является развитием паутинной диаграммы, т.к. позволяет исследовать режимы, в которых находится система, при задании некоторого диапазона параметра. Основные принципы построения бифуркационной диаграммы также были приведены в описании предыдущей лабораторной работы. Например, возьмем известную логистическую функцию xn1 xn (1 xn ) и пронаблюдаем весь каскад бифуркаций, которые происходят с системой при плавном изменении параметра λ. Для этого, выберем какое-либо начальное значение x и проделаем над ним 100-200 итераций отображения логистической функции. Затем отложим значения следующих 100-200 итераций по вертикальной оси, а значение параметра λ, при котором производились вычисления, – по горизонтальной. По оси λ пройдем отрезок от 2,9 до 4 с небольшим интервалом, например 0,01. Полученное множество называется бифуркационной диаграммой логистической функции. В результате вычислений должна получиться следующая картина. Рис. 5.1. Бифуркационная диаграмма логистической функции. Порядок построения бифуркационной диаграммы 1. Выбираем начальное значение x (например, x = 0.5) и начальное значение λ. 2. Производим 200 итераций заданного отображения. 3. Запоминаем или отображаем значения последующих 100 итераций отображения. 22 4. Увеличиваем значение λ на заданный шаг и повторяем процедуру вычислений. Задание на лабораторную работу 1. Ознакомиться с теоретическим введением к лабораторной работе. 2. При помощи программы Chaos (в среде MatLAB) построить бифуркационные диаграммы нелинейных дискретных отображений в соответствии со своим вариантом при различных значениях параметра λ. Выполняемый вариант должен соответствовать варианту предыдущей работы. 3. Написать функцию, позволяющую построить бифуркационные диаграммы для заданного нелинейного дискретного отображения. 4. Сравнить полученные результаты с результатами программы Chaos. Варианты заданий № Функция варианта 1 xn1 xn 1 xn «Рабочий» диапазон параметра λ 1–4 2 xn1 xn 1 xn 3 xn1 n 1–3 4 xn1 1 xn 0–2 5 5 1 x n 1 cos2 x 2 2 0 – 0.39 6 xn1 sin a xn 0.9 – 2 7 x n 1 cos2 x x 0.1 2 1.8 – 3.9 x 1 x 2 n 2 4 – 6.75 Для каждого варианта имеются сохраненные настройки программы Chaos (файл var#.chs). Пояснения к выполнению лабораторной работы 1. При работе с программой Chaos необходимо помнить, что параметр функции λ обозначен как a. 2. В поле «Исследуемая функция» задается функция в соответствии правилами, принятыми в среде MatLAB. В связи с этим многие операции принудительно заданы как поэлементные («.+», «.*»). В файле с Вашим вариантом задана правильная запись исследуемой функции, изменять эту запись не рекомендуется. 3. Для сохранения результатов построения паутинной диаграммы необходимо выполнить следующее: установить задержку рисования в 0; выбрать «Команды -> Построить бифуркационную диаграмму в новом окне». В этом окне можно будет сохранить результаты с помощью стандартных средств MatLAB. 4. Наиболее простым и эффективным способом построение бифуркационной диаграммы является следующий: для хранения результатов заводится специальный массив, размерностью КоличествоТочекПоХ × КоличествоТочекПоА (КоличествоТочекПоА вычисляется очень просто: (МаксимальноеЗначениеА – МинимальноеЗначениеА) / ШагПоА + 1; КоличествоТочекПоХ вычисляется аналогично); 23 затем результаты итераций (после пропущенных 100) «регистрируются» в этом массиве; после окончания всех вычислений массив выводится на экран при помощи функции spy(). «Регистрация точек в массиве» Рассмотрим пример. Мы выбрали в качестве исследуемого отображения логистическую функцию, 3;3.8 , x 0;1, шаг по λ выбран 0.2. Таким образом КоличествоТочекПоА = 5. КоличествоТочекПоХ примем также равное 5. Исходный массив результата имеет вид: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Начнем выполнять итерации при λ = 3. На каком-то регистрируемом шаге мы получили значение x = 0.35. Необходимо занести это значение в массив. Представим, что весь интервал x 0;1 разбит на 5 интервалов 0;0.2, 0.2;0.4, 0.4;0.6, 0.6;0.8; 0.8;1 – это и есть столбец нашего массива результатов. Значение x = 0.35 попадает во второй интервал (int(0.35/0.2) + 1 = 2), следовательно, во второй строке должна появиться отметка об этом. Проще всего записывать 1. Проведя аналогичные рассуждения относительно λ, получаем, что 1 должна записаться в 1 столбец, т.е. 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Аналогично выполняется «регистрация» результатов последующих итераций. 5. Необходимо помнить, что MatLAB оптимизирован для выполнения векторных операций. Т.е. код x = [0:0.1:1]; y = sin(x); будет выполняться значительно быстрее, чем соответствующий перебор массива x и вычисления для него массива y. 6. Инициализацию массива удобно выполнять при помощи команды zeros(m,n). Литература к лабораторной работе №5 1. Медведева Н.Б. Динамика логистической функции. Соросовский образовательный журнал, том 6, №8, 2000. 2. Климонтович Ю.Л. Введение в физику открытых систем. Соросовский образовательный журнал, №8, 1996. 3. Кузнецов А.П. Наглядные образы хаоса. Соросовский образовательный журнал, том 6, №11, 2000. 4. Кузнецов С.П. Динамический хаос. – М: Физматлит, 2001. 24 Лабораторная работа № 6. Карты динамических режимов и решетки связанных отображений Цель работы Изучить методы построения и свойства карт динамических режимов, используемых для исследования хаотических свойств нелинейных систем. Выявить взаимосвязи между различными методами исследования динамического хаоса. Основные сведения о картах динамических режимов В предыдущих лабораторных работах были рассмотрены основные методы и разработаны базовые алгоритмы построения бифуркационных и паутинных диаграмм для исследования хаотических свойств нелинейных динамических систем. Как уже отмечалось, паутинная диаграмма позволяет проследить развитие системы, представленной в виде дискретного отображения, при фиксированном значении параметров. Бифуркационная диаграмма предназначена для изучения поведения системы на заданном диапазоне одного из параметров. Такой подход позволяет выявить и исследовать бифуркации, происходящие при изменении одного из параметров системы. Дальнейшим развитием и обобщением бифуркационной диаграммы служит карта динамических режимов. Карты динамических режимов используются, если система имеет 2 параметра. По оси x в этом случае откладываем один из параметров системы, по оси y – другой. «Режим» системы изображается цветом. На Рис. изображена бифуркационная диаграмма логистической функции xn1 xn (1 xn ) и соответствующая диаграмме карта динамических режимов, рассчитанная для одного параметра. Зеленым цветом обозначена область параметров, отвечающая существованию неподвижной точки, желтым – цикла периода 2, синим – цикла периода 4, красным – периода 8, серая область соответствует хаосу. Рис. 6.1. Бифуркационная диаграмма и соответствующая ей карта динамических режимов для отображения с одним параметром Конечно, при исследовании отображений с одним параметром карты динамических режимов обычно не используются. Область их применения – отображения с двумя 25 параметрами. На Рис. x n 1 a bx n x 3 . представлена карта режимов кубического отображения Рис. 6.2. Карта динамических режимов кубического отображения Кроме исследований дискретных отображений с двумя параметрами карты динамических режимов используются для изучения решеток связанных отображений. Решетки связанных отображений Для описания сложной динамики и хаоса в распределенных системах различной природы (гидродинамическая турбулентность, электронные устройства, системы нелинейной оптики, химические системы реакция – диффузия, модели биологических популяций) могут привлекаться системы уравнений с частными производными, цепочки нелинейных осцилляторов, решетки связанных отображений, клеточные автоматы. Если речь идет о качественном понимании сложной пространственно-временной динамики, то во многих случаях предпочтительно иметь дело не с непрерывной средой, а с решеточными моделями. Решетки связанных отображений введены в рассмотрение в начале 80-х годов. Представим себе одномерную цепочку или двумерную решетку, в которой каждой ячейке сопоставлена система с дискретным временем, например, квадратичное отображение. Пусть, далее, каждый элемент каким-то образом связан со своими соседями, так что мгновенное состояние соседних ячеек оказывает влияние на состояние данного элемента в следующий момент времени. Иногда переход к решетке может рассматриваться как приближенный метод описания непрерывной системы. В других случаях решеточная модель может быть подходящей по самому существу задачи. Например, в физике твердого тела естественная дискретизация обеспечивается наличием кристаллической решетки. Для задания взаимодействия между элементами решетки достаточно задания 2-х типов связи: инерционной и диссипативной; величина связи задается при помощи коэффициентов E1 и E2. Смысл и свойства диссипативной и инерционной связи рассмотрены в табл. 1. 26 Таблица 1. Диссипативная и инерционная связь Рассмотрим систему из двух элементов, каждый из которых описывается квадратичным отображением xn 1 f xn , y n1 f y n Пусть, например, речь идет о двух биологических популяциях, численность которых изменяется из года в год согласно этим уравнениям. Один способ ввести связь состоит в предположении, что организмы сначала размножаются (гибнут), оставаясь в своей популяции, а потом на некоторое время получают возможность мигрировать между популяциями («сначала размножаются, потом расползаются»). На следующий год цикл повторяется. Уравнение имеет вид Этому соответствует вторая картинка. Такая связь стремится выровнять мгновенные состояния подсистем, и ее естественно назвать диссипативной. Другой способ: организмы имеют возможность миграции, минуя цикл размножения и гибели в «своей» популяции. Уравнение имеет вид Такая связь способствует сохранению памяти о состоянии на предыдущем шаге, и ее естественно именовать инерционной. Наконец, могут присутствовать оба типа связи, это комбинированная связь: То, что других типов связи вводить не нужно, и данное уравнение служит в определенном смысле универсальной моделью связанных систем, следует из ренормгруппового анализа. Исследования решеток связанных отображений позволяет обнаружить явления и эффекты, недостижимые при моделировании одиночных отображений. Например, на Рис. приводятся карты динамических режимов при различных значениях параметров связи Е1 и Е2 для следующей решетки связанных отображений: 27 f1 x a x 1 x f 2 y b y 1 y x n 1 f1 x n E1 f 2 y n f1 x n E 2 y n x n . y n 1 f 2 y n E1 f1 x n f 2 y n E 2 x n y n Рис. 6.3. Карты динамических режимов для решетки из двух логистический функций при различных значениях параметров связи. Для построения карт динамических режимов и бифуркационных диаграмм для решетки из 2-х связанных отображений предназначена программа DinMap2. Отображения имеют два вида связи: инерционную и диссипативную; величина связи задается при помощи коэффициентов E1 и E2. Общее количество параметров двух отображений – 2 (без учета коэффициентов связи). Задание на лабораторную работу Разработать функцию определения режима дискретного отображения при заданных параметрах. На вход функции подается массив, содержащий бифуркационную диаграмму исследуемого отображения (см. предыдущую лабораторную работу) и предельный номер режима (при превышении этого режима состояние системы определяется как хаос). На выходе функция выдает вектор-строку с номерами режимов для каждого столбца входного массива (1 соответствует апериодическому режиму, 2 – циклу периода 2, 4 – циклу периода 4 и т.д.; 99 соответствует хаосу). 28 Литература к лабораторной работе №6 1. Безручко, Б.П. Нелинейные маятники и их модели / Б.П. Безручко // Соросовский образовательный журнал. – 2000. – Т. 6, № 9. – С. 95-102. 2. Валентинов, А. Хаос в порядке вещей [Электронный ресурс] / Альберт Валентинов, Юлия Малахова. – (http://www.xaoc.ru/a31/a31.htm). 3. Кроновер, Р.М. Фракталы и хаос в динамических системах. Основы теории / Р.М. Кроновер; [пер. с англ.] – М.: Постмаркет, 2000. – Гл. 6 – С. 147-184. 4. Кузнецов, А.П. Наглядные образы хаоса / А.П. Кузнецов // Соросовский образовательный журнал. – 2000. – Т. 6, № 11. – С. 104-110. 5. Кузнецов, С.П. Динамический хаос / С.П. Кузнецов. – М.: Физматлит, 2001. – 296 с. 6. Медведева, Н.Б. Динамика логистической функции / Н.Б. Медведева // Соросовский образовательный журнал. – 2000. – Т. 6, № 8. – С. 121-127. 29 Лабораторная работа № 7. Фазовые портреты динамических систем. Цель работы Изучить и освоить методику работы с программой Fractan. Познакомиться с понятием фазового пространства. Проанализировать представление различных данных в фазовом пространстве. Изучить применение показателя Хёрста. Основные сведения о фазовом пространстве Один из лучших способов понять динамическую систему – сделать её динамику видимой, например, построив график. Есть два основных вида графиков, отражающих динамику системы. Первый – простой график временного ряда. Другой вид графика не отображает время напрямую. Поэтому ось, по которой мы откладывали время на первом виде графика, может быть использована для какой-либо другой переменной. Таким образом, новый вид графика позволяет изображать в том же пространстве на одну переменную больше (вместо времени). Точка на таком графике отражает состояние или фазу системы конкретный момент времени (также как, например, фаза Луны). Время выявляется в относительном восприятии из последовательности точек, в том, как система переходит из одного состояние в другое. Пространство в таком виде графика имеет специальное название: фазовое пространство или пространство состояний (Рис. 1). Формально, фазовое пространство или пространство состояний – это абстрактное математическое пространство, в координатах которого отображаются переменные, необходимые для задания фазы (или состояния) динамической системы. Фазовое пространство содержит все мгновенные состояния системы, которые только могут быть. Рис. 7.1. Двумерное (слева) и трёхмерное фазовые пространства Как дополнение к простому графику временного ряда, фазовое пространство предоставляет другой взгляд на развитие. К тому же, поскольку некоторые временные ряды могут быть очень длинными, их сложно показать на одном графике. Фазовое пространство уплотняет все данные в одно легко управляемое пространство или график, часто называемый фазовым портретом. Также следует отметить, что структуры или зависимости, которые мы могли не заметить на графике временного ряда, часто обнаруживаются в наглядных формах в фазовом пространстве. В том случае, если в фазовом пространстве необходимо отобразить систему, описываемую лишь одной переменной, то по одной оси откладывают эту переменную, а по другой – следующее или предыдущее значение этой переменной. Также можно откладывать значения переменной с задержкой или опережением, отличными от единицы. 30 Например, откладывая по одной оси текущее значение переменной, а по другой – значение переменной 5 итераций назад. Построение аттракторов Аттрактор – неподвижная точка x системы x f (x) называется устойчивой (или аттрактором), если для любой окрестности N точки x существует некоторая меньшая окрестность этой точки N N такая, что любая траектория, проходящая через N ', остается в N при возрастании t. Кроме того, под аттрактором понимают совокупность всех устойчивых точек фазового портрета системы. Для большинства систем можно наблюдать, что облако исходных точек «конденсируется» на некоторые предельные объекты. Это и есть аттракторы. Динамические системы, которые обладают аттракторами, называют диссипативными. Существование аттрактором приводит к весьма важным выводам о поведении системы. В этом случае исследование установившихся режимов эквивалентно изучению геометрической структуры аттрактора. Фрактальная размерность и показатель Хёрста Для того чтобы иметь возможность сравнивать фрактальные свойства различных природных процессов, таких, как сток рек, отложение ила или рост колец деревьев, Хёрст использовал при анализе временных рядов наблюдений безразмерный показатель в виде отношения размаха (R) накопленного отклонения от среднего к среднеквадратическому отклонению (S) – R/S-метод. Зависимость параметра (R/S) от времени наблюдения, построенная в двойном логарифмическом масштабе, представляет исследуемый процесс в виде фрактальной функции. При аппроксимации фрактальной функции прямой линией определяется угловой коэффициент Н, называемый показателем Хёрста. Показатель Хёрста используют для вычисления основного фрактального параметра процесса – размерности Хаусдорфа-Безиковича: D = 2 – H. Размерность Хаусдорфа-Безиковича или фрактальная размерность является интегральной характеристикой объекта или процесса. Она обобщает понятие евклидовой геометрической размерности и, в отличие от последней, может принимать нецелочисленные значения. Вообще, размерность – число, характеризующее скорость роста числа ячеек покрытия данного множества при уменьшении размера ячеек. Познавательная сила понятия фрактальной размерности состоит в том, что с его помощью можно упорядочивать исследуемые процессы по свойствам хаотичности или сложности и, таким образом, классифицировать их. Общие закономерности связи степени зашумленности сигналов и их фрактальных свойств, выраженных показателем Хёрста, проиллюстрированы на рис. 2, где изображены реализации временных рядов наблюдений (объем выборки N = 1000), имеющие различные фрактальные свойства и, соответственно, разные оценки показателя Хёрста. 31 Рис. 7.2. Типовые реализации фрактальных временных рядов наблюдений c H = 0,1; H = 0,5; H = 0,9 и белого шума с нормальным распределением Визуально можно определить, что стационарные случайные сигналы (например, шум с нормальным распределением) имеют максимальную зашумленность, а зашумленность фрактальных сигналов падает с увеличением показателя Хёрста. Задание на лабораторную работу 1. Ознакомиться с теоретическим введением к лабораторной работе. 2. В среде MatLab написать функции генерации синусоидального сигнала, пилы, меандра. С помощью программы Fractan построить фазовый портрет сигнала, а также рассчитать для этого сигнала показатель Хёрста. Проанализировать и объяснить полученные результаты. 3. Построить фазовый портрет логистической функции для цикла периода 2, 3, 8, для хаотического режима (подобрать параметры логистической функции для необходимых режимов можно с помощью программы Chaos). Пояснения к выполнению лабораторной работы 1. Для получения достоверных результатов расчётов рекомендуется использовать временные ряды с количеством отсчётов не менее 10000. 2. Для облегчения загрузки сгенерированных данных в программу Fractan можно воспользоваться следующим кодом, предварительно поместив папку с программой Fractan в текущую рабочую директорию MatLab’а: ff=fopen('Sample.dat', 'w'); fprintf(ff, '%g\r\n', aSample); fclose(ff); dos('Fractan/Fractan.exe Sample.dat'); где aSample – одномерный массив, содержащий временной ряд исследуемого сигнала. В результате выполнения этого кода появится окно Fractan’а с изображением графика переданного пользователем временного ряда. При этом окно Matlab’а будет недоступно пользователю, пока не будет закрыт Fractan. 32 3. Для того чтобы Fractan позволил работать с открытыми данными, их необходимо загрузить, выбрав в меню «Обработка» (“Process”) пункт «Загрузить отсчёты» (“Load Samples”) или один раз нажав кнопку «Обработка» (“Process”). При этом Fractan может отмасштабировать данные, чтобы диапазон их значений удовлетворял требованиям алгоритмов. Пользователь же перед загрузкой отсчётов может ограничить выборку, задав значения начального и конечного отсчётов в полях «Первый отсчёт» (“First Sample”) и «Последний отсчёт» (“Last Sample”). 4. Чтобы простроить фазовый портрет загруженного сигнала, достаточно в меню «Просмотр» (“View”) выбрать пункт «Фазовое пространство (2D)» (“Phase Space (2D)”). Вернуть график временного ряда можно, выбрав в меню «Просмотр» (“View”) пункт «Отсчёты» (“Samples”). 5. Для расчёта показателя Хёрста необходимо в меню «Обработка» (“Process”) выбрать пункт «Показатель Херста» (“Hurst Exponent”). При этом Fractan попросит выбрать файл для сохранения результатов расчёта. Также рассчитанный показатель Хёрста отображается в строке состояния. Литература к лабораторной работе №7 1. Williams, G. P. Chaos Theory Tamed. — Washington, D.C.: Joseph Henry Press, 1997. 2. Кузнецов А.П. Наглядные образы хаоса. Соросовский образовательный журнал, том 6, №11, 2000 3. Кликушин Ю. Н. Метод фрактальной классификации сложных сигналов. Журнал радиоэлектроники, №4, 2000. 4. Сычев В. В. Вычисление стохастических характеристик физиологических данных. — http://avatar.impb.psn.ru/~sychyov/fractan.shtml 33