I'm studying a quasi-steady force model (published in a fluid dynamics journal) that consists of coupled, nonlinear ODEs that describe unsteady aerodynamics -- recently, my advisor and I have found some solutions to the system that appear to be stable-ish.

My question is: how can I proceed to confirm the stability of such solutions? I'm having a hard time thinking of a way to linearize the models for lift and drag forces, and then setting up an eigenvalue problem.

One way I've thought of is to manually perturb the state variables. That is, write functions that stop my solver when a steady state solution is detected, look at the final values of all of the state variables, then proceed to make a 2nd call to the solver, using these final values as the new initial values. And, changing any of the initial values before making the 2nd call to the solver is then effectively perturbing a state variable from its steady state. If after this small perturbation, the solutions gotten from the 2nd call to the solver again settle back into the same set of solutions (i.e. a steady-state solution for a fixed set of parameters), then this would indicate that the solutions could be stable.

Is this a good approach?

If so, should I manually perturb all of the state variables -- or only the state variables that I am interested in focusing on?

By what percentage should I perturb the state variables, in order to be able to conclude that the solutions are stable? Is there a common benchmark / standard to follow in perturbation / stability theory?

If this is not a good approach, can you recommend another approach?


  • 1
    $\begingroup$ Can you edit your post to include the equations? In any event, the perturbation based approach you roughly describe can be used if done in a rigorous way. You can build an approximation of the linearization at any fixed point by computing the perturbations to all state variables, thus building a matrix coupling the disturbances to that base state and describing the linear behavior. The singular values would give the stability. $\endgroup$ – Spencer Bryngelson Oct 24 '17 at 7:55
  • 1
    $\begingroup$ If you found the steady state using a solver that looks for a steady state, then you can't use that same solver again to test stability -- because it will just revert to the steady state (by design). On the other hand, if you just used a time-dependent solver for your problem and it found a steady state, then by definition that state is steady and perturbations will not lead to any new insight. $\endgroup$ – Wolfgang Bangerth Oct 24 '17 at 15:26
  • 1
    $\begingroup$ @SpencerBryngelson -- you will never find an unstable fixed point with a numerical method because you always have some level of round-off and other numerical errors. The point of an unstable fixed point is that only trajectories from a lower-dimensional manifold lead into it, but you won't be able to numerically stay on this lower-dimensional manifold. $\endgroup$ – Wolfgang Bangerth Oct 24 '17 at 22:58
  • 1
    $\begingroup$ It's a good check and something you can run overnight. But in all likelihood, if the solution nicely settles into a steady state, then there is no reason why it should suddenly change. (This statement could be made more mathematical, but it captures the essence of what it means to converge to a steady state.) $\endgroup$ – Wolfgang Bangerth Oct 25 '17 at 2:35
  • 1
    $\begingroup$ The actual floating point number "inf" is probably not a good choice, but 1e16 seconds is still a fairly long time worth trying :-) $\endgroup$ – Wolfgang Bangerth Oct 25 '17 at 19:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.