ode45 inside calling funciton error
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
I have forced.m funciton and i want to use inside ode45 funciton but doesn't work i have error
Not enough input arguments.
Error in forced (line 2)
yp = [y(2);(((f/m)*sin(W*t))-((c/m)*y(2))-((k/m)*y(1)))];
Error in Untitled2 (line 11)
[t,y]=ode45(forced, tspan, y0);
main code
tspan=[0 5];
y0=[0.02;0];
x=y(:,1);
f=200;
k=200;
m=2;
W=sqrt(k/m);
er=0.1;
c=2*er*W*m;
[t,y]=ode45(forced, tspan, y0);
plot(t,y(:,1)); grid on xlabel(‘time’)
ylabel('Displacement')
title('Displacement Vs Time')
hold on;
forced.m
function yp = forced(t,y)
yp = [y(2);(((f/m)*sin(W*t))-((c/m)*y(2))-((k/m)*y(1)))];
0 comentarios
Respuestas (2)
Star Strider
el 12 de En. de 2022
All the arguments the function needs must be passed to it as additional parameters.
tspan=[0 5];
y0=[0.02;0];
% x=y(:,1);
f=200;
k=200;
m=2;
W=sqrt(k/m);
er=0.1;
c=2*er*W*m;
[t,y]=ode45(@(t,y)forced(t,y,f,k,m,W,er,c), tspan, y0);
plot(t,y(:,1));
grid on
xlabel('‘time’')
ylabel('Displacement')
title('Displacement Vs Time')
hold on;
function yp = forced(t,y,f,k,m,W,er,c)
yp = [y(2);(((f/m)*sin(W*t))-((c/m)*y(2))-((k/m)*y(1)))];
end
.
9 comentarios
Ver también
Categorías
Más información sobre Multirate Signal Processing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!