⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 savefig.m

📁 一个计算CHUA混沌系统Lyapunov指数MATLAB程序。
💻 M
📖 第 1 页 / 共 2 页
字号:
%Code to save main figure

figure(8)

 sys_variables = [str2double(get(A_ABC_pp(9),'String')),str2double(get(A_ABC_pp(8),'String')),str2double(get(A_ABC_pp(11),'String')),str2double(get(A_ABC_pp(10),'String')),str2double(get(A_ABC_pp(19),'String')),str2double(get(A_ABC_pp(20),'String')),str2double(get(A_ABC_pp(18),'String')),str2double(get(A_ABC_pp(12),'String'))]; % L,R0,C2,G,Ga,Gb,E,C1
        integ_variables = [str2double(get(A_ABC_pp(21),'String')),str2double(get(A_ABC_pp(22),'String')),str2double(get(A_ABC_pp(23),'String')),str2double(get(A_ABC_pp(28),'String')),str2double(get(A_ABC_pp(27),'String'))]; % x0,y0,z0,dataset_size,step_size
        
        clear global data;
        % Calculate Timeseries
        global Timeseries;
        Timeseries = chua(sys_variables,integ_variables);
        % Calculate Equilibrium Points
        global Points;
        Points = equil_points(sys_variables);
        
        % Plot Time Series
        %-----------------
        % Set up time axis, (start-time) to (start-time + number_of_steps*step_size) in increments of (step_size)!
        t = str2double(get(A_ABC_pp(74),'String')):str2double(get(A_ABC_pp(27),'String')):(str2double(get(A_ABC_pp(74),'String')) + str2double(get(A_ABC_pp(28),'String'))*str2double(get(A_ABC_pp(27),'String')));
        % Plot series scaled by relavent ratio
        plot(t/str2double(get(A_ABC_pp(53),'String')),Timeseries(1,:)/str2double(get(A_ABC_pp(44),'String')),'Color','r');hold on;
        plot(t/str2double(get(A_ABC_pp(53),'String')),Timeseries(2,:)/str2double(get(A_ABC_pp(47),'String')),'Color','g');hold on;
        plot(t/str2double(get(A_ABC_pp(53),'String')),Timeseries(3,:)/str2double(get(A_ABC_pp(50),'String')),'Color','b');
        axis tight;grid on;
        
        
        % Calculate Eigen Points & Planes, then place them on GUI
        Eigen_Planes = eigen(sys_variables,Points);
   
     
        
        % Plot Attractor
        %---------------
        figure(9)
        plot3(Timeseries(1,:),Timeseries(2,:),Timeseries(3,:),'Color','k');hold on;
        
        % Plot Equilibrium Points
        plot3(Points(1,1),Points(2,1),Points(3,1),'.', ...
            'MarkerSize',20,'Color',[.8 .4 .2]);hold on;
        text(Points(1,1),Points(2,1),Points(3,1),'  P^{-}','Color',[1 0 0],'FontWeight','bold');
        plot3(Points(1,2),Points(2,2),Points(3,2),'.', ...
            'MarkerSize',20,'Color',[.8 .4 .2]);hold on;
        text(Points(1,2),Points(2,2),Points(3,2),'  0','Color',[1 0 0],'FontWeight','bold');
        plot3(Points(1,3),Points(2,3),Points(3,3),'.', ...
            'MarkerSize',20,'Color',[.8 .4 .2]);hold on;
        text(Points(1,3),Points(2,3),Points(3,3),'  P^{+}','Color',[1 0 0],'FontWeight','bold');
        
        xarray = [Timeseries(1,:),Points(1,:)];
        yarray = [Timeseries(2,:),Points(2,:)];
        zarray = [Timeseries(3,:),Points(3,:)];
        
        xmax = max(xarray);
        xmin = min(xarray);
        ymax = max(yarray);
        ymin = min(yarray);
        zmax = max(zarray);
        zmin = min(zarray);
        
        if abs(xmax) > abs(xmin)
            xlimit = 1.5*abs(xmax);
        else
            xlimit = 1.5*abs(xmin);
        end
        if abs(zmax) > abs(zmin)
            zlimit = 1.5*abs(zmax);
        else
            zlimit = 1.5*abs(zmin);
        end
        if abs(ymax) > abs(ymin)
            ylimit = 1.5*abs(ymax);
        else
            ylimit = 1.5*abs(ymin);
        end
        
        %Plot Inner EigenPlane
        %%%%%%%%%%%%%%%%%%%%%% here sys_variables(7) = E
        inner_x1 = pointplane(Eigen_Planes(1,1),Eigen_Planes(1,2),Eigen_Planes(1,3),Eigen_Planes(1,4),0,ylimit,sys_variables(7),'x');
        inner_x2 = pointplane(Eigen_Planes(1,1),Eigen_Planes(1,2),Eigen_Planes(1,3),Eigen_Planes(1,4),0,-ylimit,sys_variables(7),'x');
        inner_y1 = pointplane(Eigen_Planes(1,1),Eigen_Planes(1,2),Eigen_Planes(1,3),Eigen_Planes(1,4),xlimit,0,sys_variables(7),'y');
        inner_y2 = pointplane(Eigen_Planes(1,1),Eigen_Planes(1,2),Eigen_Planes(1,3),Eigen_Planes(1,4),-xlimit,0,sys_variables(7),'y');
        inner_z = sys_variables(7);
        
        point_number = 1;
        plot_number = 1;
        if (inner_x1 >= -xlimit)&&(inner_x1 <= xlimit)
            point(point_number,:) = [inner_x1 ylimit inner_z];
            P_ABC_PP(plot_number) = plot3(point(point_number,1),point(point_number,2),point(point_number,3),'.', ...
                'MarkerSize',10,'Color',[0 0 0]);hold on;
            plot_number = plot_number + 1;
            P_ABC_PP(plot_number) = plot3(-point(point_number,1),-point(point_number,2),-point(point_number,3),'.', ...
                'MarkerSize',10,'Color',[0 0 0]);hold on;
            plot_number = plot_number + 1;
            point_number = point_number+1;
        end
        if (inner_x2 >= -xlimit)&&(inner_x2 <= xlimit)
            point(point_number,:) = [inner_x2 -ylimit inner_z];
            P_ABC_PP(plot_number) = plot3(point(point_number,1),point(point_number,2),point(point_number,3),'.', ...
                'MarkerSize',10,'Color',[0 0 0]);hold on;
            plot_number = plot_number + 1;
            P_ABC_PP(plot_number) = plot3(-point(point_number,1),-point(point_number,2),-point(point_number,3),'.', ...
                'MarkerSize',10,'Color',[0 0 0]);hold on;
            plot_number = plot_number + 1;
            point_number = point_number+1;
        end
        if (inner_y1 >= -ylimit)&&(inner_y1 <= ylimit)
            point(point_number,:) = [xlimit inner_y1 inner_z];
            P_ABC_PP(plot_number) = plot3(point(point_number,1),point(point_number,2),point(point_number,3),'.', ...
                'MarkerSize',10,'Color',[0 0 0]);hold on;
            plot_number = plot_number + 1;
            P_ABC_PP(plot_number) = plot3(-point(point_number,1),-point(point_number,2),-point(point_number,3),'.', ...
                'MarkerSize',10,'Color',[0 0 0]);hold on;
            plot_number = plot_number + 1;
            point_number = point_number+1;
        end
        if (inner_y2 >= -ylimit)&&(inner_y2 <= ylimit)
            point(point_number,:) = [-xlimit inner_y2 inner_z];
            P_ABC_PP(plot_number) = plot3(point(point_number,1),point(point_number,2),point(point_number,3),'.', ...
                'MarkerSize',10,'Color',[0 0 0]);hold on;
            plot_number = plot_number + 1;
            P_ABC_PP(plot_number) = plot3(-point(point_number,1),-point(point_number,2),-point(point_number,3),'.', ...
                'MarkerSize',10,'Color',[0 0 0]);hold on;
            plot_number = plot_number + 1;
            point_number = point_number+1;
        end
        
        % Plot U-1 Region Devision Planes
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        vertex_matrix = [-xlimit -ylimit -sys_variables(7);-xlimit ylimit -sys_variables(7);xlimit -ylimit -sys_variables(7);xlimit ylimit -sys_variables(7)];
        G_ABC_pp(9) = patch('Vertices',vertex_matrix,'Faces',[1 2 4 3],'EdgeColor','b','FaceColor','none','FaceAlpha',0.2,'EdgeAlpha',0.2);
        text(xlimit,ylimit,-sys_variables(7),'  U_{-1}','Color',[0 0 1],'FontWeight','bold');
        
        % Plot inner Plane
        if point_number ~= 1
            vertex_matrix = [point(1,:); point(2,:); -point(1,:); -point(2,:)];
            G_ABC_pp(8) = patch('Vertices',vertex_matrix,'Faces',[1 2 3 4],'EdgeColor','m','FaceColor','none','FaceAlpha',0.2,'EdgeAlpha',0.2);
            text((xlimit/5),(ylimit/5),pointplane(Eigen_Planes(1,1),Eigen_Planes(1,2),Eigen_Planes(1,3),Eigen_Planes(1,4),(xlimit/5),(ylimit/5),0,'z'),'  E^{c}(0)','Color','m','FontWeight','bold');
        end
        
        % Plot U Region Devision Planes

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -