24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2658  |  回复: 21
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

shengjunjie

木虫 (正式写手)

[求助] 如何求解描述振动的二阶微分方程

那位大侠给看看这种描述振动的二阶微分方程,困扰我一阵子了

其中C1=0.08;C2=2.3;e=0.3*(sin(335*t))^2
如何根据上面的公式求解λ和时间的关系,用matlab画出类似下面的图形
回复此楼
好好学习,多运动,多发Paper...
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shengjunjie

木虫 (正式写手)

引用回帖:
12楼: Originally posted by dbb627 at 2012-04-17 10:43:35:
odefun=@(t,x);
=ode45(odefun,,);% 自变量的范围和初始值
figure(1);
plot(t,x(:,1))
Y=x(:,1)
pn=floor(log2(length(Y)));
N=2^pn;
S=Y(1:N);
Y1 = fft(S);%进行N个点的fft变换
figure;
f1 = 1/(t(2) ...

我在公式里面加了阻尼那个选项,和别人的公式一样,但是感觉结果和他的差距很大啊(位移曲线一样,但是振幅曲线差距很大),不知道什么原因
这是原图

然后我根据你给我程序的结果是
odefun=@(t,x)[x(2);3*x(2).^2/(2*x(1)*(1+0.08*x(1).^3))-1.342*10^7*(x(1).^4-x(1)+(61.98/6.71)*(0.185*sin(2*pi*410*t)).^2)./(1+0.08*x(1).^3)-(5*10^3)*x(1).^3*x(2)./(25+2*x(1).^3)];
[t,x]=ode45(odefun,[0 0.06],[1 0]);% 自变量的范围和初始值
figure(1);
plot(t,x(:,1))
Y=x(:,1)
pn=floor(log2(length(Y)));
N=2^pn;
S=Y(1:N);
Y1 = fft(S);%进行N个点的fft变换
figure;
f1 = 1/(t(2)-t(1))*(0:N/2)/N;
Yabs=abs(Y1(1:N/2+1));
Ym=find(diff(sign(diff(Yabs)))<0)+1;%求幅值极大值的索引
Ymax=max(Yabs(Ym));
Yabs(Yabs Ym1=find(diff(sign(diff(Yabs)))<0)+1;%求幅值极大值的索引
plot(f1,Yabs(1:N/2+1))
hold on;
plot(f1(Ym1),Yabs(Ym1),'r*');
axis([0 f1(Ym1(end)) 0 1.1*Ymax]);
xlabel('频率 (Hz)')
ylabel('振幅|A| (m)')
结果

好好学习,多运动,多发Paper...
13楼2012-04-17 13:53:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 22 个回答

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
臭水沟: 金币+2, 谢谢交流~~ 2012-04-16 15:55:10
需要给初值条件
假设λ(0)=0.1 一阶导初值为0.01,
odefun=@(t,x)[x(2);3*x(2)./(2*x(1)*(1+0.08*x(1).^3))-2.3*(x(1).^4-x(1)+0.3*(sin(335*t)).^2)./(1+0.08*x(1).^3)];
[t,x]=ode45(odefun,[0 1],[0.1 0.01]);
plot(t,x(:,1))
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
2楼2012-04-16 15:02:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shengjunjie

木虫 (正式写手)

引用回帖:
2楼: Originally posted by dbb627 at 2012-04-16 15:02:28:
需要给初值条件
假设λ(0)=0.1 一阶导初值为0.01,
odefun=@(t,x);
=ode45(odefun,,);
plot(t,x(:,1))

非常感谢。你好,我今天下午用了一个类似的方法计算出来了。忘记写初始条件了,λ(0)=1,λ(0)的导数为0.
你知道怎么根据这个方程求振幅不:其中C1=0.08;C2=1.342*10^7;e=9.23*(sin(2*pi*f*t))^2.
好好学习,多运动,多发Paper...
3楼2012-04-16 20:34:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shengjunjie

木虫 (正式写手)

引用回帖:
2楼: Originally posted by dbb627 at 2012-04-16 15:02:28:
需要给初值条件
假设λ(0)=0.1 一阶导初值为0.01,
odefun=@(t,x);
=ode45(odefun,,);
plot(t,x(:,1))

非常感谢你的答复,太好啦。

下面是初始条件和各个参数

怎么根据他们求振幅
好好学习,多运动,多发Paper...
4楼2012-04-16 20:43:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见