# What is the meaning of stability in numerical analysis? How to deterimne the stability of a numerical method?

My question may be so general and simple but I'm really confused about the meaning of the "stability". I look that up in the Internet but there was no general answer to this question. Can anyone help me to understand its meaning or definition and its types or references about the subject? And how is it determined?

For example what is "stability" in spectral methods where we use a set of functions to approximate the solution or in other methods?

• Stability is usually about some quantity, usually an error, being bounded. With respect to differential equations, stability usually refers to numerical schemes producing bounded solution errors based on the approximation scheme being used. Stability analysis can be done to see for what values of approximation variables allow the errors in the solution to be bounded. – spektr Feb 7 '17 at 20:19
• @choward Can you explain more about the first sentence in an answer below with examples? I would like to know more about it and the way it is determined. And also can you introduce a reference? – MohammadSh Feb 8 '17 at 7:13
• @MohammadSh I would recommend looking up some textbook first. If you are interested in spectral methods, see Hesthaven, Gottlieb, Gottlieb, "Spectral Methods for Time-Dependent Problems". – cpraveen Feb 8 '17 at 7:51

You can define a method/algorithm stable if during the various steps it not amplifies excessively the errors on the data.

So you introduce some bounded estimate. Note that this kind of errors, monitored by the stability check, are different from an error occurred by the ill-condition of a problem, i.e. in the stability you check the errors propagated by the algorithm itself.

Another thing to note is that stability is connected to the problem, for example the same method is stable for a problem and unstable for a different problem, see chapter 1.16 of .

As reference can be . The book of Kendal, , cover different arguments and you can find the relative stability proof (I suggest it because I like it). In general books over specific argument have got the stability proof for the methods covered.

 Nicholas J. Higham, MR 1927606 Accuracy and stability of numerical algorithms, ISBN: 0-89871-521-0.

 Atkinson, Kendall, and Weimin Han. Theoretical numerical analysis. Vol. 39. Berlin: Springer, 2005.

• Very nice explanation in the second paragraph but can we say an ill-conditioned problem (with a large condition number) is stable? – MohammadSh Feb 8 '17 at 14:55
• @MohammadSh thanks. The notion of stable is related to a algorithm applied to a precise problem, no to a problem itself. For this reason you can not say that a problem is stable. Note that you can bult a stable algorithm only for a well-conditionated problem, because in the ill-conditionated problem the errors on the data are aplified by the problem. If you have got a ill-conditionate problem before to build a stable algorithm you need to reformulate the original problem in an equivalente (or take a good approximation of the original problem) well-conditionated. – Mauro Vanzetto Feb 8 '17 at 16:01

If in a numerical method, the solution $\phi$ at an iteration level $n+1$ is given by,

$B_1 \phi^{n+1}=B_2 \phi^n +f$

Then for an initial hypothetical perturbation $\delta^0$

$B_1 \delta^{n+1}=B_2 \delta^n$

Then the numerical method is stable if for all $\delta^0$, $\delta^n$ remains bounded as $n\rightarrow \infty$

You got two questions. I can answer the first one about real coding and design.

The stability is for your algorithm. If the algorithm is not sensitive to the approximations made at every step, then the stability is implied.

Consider an example:

Suppose you have a lot of steps (iterations) to deal your data, and you make an approximate to the result of every step. At the end of your algorithm, you will get a huge deviation through enough steps. Especially in the iteration process.

This kind of error produced by your algorithm has nothing to do with your data. The deviation is acceptable if it is under your control, thus the algorithm is stable. Here is some advice to avoid such problems in your experiment:

1. Deduce calculation times.

2. Avoid addition of a small number to a big number.

3. Avoid subtraction of two numbers of similar magnitude

4. Avoid division by a small number and multiplication by a large number.