Скачиваний:
8
Добавлен:
10.02.2022
Размер:
2 Кб
Скачать
clc; clear;
a = 2.9851; b = 3; c = 2;
%Старший показатель Ляпунова
%Первый способ определения СПЛ
tspan = [0 1000]; % диапазон интегрирования
x0 = [1 1 1]; % начальная точка 
[t, x] = ode45(@(t,x) odefcn(t,x,a,b,c), tspan, x0); % решение СНДУ

figure (1);
plot3 (x(:,1),x(:,2),x(:,3)); 
grid on; xlabel('x1'); ylabel('x2'); zlabel('x3');

x0 = x(end,:); % начальная точка опорной траектории на аттракторе
[t,x1] = ode45(@(t,x) odefcn(t,x,a,b,c),tspan,x0); % решение СНДУ

figure (2);
plot3 (x1(:,1),x1(:,2),x1(:,3)); grid on;
grid on; xlabel('x1'); ylabel('x2'); zlabel('x3');

SPL1 = [];

for i = 1:1:length(t)
   
    A = [1-x1(i,2)+2*c*x1(i,1)-2*a*x1(i,1)*x1(i,3) -x1(i,1) -a*x1(i,1)^2;
    x1(i,2) -1+x1(i,1) 0;
    2*a*x1(i,1)*x1(i,3) 0 -b+a*x1(i,1)^2]; % матрица линеаризации A
    SPL1(i) = max (real(eig(A))); % вычисление СПЛ по 1-ому методу
     
end

figure (3);
plot(t, SPL1); xlim ([0 10]);grid on;xlabel 't'; ylabel 'СПЛ';




%Второй способ определения СПЛ

e1 = [0.0001; 0; 0]; % отклонения по координате
e2 = [0; 0.0001; 0]; % - // -
e3 = [0; 0; 0.0001]; % - // -
% x0op = x1(end,:); % первая начальная точка
spl2 = []; % для определения среднего значения по выборке
SPL2 = []; % СПЛ для различных моментов времени
T = [];

m=1;
 for i = 1:1:length(t)/100   

    x0op = x1(i,:);
     
    for j = 1:1:3 % вычислние  3-х СПЛ для вычисления среднего значения

        x0 = [x0op(1)+ e1(j) x0op(2)+ e2(j) x0op(3)+ e3(j)]; % вторая начальная точка
        e = x0 - x0op; % вектор разности координат начальных точек
        [t1,xop] = ode45(@(t1,x) odefcn(t1,x,a,b,c), tspan, x0op);
        [t1,x] = ode45(@(t1,x) odefcn(t1,x,a,b,c), t1, x0);
        deltax = x - xop; % вектор рассогласования траекторий
            z = [];
            for k = 2:1:length(t1) % вычисление Функции z
               z(k) = log(norm(deltax(k,:))/norm(e));
            end

        p = polyfit(t1, z', 10); % аппроксимация функции z полиномом p
        f = polyval(p, t1); % вычисление значений полинома
 
        dp = polyder(p); % вычисление производной полинома p   
        spl2(j) = max(dp); % вычисление СПЛ
    end
    i
    SPL2(m) = mean(spl2);
    T(m) = t(i);
    m = m+1;
 end
figure (4)
plot (T,SPL2); xlim([0 10]);grid on; xlabel 't'; ylabel 'СПЛ';
Соседние файлы в папке Лаб6