振动方程理论解和数值解不一致 是编程错了吗
振动方程2x''+x=sin(0.1t)
数值解和理论解 见下面的matlab 程序
clc,clear
global I I_AK F0f
I=1;
I_A=1;
K=1;
f=0.1;
F0=1;
%解析解
x=F0/(K-f^2*(I+I_A))
%数值解
p0=;
=ode45('IRF1',,p0);
p_dis=p(:,1)'; %将位移提取出来
Amp=zeros(1,1);
h=size(t,1);%t一共取了多少个
h1=fix(h/10*9); %t是x轴的变量,取其三分之二的位置,也就是后三分之一的开始点,但是要取个整数,因为正好第三分之二位置不一定有值
Amp(1)=(max(p_dis(1,h1:h))-min(p_dis(1,h1:h)))/2;
Amp
figure
plot(t,p_dis)
xlabel('Time(s)')
ylabel('surge(m)')
function pdot=IRF1(t,p)
global f
global I I_AK F0
pdot=zeros(2,1);
pdot(1)=p(2);
pdot(2)=(F0*sin(f*t)-K*p(1))/(I+I_A);
两者怎么就对应不起来了呢
没细看!
但一个是FRF(steady state), 一个force vib, 可以比较吗?
页:
[1]