매트랩 질문 급합니다!
-
게시물 수정 , 삭제는 로그인 필요
m = 10; k = 10; F0 = 1; t1 = 1; wn = sqrt(k/m);
t = 0:0.01:15;
Heaviside = stepfun(t,t1);
for i = 1:max(length(t))
xt(i) = Fo/k*(t(i)/t1 - sin(wn*t(i))/wn/t1) - Fo/k*((t(i)-t1)/t1 - sin(wn*(t(i)-t1))/(wn*t1))*Heaviside(i);
end
figure
plot(t,xt,'r','LineStyle','--'); hold
xo = [0;0];
ts = [0 15];
[t,x] = ode45(@f,ts,xo);
plot(t,x(:,1),'b','LineStyle','--');
xlabel('t');
ylabel('x(t)');
title('엄밀해 vs 수치해');
function v= f(t,x)
m = 10; k = 10; F0 = 1; t1 = 1; wn = sqrt(k/m);
v = [x(2); x(1).*-wn^2 + (t/t1)*(F0/m) + (t-t1)/t1*F0/m.*stepfun(t,t1)];
end
여기서 수치해를 엄밀해 그래프와 비슷하게 하려면 뭘 해야할까요...?
코드는 그대로 작성했는데 그래프가 많이 다르네요... 뭐 하나가 잘 못 된 것 같은데 그게 뭔지 모르겠습니다.
#매트랩 질문