马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
function dx=duffing(t,x);
mu=0.168; F=0.15; w=1;
dx=[x(2);F*sin(w*t)-mu*x(2)+x(1)/2-x(1)^3/2];
%要调用duffing.m
[t,u]=ode45('duffing',[0:2*pi/200:100],[0 0],[]);
figure(1); Y=fft(u(:,1));%对数值解作傅立叶变换
Y(1)=[];%去掉零频分量
n=length(Y);%计算频率个数
power=abs(Y(1:n/2)).^2/(length(Y).^2);%计算功率谱
freq=100*(1:n/2)/length(Y);%计算频率,因为步长为0.01,而不是1,故乘以100
plot(freq,power,'k')
拷贝别人的程序算得,但是有错误Warning: Integer operands are required for colon operator when used as index.不知怎么回事?
[ 本帖最后由 ChaChing 于 2010-1-12 18:21 编辑 ] |