wwg.no.19 发表于 2008-1-28 11:47

请各位帮我看个关于精度溢出的问题

function num_euler_formula2
clc
%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]
查看完整版本: 请各位帮我看个关于精度溢出的问题