声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

楼主: mechanic05

[稳定性与分岔] 请教关于分岔程序

[复制链接]
发表于 2007-7-11 22:10 | 显示全部楼层
原帖由 octopussheng 于 2007-7-11 15:53 发表
我觉得做分岔图程序的思路主要分一下的几块:
(1)确定分岔参数的取值范围,并给出变化步长
(2)做一个循环,求解微分方程
(3)可以另做一个判断大小的函数如getmax(),从微分方程的解向量中取出一个极值 ...

第三步:做一个判断大小的函数如getmax(),从微分方程的解向量中取出一个极值 ... ,

这有什么用啊,做分岔图不用这一步应该也可以的啊
很疑惑
回复 支持 反对
分享到:

使用道具 举报

发表于 2007-7-12 08:06 | 显示全部楼层

回复sssssxxxxx921

这一步是从微分方程的解向量中取一个极值点,并在图中画出来,我是这么做的
发表于 2007-7-12 08:14 | 显示全部楼层

回复 #18 sssssxxxxx921 的帖子

我也没有看懂,为什么这样做?
你知道这样的原因吗?

[ 本帖最后由 xinyuxf 于 2007-7-13 09:21 编辑 ]
发表于 2007-7-12 08:22 | 显示全部楼层

回复无水

我把采用这种方法的一个lorenz分岔图的例子列在下面,一看就明白了!
function dy = Lorenz(t,y)

global r

dy=zeros(3,1);
dy(1)=-10*(y(1)-y(2));
dy(2)=-y(1)*y(3)+r*y(1)-y(2);
dy(3)=y(1)*y(2)-8*y(3)/3;

下面是求解程序
clear all
global r
t0=[0 150];%积分时间
y0=[1,0,0];

%bifurcation
for r=1:0.05:30 %r的变化精度
    [t,y]=ode45('Lorenz',t0,y0);
    [Xmax]=getmax(y(:,1));

    plot(r,Xmax,'b','markersize',1)
    hold on
    clear Xmax
end
xlabel('r')
ylabel('Xmax')

下面是getmax程序
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

评分

1

查看全部评分

发表于 2007-7-12 08:34 | 显示全部楼层
原帖由 octopussheng 于 2007-7-12 08:22 发表
我把采用这种方法的一个lorenz分岔图的例子列在下面,一看就明白了!
function dy = Lorenz(t,y)

global r

dy=zeros(3,1);
dy(1)=-10*(y(1)-y(2));
dy(2)=-y(1)*y(3)+r*y(1)-y(2);
dy(3)=y(1)*y(2)-8 ...



谢谢
我仔细看一下,这种做法的意思是什么?是否具有通用性?
发表于 2007-7-12 08:39 | 显示全部楼层
意思我在前面已经一条一条写了,通用性还是有的,呵呵!无水可以帮助再测试一下哦!
发表于 2007-7-12 08:53 | 显示全部楼层
我试了一下,得到的图还可以。就是没有去算其它的系统了。有时间试试!
发表于 2007-7-12 09:02 | 显示全部楼层
哦?可以的吧,我现在就在算一个,有结果了马上贴出来!
发表于 2007-7-12 09:03 | 显示全部楼层

回复 #19 octopussheng 的帖子

取一个极值点?:@(
这有什么原因吗    你为什么取极值点   总有一定的原因吧
或者说引用的出处   能说一下吗
发表于 2007-7-12 09:39 | 显示全部楼层
具体出处我也说不上来了,不过可以参考一下闻邦椿的《非线性振动理论中的解析方法及工程应用》
发表于 2007-7-12 10:06 | 显示全部楼层
这个大概的意思是:周期运动的话,会出现相同的最大值,其实道理上与 闪频差不多,这是这种方法在系统的解出现跳跃的时候,是不准确的。个人的想法
 楼主| 发表于 2007-7-12 10:19 | 显示全部楼层

回复 #15 无水1324 的帖子

请教前辈:
我的参数调整后还是老样子,就是一直在算,出来数据,最后死机.到是没有出现错误提示.感觉是不收敛还是怎么的.这是什么原因?其实关于这个问题的混沌判据:如相图\时程图\LYAPUNOV指数等我都已经作出.这是个参数激励问题.只是想仔细了解参数对系统行为的影响过程.请指教.甚谢!!:@)

[ 本帖最后由 无水1324 于 2007-7-12 10:35 编辑 ]
发表于 2007-7-12 10:36 | 显示全部楼层

回复 #30 mechanic05 的帖子

你的还是那个问题,计算的速度比较慢,但是还是可以出来结果,matlab出现死机,应该是“未响应”吧
发表于 2007-7-12 10:39 | 显示全部楼层
原帖由 mechanic05 于 2007-7-12 10:19 发表
请教前辈:
我的参数调整后还是老样子,就是一直在算,出来数据,最后死机.到是没有出现错误提示.感觉是不收敛还是怎么的.这是什么原因?其实关于这个问题的混沌判据:如相图\时程图\LYAPUNOV指数 ...



了解参数变化时的影响可以
1、画出参数变化时的LE指数图
2、画出分岔图。
你这里就是计算的速度比较慢了一点。
 楼主| 发表于 2007-7-12 10:39 | 显示全部楼层

回复 #16 无水1324 的帖子

前辈,在我的机子上怎摸也运行不通.就是一个劲在计算,但不出结果.看来你说的运行时间比较长,也就几分钟.不知道是何原因??:@)
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-19 09:06 , Processed in 0.158592 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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