MATLAB: How to get MATLAB to solve a system of equations containing differential and algebraic equations

ode45

I have a system of about 40 equations, about half are ordinary differential equations (that must be solved numerically), the other half are simple algebraic equations, but all rely on variables solved for in the other type. I have been trying to use ode45 to solve the system, but the variables solved for in alegraic equations do not update with time steps, even though the variables used to calculate them are changing. For example, if i have dx1/dt = t, x2 = x1+5, and I use t=0:10, x1 changes with t, but x2 remains constant, even though it should change with x1. Has anybody else had this problem or know a way around it?

Best Answer

Marc,
Thanks for your help. I've never used a mass matrix before and I have a couple of questions. First, how do I determine the index of my DAE (I thought it was only 1, but MATLAB is telling me it appears to be greater than 1)? Each equation contains only first derivatives, but they also contain other variables and first derivatives (e.g. dx3 = x3 + 4*x1 + 2*dx2). Since after looking at some information on indices of DAEs I'm pretty sure mine is greater than 1 and thus not solvable using MATLAB (or at least ODE15s), do you have any suggestions of programs that actually do this?
Related Question