playfish 发表于 2007-4-19 17:01

求教duffing方程的程序

Huang的论文中提到了用HHT来分析duffing方程。我实验了一下,但求出来的duffing方程数值解跟他的图不一样。很郁闷,不知道问题出在哪,请教各位。
我的程序:
function ydot=duffing(t,y,sigma,gama,omiga)
if nargin<3
    sigma=-1;
    gama=0.1;
    omiga=1/25;
end
ydot=;


yo=;
tspan=linspace(0,50,1000);
=ode45(@duffing,tspan,yo);
plot(t,y(:,1),t,y(:,2),'r');

谢谢了。

shenyongjun 发表于 2007-4-19 19:53

Huang的哪篇论文?请指明。

playfish 发表于 2007-4-20 15:31

The empirical mode decomposition and the Hilbert spectrum for nonlinear and non-stationary time series analysis
Received 3 June 1996; accepted 4 November 1996

zhangnan3509 发表于 2007-4-20 15:40

回复 #3 playfish 的帖子

这篇文章在哪里被收录,我怎么找不到呀

playfish 发表于 2007-4-20 16:20

文章上说是The Royal Society,Printed in Great Britain。

playfish 发表于 2007-4-20 16:21

同志们还是先帮我看看程序有哪些问题吧。duffing方程的模拟数据在黄大吉的那篇镜像延拓的文章里也有。

zhlong 发表于 2007-10-25 14:17

楼主duffing方程定义有问题,其实程序很简单:

function dx=duffing1(t,X)
%对应huang98的p47的duffing振子
x1=X(1);
x2=X(2);
dx=zeros(2,1);
dx(1)=x2;
dx(2)=x1-x1.^3+0.1*cos(2*pi/25*t);%原文献中的参数有问题,x的立方项前的系数应该为+1,而非文献中的-1
x0=;
tspan=;
=ode45('duffing1',tspan,x0);
subplot(311);plot(x(:,1));
subplot(312);plot(x(:,2));
subplot(313):plot(x(:,1),x(:,2));

jingrenzhi 发表于 2007-10-25 16:16

回复 #1 playfish 的帖子

这个程序,我运行了一下!怎么这样?
??? Input argument "y" is undefined.

Error in ==> duffing at 7
ydot=;

zhlong 发表于 2007-10-25 16:19

回复 #8 jingrenzhi 的帖子

程序写错了,y不是那么定义的。参考7楼。

无水1324 发表于 2007-10-25 19:58

回复 #1 playfish 的帖子

7楼的方法可以。

%%%%%%%%%%%%%
没有必要加
if nargin<3
    sigma=-1;
    gama=0.1;
    omiga=1/25;
end

jingrenzhi 发表于 2007-10-25 21:25

回复 #9 zhlong 的帖子

7楼的x 的定义,也不是太对呀?是不是?

zhlong 发表于 2007-10-25 21:26

回复 #11 jingrenzhi 的帖子

什么地方不对?运行没问题,结果看起来也还正确。

jingrenzhi 发表于 2007-10-25 21:28

回复 #12 zhlong 的帖子

我运行了一下,怎么错了?你把你运行的程序,贴上来!我运行一下看看!

zhlong 发表于 2007-10-25 21:30

回复 #13 jingrenzhi 的帖子

7楼第一个是方程,第二个就是主程序,全在那儿了,应该毛问题的。

[ 本帖最后由 zhlong 于 2007-10-25 21:33 编辑 ]

jingrenzhi 发表于 2007-10-25 21:32

回复 #14 zhlong 的帖子

哦!我再看看!你帮忙看看!这个贴子里的问题!谢谢!"请教:PSD曲线变化剧烈说明什么?"
页: [1] 2
查看完整版本: 求教duffing方程的程序