声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3035|回复: 4

[分形与混沌] 急求:用matlab来画出Lorenz的关于参数r的分叉图程序

[复制链接]
发表于 2006-4-12 22:06 | 显示全部楼层 |阅读模式

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

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

x
<STRONG>急求:用matlab来画出Lorenz的关于参数r的分叉图程序<BR>老板要求做出来,很着急<BR>谢谢各位大虾了</STRONG>
回复
分享到:

使用道具 举报

发表于 2006-4-13 12:12 | 显示全部楼层
<P>clear all<BR>global r<BR>t0=[0 150];%积分时间<BR>y0=[1,0,0];</P>
<P>%bifurcation<BR>for r=20:0.05:30 %r的变化精度<BR>[t,y]=ode45('Lorenz',t0,y0);<BR>[Xmax]=getmax(y);</P>
<P>plot(r,Xmax,'b','markersize',1)<BR>hold on<BR>clear Xmax<BR>end<BR>xlabel('r')<BR>ylabel('Xmax')<BR><BR><BR>function [Xmax] = getmax(y)<BR>a=length(y);<BR>j=1;<BR>for i=(a-1)/2:a<BR>    <BR>    b=(y(i,1)-y(i-2,1))/2;<BR>    c=(y(i,1)+y(i-2,1))/2-y(i-1,1);<BR>    <BR>    if y(i-2,1)&lt;=y(i-1,1)&amp;y(i-1,1)&gt;=y(i,1)&amp;c==0<BR>       Xmax(j)=y(i-1,1);<BR>       j=j+1;<BR>   elseif y(i-2,1)&lt;=y(i-1,1)&amp;y(i-1,1)&gt;=y(i,1)<BR>       Xmax(j)=y(i-1,1)-b^2/(4*c);<BR>       j=j+1;<BR>   end<BR>end<BR><BR>function dy = Lorenz(t,y)<BR>global r<BR>dy=zeros(3,1);<BR>dy(1)=-10*(y(1)-y(2));<BR>dy(2)=-y(1)*y(3)+r*y(1)-y(2);<BR>dy(3)=y(1)*y(2)-8*y(3)/3;<BR><BR><BR>仅供参考!要想图漂亮一点,可以把积分时间和r的变化精度增大,但是计算时间会变长。</P>
发表于 2006-4-15 11:02 | 显示全部楼层
??? Undefined function or variable 'getmax'.怎么回出现这样的错误那
发表于 2006-4-15 12:30 | 显示全部楼层
getmax和 Lorenz是两个函数,要另外写两个M文件。
 楼主| 发表于 2006-4-17 21:54 | 显示全部楼层
谢谢 二楼的朋友
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-1 17:51 , Processed in 0.088687 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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