Lorenz系统中加入高斯白噪声程序,错在哪里?
function dy=lorenz(t,y)a=10;
r=24.10;
b=8/3;
sigma=0.2;
rm1=wgn(1,1001,sigma);
rm2=wgn(1,1001,sigma);
rm3=wgn(1,1001,sigma);
dy=zeros(3,1);
dy(1)=-a*(y(1)-y(2))+rm1;
dy(2)=r*y(1)-y(2)-y(1)*y(3)+rm2;
dy(3)=y(1)*y(2)-b*y(3)+rm3;
%主程序
close all
y0=;
=ode45(@lorenz,0:0.06:60,y0);
figure(1);
plot(tt,yy(:,1))
xlabel('t'),title('y(1)')
下面是错误提示:
???In an assignmentA(I) = B, the number of elements in B and
I must be the same.
Error in ==> C:\Documents and Settings\Administrator\桌面\lorenz.m
On line 23==> dy(1)=-a*(y(1)-y(2))+rm1;
我估计是高斯白噪声函数wgn搞错了,应该怎么改呢?
[ 本帖最后由 weiduqu 于 2008-11-24 22:52 编辑 ] Lorenz系统 是什么额
能给我讲讲不
长长见识:@) rm1=wgn(1,1001,sigma);
rm2=wgn(1,1001,sigma);
rm3=wgn(1,1001,sigma);
该语句好像有问题
改为如下试试:
rm1=wgn(1,1,sigma);
rm2=wgn(1,1,sigma);
rm3=wgn(1,1,sigma); 谢谢楼上的,程序没有出现错误了,但是好象噪声对系统没有任何影响, sigma大小变化而Lorenz系统相图没有改变,不知什么原因?
[ 本帖最后由 weiduqu 于 2008-11-29 21:56 编辑 ] 我觉得还是有区别的,因为每次得到的相图不同 我觉得还是有区别的,因为每次得到的相图不同 程序终于调好了,谢谢lzjtu的热心帮助 不客气,共同交流 dy(1)=-a*(y(1)-y(2))+rm1;
dy(2)=r*y(1)-y(2)-y(1)*y(3)+rm2;
dy(3)=y(1)*y(2)-b*y(3)+rm3;
这样加入噪声的话 相当于在每个分量后加入一个定值 ,这还算噪声吗? 加入的是噪声,怎么是定值?你再理解一下ode45函数。
页:
[1]