I have a system of nonlinear equations on the general form: \begin{align} \mathbf{M}(\bar{y})\dot{\bar{y}} =\bar{f}(\bar{y},t) \end{align} Where $\mathbf{M}(\bar{y})$ is a matrix and $\bar{f}$ is a system of non-linear functions acting on $\bar{y}$. This system has many stiff elements and so i wish to solve it using the implicit BDF method with newton iterations for solving the non-linear system.

My question is then related to how to treat the mass matrix in the BDF method when it depends on $\bar{y}$. When reading about the method in textbooks or e.g. wikipedia, the method is stated as: \begin{align} \sum_{k=0}^{s}\alpha_k\bar{y}_{n-k} = h\bar{f}(\bar{y}_{n},t_{n}) \end{align} But if a mass matrix is included, should it be treated as the lhs or rhs? I.e. \begin{align} \sum_{k=0}^{s}\alpha_k\mathbf{M}(\bar{y}_{n-k})\bar{y}_{n-k} = h\bar{f}(\bar{y}_{n},t_{n}) \end{align} Or \begin{align} \mathbf{M}(\bar{y}_{n})\sum_{k=0}^{s}\alpha_k\bar{y}_{n-k} = h\bar{f}(\bar{y}_{n},t_{n}) \end{align} I hope my question makes sense.

  • 1
    $\begingroup$ If you multiply the equation by $M^{-1}$ (even if only formally), then the first equation you have is in the standard form in which ODEs are usually stated. Then apply the BDF method to get the time-discrete form. If possibly, you can then multiply by $M$ again. $\endgroup$ – Wolfgang Bangerth Nov 23 '18 at 23:47

Your second one is the correct form. BDF approximates derivative with backward difference.

Write $$ M(y) \dot{y} = f(y,t) $$ as $$ \dot{y} = M^{-1}(y) f(y,t) =: F(y,t) $$ write the BDF for this $$ \sum_{k=0}^s \alpha_k y_{n-k} = h F(y_n,t) = h M^{-1}(y_n) f(y_n,t_n) $$ Hence you get $$ M(y_n) \sum_{k=0}^s \alpha_k y_{n-k} = h f(y_n,t_n) $$


This site is temporarily in read only mode and not accepting new answers.

Not the answer you're looking for? Browse other questions tagged .