Погрешность метода

Погрешность метода#

На основе презентации Ивана Цыбулина, Ярослава Холодова.

Многие методы вычислительной математики являются приближенными, то есть позволяют получить ответ с заданной точностью. Крайне важно уметь определять погрешность, обусловленную использованием приближенного метода. Такая погрешность называется ошибкой метода. По сути это есть разница между истинным (математическим) значением и тем, который мы получаем при вычислении.

Оценим погрешность метода для некоторых вычислительных задач.

\[f_j^{(1)}=\frac{f_{j+1}-f_j}{x_{j+1}-x_j}=\frac{f_{j+1}-f_j}{h}\]

Обозначим \(x_j = x_0\). Тогда погрешность метода будет равна

\[ \varepsilon_{\text{method}}=\left|f'(x_0) - \frac{f(x_0 + h) - f(x_0)}{h}\right| \]

Воспользуемся формулой Тейлора с остаточным членом в форме Лагранжа:

\[\begin{split} f(x_0 + h) = f(x_0) + f'(x_0) h + \frac{f''(\xi)}{2} h^2, \;\; \xi \in [x_0, x_0 + h]\\ \left|f'(x_0) - \frac{f(x_0 + h) - f(x_0)}{h}\right| = \frac{|f''(\xi)|h}{2} \end{split}\]

Пусть известно, что \(|f''(\xi)| \leq M_2\) - верхняя оценка второй производной. Тогда ошибку (погрешность) метода можно оценить как

\[ \varepsilon_\text{method}=\left|f'(x_0) - \frac{f(x_0 + h) - f(x_0)}{h}\right| \leqslant \frac{M_2 h}{2} \]

Итого, максимальная погрешности метода

\[\varepsilon_\text{method} = \frac{M_2 h}{2}\]

Отсюда также видно, что данная конечно-разностная схема имеет 1-ый порядок аппроксимации.

\[ f^{(1)}(x) = \frac{f(x + h) - f(x - h)}{2h}. \]

Пользуясь такими же разложениями

\[\begin{split} f(x_0 \pm h) = f(x_0) \pm f'(x_0) h + \frac{f''(x_0)}{2} h^2 \pm \frac{f'''(\xi_{1,2})}{6} h^3,\\ \xi_1 \in [x_0 - h, x_0], \xi_2 \in [x_0, x_0 + h], \end{split}\]

заключаем, что

\[\begin{split} \varepsilon_\text{method}=\left|f'(x_0) - \frac{f(x_0 + h) - f(x_0 - h)}{2h}\right| = \frac{|f'''(\xi_2) + f'''(\xi_1)|h^2}{12},\\ \left|f'(x_0) - \frac{f(x_0 + h) - f(x_0 - h)}{2h}\right| \leqslant \frac{M_3 h^2}{6}, \qquad M_3 = \max |f'''(\xi)| \end{split}\]

Опять же видим, что данный метод имеет второй порядок, так как \(\varepsilon_\text{method} = O(h^2)\).

Погрешность метода вводится не только для разностных схем, но вообще для любого алгоритма, выполняемого на компьютере. К примеру, расчет функции \(f(x)=\sin x\) в некоторой точке через её ряд Тейлора.

Для функции \(\sin x\) ряд Тейлора в окрестности точки \(x=0\) выглядит следующим образом $\( \sin x=x-\frac{x^3}{6}+\frac{x^5}{120}+\cdots=\sum_{k=0}^{\infty}(-1)^k \frac{x^{2 k+1}}{(2 k+1) !} \)$

Радиус сходимости у такого ряда бесконечный, так что можем им пользоваться для нахождения значения функции в любой точке. Но как суммировать бесконечный ряд на компьютере?

Естественно, никак нельзя. Придётся ограничиться несколькими членами этого ряда, а остаток и будет погрешностью метода в данном случае.

\[\sin x=\underbrace{\sum_{k=0}^n(-1)^k \frac{x^{2 k+1}}{(2 k+1) !}}_{S_n}+\frac{x^{2 n+2}}{(2 n+2) !} \sin ^{(2 n+2)} \xi, \quad \xi \in[0, x]\]

Как раз \(S_n\) мы и вычисляем в нашей программе. Погрешность от истинного же значения будет

\[\varepsilon_{\text {method }} \equiv\left|\frac{x^{2 n+2}}{(2 n+2) !} \sin ^{(2 n+2)} \xi\right| \leqslant \frac{x^{2 n+2}}{(2 n+2) !} M_{2 n+2}\]

Так как все производные функции \(\sin x\) ограничены по модулю единицей, \(M_{2 n+2}=1\) и

\[ \varepsilon_{\text {method}}=\frac{x^{2 n+2}}{(2 n+2) !} \]

При стремлении \(n \rightarrow \infty\) ошибка метода начиная с \(n=n_0>x / 2\) монотонно стремится к нулю благодаря факторилу в знаменателе.