Hot answers tagged

12

At least one difference is that in a system of ODEs, all the equations are differential, e.g.: $$ \dot{x}=f(x,y)\\ \dot{y}=g(x,y) $$ whereas the definition of DAEs that I'm familiar with includes some non-differential (i.e. algebraic) equations in the set, e.g.: $$ \dot{x}=h(x,y)\\ y=l(x,y) $$ where $l$ is non-trival, and its solution can't be easily ...


8

Differential-algebraic equations (DAE) are equations of the form $F(t,x,x')=0$, with the unknown function being $x(t)$. So in a way are generalizations of ODEs. A nice place to start is here. On the other hand an algebraic differential equation is a totally different thing. The wikipedia page gives an overview, but basically is an equation involving ...


4

There are many definitions of DAE index. MATLAB is probably referring to the differentiation index. A few integrators can solve Hessenberg form index-2 DAEs (I believe IDA can do this, along with a few other packages), but most require the index to be 1 or less. Reducing the index of your DAE requires manipulating the underlying equations in the DAE, e.g., ...


3

Here is an identical copy of an answer on MO: One intuitive way to understand a DAE is to interpret it as a dynamical system which can be controlled by some input signals, whose output signals have to satisfy some (equational) constraints. For a typical multibody system, the input signals are the forces perpendicular to the constraints, the output signals ...


2

Since you have the Jacobian matrix, you can apply it within a Gauss-Newton or Levenberg-Marquardt method to effectively approximate the Hessian and gradient of your least squares objective function (the gradient is $J^{T}f$, and the Hessian is to first order $J^{T}J$.) You could also use the Jacobian to compute the gradient of your least squares ...


2

DifferentialEquations.jl in Julia can do it if you can write it in mass-matrix form. You won't find it mentioned in the tutorial, but you can provide a mass matrix as part of the SDEProblem. Some of the stiff solvers can handle the problem (I see it's not well-documented yet which ones, but it's the symplectic and implicit Euler forms). I will caution that ...


1

ode45 is an explicit (Runge-Kutta) ODE solver and, therefore, is only conditionally stable. Normally, ode45 will automatically reduce the step size to maintain stability. But, as discussed in this article, Error Control Matters, sometimes it does not because the error tolerances are too large. Try modifying your code as follows to reduce the error tolerances:...


1

At line 473 of the source code you provided : contrl - is the actual driver of the package. This routine contains the strategy for nonlinear equation solving. This code is written in Fortran 77 so you can't take benefit from a module. That means that you probably need to create a main program from scratch, prepare the arguments to call the subroutines you ...


Only top voted, non community-wiki answers of a minimum length are eligible