声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3333|回复: 3

[稳定性与分岔] 最大值法和Poincare法画的分岔图为何不对呢

[复制链接]
发表于 2009-3-22 01:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
最大值法,程序是根据OCT前辈给的程序改造来的。
function [Xmax]=getmax(y)
a=length(y);
j=1;
for i=(a-1)/2:a
b=(y(i,1)-y(i-2,1))/2;
c=(y(i,1)+y(i-2,1))/2-y(i-1,1);
if y(i-2,1)<=y(i-1,1)&y(i-1,1)>=y(i,1)&c==0
Xmax(j)=y(i-1,1);
j=j+1;
elseif y(i-2,1)<=y(i-1,1)&y(i-1,1)>=y(i,1)
Xmax(j)=y(i-1,1)-b^2/(4*c);
j=j+1;
end
end
%%%%%%%%%%%%%%%%%下面是方程
function dx=hrfunyasuo(t,x,flag,a,b,c,d,r,s,xo,k,xxmax,xmin)
G=k*(xxmax-x(1))*heaviside(x(1)-xxmax)-k*(x(1)-xmin)*heaviside(xmin-x(1));
dx=[x(2)-a*x(1)^3+b*x(1)^2-x(3)+3+G;
c-d*x(1)^2-x(2);
r*(s*(x(1)-xo)-x(3))];
%%%%%%%%下面是最大值法分岔程序
function hr_fc_getmax
% 最大值法求解分岔图
clear all
t0=[0 100];%积分时间
%bifurcation
tic,
a=1;b=3;c=1;d=5;r=0.006;s=4;xo=-1.6;k=3;xxmax=1.2;
for xmin=linspace(-1.3,-0.4,30);  %xmin的变化精度
    [t,y]=ode45('hrfunyasuo',t0,[0.2,0.4,0.5],[],a,b,c,d,r,s,xo,k,xxmax,xmin);
    [xmax]=getmax(y(:,1));
    plot(xmin,xmax,'b','markersize',1)
    hold on
    clear xmax
end
toc
回复
分享到:

使用道具 举报

 楼主| 发表于 2009-3-22 01:48 | 显示全部楼层

最大值法和Poincare法画的分岔图为何不对呢

Poincare法程序:
function hr_fc_poincaremethod
Z=[];
a=1;b=3;c=1;d=5;r=0.006;s=4;xo=-1.6;k=3;xxmax=1.2;
for xmin=linspace(-1.2,-0.5,20);
    % 舍弃前面迭带的结果,用后面的结果画图
    [T,Y]=ode45('hrfunyasuo',[0,1],[0.2,0.5,0.4],[],a,b,c,d,r,s,xo,k,xxmax,xmin);
    length(Y)
    [T,Y]=ode45('hrfunyasuo',[0,100],Y(length(Y),:),[],a,b,c,d,r,s,xo,k,xxmax,xmin);
    Y(:,1)=Y(:,2)-Y(:,1);
    % 对计算结果进行判断,如果点满足x=y,则取点
    for k=2:length(Y)
        f=k-1;
        if Y(k,1)<0   
            if Y(f,1)>0
                y=Y(k,2)-Y(k,1)*(Y(f,2)-Y(k,2))/(Y(f,1)-Y(k,1));
                Z=[Z r+abs(y)*i];
            end  
        else     
            if Y(f,1)<0  
                y=Y(k,2)-Y(k,1)*(Y(f,2)-Y(k,2))/(Y(f,1)-Y(k,1));   
                Z=[Z r+abs(y)*i];   
            end  
        end
    end
end
plot(Z,'.','markersize',1)
title('hr映射分岔图')
xlabel('xmin'),ylabel('|y| where x=y')
两个程序都能通,但是结果很奇怪!望高人指点、指正。谢谢!
发表于 2009-3-25 09:53 | 显示全部楼层

回复 沙发 mechanic05 的帖子

能否把你两个图贴出来,可以看到在哪些地方不同。
发表于 2018-4-13 20:06 | 显示全部楼层
请问楼主这个问题后来解决了吗?我现在也遇到了和你一样的问题。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-13 09:32 , Processed in 0.064249 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表