매트랩 질문
-
게시물 수정 , 삭제는 로그인 필요
z = 0.1; wn = 3.16; F0 = 30; k = 2000; th = atan(z/sqrt(1-z^2));
wd = wn*sqrt(1-z^2); t = 0:0.01:12; t0 = 0;
Heaviside = stepfun(t,t0);
xt = F0/k - F0/(k*sqrt(1-z^2))*exp(-z*wn*(t-t0)).*cos(wd*(t-t0)-th).*Heaviside;
plot(t,xt,'r'); hold on
xo = [0;0]; ts = [0 12];
[t,x] = ode45('f',ts,xo);
plot(t,x(:,1),'b'); hold off
function v = f(t,x)
z = 0.1; wn = 3.16; F0 = 30; k = 2000;
to = 0; m = k/(wn^2);
v = [x(2), x(2).*-2*z*wn + x(1).*-wn^2 + F0/m*stepfun(t,to)];
end
이 코드에서
'f'은(는) 인식할 수 없는 함수 또는 변수입니다.
오류 발생: odearguments (92번 라인) f0 = ode(t0,y0,args{:}); % ODE15I sets args{1} to yp0.
오류 발생: ode45 (104번 라인) odearguments(odeIsFuncHandle,odeTreatAsMFile, solver_name, ode, tspan, y0, options, varargin);
오류 발생: sol_391 (14번 라인) [t,x] = ode45('f',ts,xo);
이런 오류가 자꾸 뜨는데 원인이 뭘까요....?
z = 0.1; wn = 3.16; F0 = 30; k = 2000; th = atan(z/sqrt(1-z^2));
wd = wn*sqrt(1-z^2); t = 0:0.01:12; t0 = 0;
Heaviside = stepfun(t,t0);
xt = F0/k - F0/(k*sqrt(1-z^2))*exp(-z*wn*(t-t0)).*cos(wd*(t-t0)-th).*Heaviside;
plot(t,xt,'r'); hold on
xo = [0;0]; ts = [0 12];
[t,x] = ode45('f',ts,xo);
plot(t,x(:,1),'b'); hold off
function v = f(t,x)
z = 0.1; wn = 3.16; F0 = 30; k = 2000;
to = 0; m = k/(wn^2);
v = [x(2), x(2).*-2*z*wn + x(1).*-wn^2 + F0/m*stepfun(t,to)];
end
#매트랩 질문