Hi,

I got three variables y1(t), y2(t) and y3(t) which I want to solve for. Moreover I have two ODEs in explicit and coupled form and one algebraic equation , which look as follows:

` 1. Eqn: y1''' = f(y1'', y1', y1, y2'', y2', y2, u) 2. Eqn: y3'' = f(y1', y1, y2'', y2', y2, y3', y3, u) 3. Eqn: y1 = y2 + y3`

u is my input which is a cosine function with amplitude U_g

I want to use ode15s() to solve this system if its correct, with a Mass Matrix M and a form like

` M(t,y)*y′ = f(t,y)`

Therefore I have to reduce the order of the above equations first.

Now my function looks like the following, where "d" represents first differential and "dd" the 2nd differential:

` function out = myodefunc(t, y, U_g, R_e, L_e, M_m, bl_0, bl_1, ...) out = zeros(8, 1); % Reduce Order of Diffenrential Equations`

y1 = y(1); dy1 = y(2); ddy1 = y(3); y2 = y(4); dy2 = y(5); ddy2 = y(6); y3 = y(7); dy3 = y(8); % Define Output

out(1) = y1 - y2 - y3; out(2) = dy1; out(3) = ddy1; out(4) = -(bl_0^3*dy1 - bl_0^2*U_g*cos(2*pi*f0.*t) + bl_1^3*y1^3*dy1 + bl_2^3*y1^6*dy1 - bl_1^2*U_g*cos(2*pi*f0.*t)*y1^2 - ... out(5) = dy2; out(6) = ddy2; out(7) = dy3; out(8) = (L_e*bl_0*s_s_0*dy2 - L_e*bl_0*s_v_0*dy3 + R_e*bl_0*r_s_0*dy2 - R_e*bl_0*r_v_0*dy3 + R_e*bl_0*s_s_0*y2 - R_e*bl_0*s_v_0*y3 + -... end

With a Mass Matrix :

` M = 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1`

Do you guys think, that I implemented this in the right way?

Mainly I am concerned about the algebraic equation, which is in the first line of the output. It's because I get zero output for out(2), out(3), out(5) and out(6).

## Best Answer