Keep getting this error and I cannot figure out why: Dimensions of arrays being concatenated are not consistent.
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Teo Protoulis
el 11 de Nov. de 2018
Editada: madhan ravi
el 11 de Nov. de 2018
I have the following code trying to solve differential equation of second order:
[t,X] = ode45(@(t,X) odefun_4(t,X,u), [0 10], [0;0]);
function dx = odefun_4(t,x,u)
%xdisp(u);
m = 15;
b = 0.2;
k = 2;
%u = interp1(ut,u,t);
dx = [x(2); u/m - (b/m)*x(2) - (k/m)*x(1)];
end
Vector u is a 1x100 vector. I expect to get a 2x100 matrix as the return value. What am I doing wrong ?
0 comentarios
Respuesta aceptada
madhan ravi
el 11 de Nov. de 2018
Editada: madhan ravi
el 11 de Nov. de 2018
EDITED
m = 15;
b = 0.2;
k = 2;
ut = linspace(0, 10);
u = 5 * sin(2 * ut) + 10.5; % input of our system - external forc
dx = @(t,x,u)[x(2); u/m - (b/m)*x(2) - (k/m)*x(1)]
for u=u
[t,X] = ode45(@(t,x)dx(t,x,u), [0 10], [0;0]); %function calling
plot(t,X)
hold on
end
11 comentarios
madhan ravi
el 11 de Nov. de 2018
Editada: madhan ravi
el 11 de Nov. de 2018
Anytime :) make sure to accept the answer so that people know the question is solved
Más respuestas (0)
Ver también
Categorías
Más información sobre Ordinary Differential Equations 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!