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) $$

  • $\begingroup$ Wonderful, thank you very much :) $\endgroup$ – Rasmus Nov 23 '18 at 6:31

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.