请各位帮我看个关于精度溢出的问题
function num_euler_formula2clc
%m=input('m=');
%c=input('c=');
%k=input('k=');
%x0=input('x0=');
%v0=input('v0=');
%f0=input('f0=');
%w=input('w=');
%delt=input('delt=');
%wn=sqrt(k/m);
%z=c/2/m/wn;
%lan=w/wn;
%x=x0;
%xd=v0;
%T=input('T=');
m=18.2
c=1.49
k=43.8
x0=1
v0=1
f0=44.5
w=15
delt=1
T=70;
x=x0;
xd=v0;
wn=sqrt(k/m);
z=c/2/m/wn;
lan=w/wn;
for t=1:delt:T
xdd=(f0*sin(w*t)-k*x0-c*xd)/m;
x0=x0+xd*delt;
xd=xd+xdd*delt;
x(t)=x0;
xxd(t)=xd;
end
n=T/delt;
t=1:delt:T
x
subplot(1,2,1);
plot(t,x);
grid;
xlabel('time');
ylabel('displacement');
title('time and displacement');
subplot(1,2,2);
plot(t,xxd);
grid;
xlabel('time');
ylabel('velocity');
title('time and velocity');
用欧拉法求单自由度谐迫响应,但位移X初始值和最终值差太多,导致用e表示时系统把初始值都认为0了,最终画图时初始阶段画出来的都是一条直线。而且位移应该是衰减的,怎么会递增了
页:
[1]