57. Строгая и нестрогая (слабая) устойчивость.

Для того, чтобы определить, какой устойчивостью обладает метод, необходимо проверить его на примере y’ = lambda*y:

Аналитическое решение будет иметь вид:
                                
y(t) = y0 * exp(lambda * t)

Численное решение будет иметь вид:
                                
y_{n+1} = R(h*lambda)*y_n
        
где y_n - решение, полученное на n-ой итерации;
        
R(z), z = h*lambda - функция устойчивости метода;
        
h - шаг метода;
        
lambda - комплексное число, помогающее определить устойчивость при наличии малых возмущений (ошибки округлений, небольшие погрешности в данных).

То есть получаем, что у нас есть комплексное число z, имеющее Re(z) и Im(z) части. Для каждой конкретной задачи оно будет разным, так как зависит от выбранного шага h и от заданных условий по возмущениям lambda.

Строгая устойчивость необходима, если мы считаем неопределённое количество шагов по времени. Например, при моделировании долгосрочных процессов Здесь требуется, чтобы ||R(z)||<1 - в таком случае ошибки экспоненциально уменьшаются, что хорошо для длительных вычислений.

Нестрогая (слабая) устойчивость применима, если нам нужно сделать лишь несколько шагов по времени. Здесь достаточно, чтобы ||R(z)||=1, что допускает небольшой рост ошибок, но не приводит к их чрезмерному росту на коротких интервалах.

Примеры функций устойчивости некоторых методов: