# How to solve ODE on array variables

1 view (last 30 days)
Telema Harry on 6 Oct 2022
Answered: Sam Chak on 6 Oct 2022
Ideas and suggestion needed.
I am trying to compute ODE of several array variables. I can split the equations into single equation, but that will take forever to manually compute the matrix algebra and split the equations into it's sub component, as I have several vectors and numerous equations.
See an example in the attached picture.
The question is, can I declare X1 as a column vector variable and solve the ODE on MATLAB.
Thank you for your help
##### 0 CommentsShow -1 older commentsHide -1 older comments

Sign in to comment.

### Accepted Answer

Sam Chak on 6 Oct 2022
Perhaps you can do this way:
tspan = [0 0.1];
x0 = [2 1.5 1 0.5];
[t, x] = ode45(@odefcn, tspan, x0);
plot(t, x), grid on,
xlabel({'$t$'}, 'interpreter', 'latex')
ylabel({'$\mathbf{x}(t)$'}, 'interpreter', 'latex')
legend({'$x_{11}(t)$', '$x_{12}(t)$', '$x_{21}(t)$', '$x_{22}(t)$'}, 'interpreter', 'latex', 'fontsize', 14, 'location', 'northwest')
function xdot = odefcn(t, x)
xdot = zeros(4, 1);
A1 = [0 2; -2 0];
A2 = diag([0 2]*[1; 1]*[15 20]);
A = [A1 zeros(2); zeros(2) A2];
xdot = A*x;
end
##### 0 CommentsShow -1 older commentsHide -1 older comments

Sign in to comment.

### Categories

Find more on Programming in Help Center and File Exchange

R2022a

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!