- 1 курс
- 2 курс
- 3 курс
- 4 курс
- 5 курс
- 6 курс
Old
Old
This is an old revision of the document!
Исследование обусловленности задачи нахождения корня уравнения на примере линейной функции.
Под обусловленностью вычислительной задачи понимают чувствительность ее решения к малым погрешностям входных данных.
Задачу называют хорошо обусловленной, если малым погрешностям входных данных отвечают малые погрешности решения, и плохо обусловленной, если возможны сильные изменения решения. Количественной мерой степени обусловленности вычислительной задачи является число обусловленности, которое можно интерпретировать как коэффициент возможного возрастания погрешностей в решении по отношению к вызвавшим их погрешностям входных данных. Пусть между абсолютными погрешностями входных данных $x$ и решения $y$ установлено неравенство: \[ \Delta(y^*) \leqslant \nu_{\Delta}\Delta(x^*), \] где $ x^* $ и $ y^* $ – приближённые входные данные и приближённое решение соответственно. Тогда величина $ \nu_{\Delta} $ называется абсолютным числом обусловленности.
Если же установлено неравенство \[ \delta(y^*) \leqslant \nu_{\delta}\delta(x^*), \] между относительными ошибками данных и решения, то величину $ \nu_{\delta} $ называют относительным числом обусловленности. Для плохо обусловленной задачи $ \nu \gg 1 $. Грубо говоря, если $ \nu = 10^N $, где $ \nu $ – относительное число обусловленности, то порядок $ N $ показывает число верных цифр, которое может быть утеряно в результате по сравнению с числом верных цифр входных данных.
Ответ на вопрос о том, при каком значении $ \nu $ задачу следует признать плохо обусловленной, зависит, с одной стороны, от предъявляемых требований к точности решения и, с другой, – от уровня обеспечиваемой точности исходных данных. Например, если требуется найти решение с точностью 0.1%, а входная информация задается с точностью 0.02%, то уже значение $ \nu = 10 $ сигнализирует о плохой обусловленности. Однако, при тех же требованиях к точности результата, гарантия, что исходные данные задаются с точностью не ниже 0.0001%, означает, что при $ \nu = 10^3 $ задача хорошо обусловлена.
Если рассматривать задачу вычисления корня уравнения $ y = f(x) $, то роль числа обусловленности будет играть величина \[ \nu_{\Delta} = \frac1{|f'(\bar x)|}, \] где $ \bar x $ – корень уравнения.
Используя программы-функции bisect
и Round
из файла condition.m, исследовать обусловленность задачи нахождения корня уравнения $ f(x) = 0 $ для линейной функции $ f(x) = c(x - d) $. Значения функции $ f(x) $ следует вычислить приближенно с точностью delta
, варьируемой в пределах от 0.1 до 0.000001.
condition.m
. Ввести значения, необходимые для запуска программы.c
(тангенс угла наклона прямой), epsilon
(точность вычисления корня) и delta
(точность задания исходных данных).epsilon
вычисления корня. Сопоставить полученные теоретические результаты с экспериментальными данными.## TASK2 ## Studying the concept of conditionality ## of a computational problem format long g function [x, k] = bisect (a, b, c, d, epsilon, delta) Eps = abs (epsilon) * 2; fa = f (a, c, d, delta); fb = f (b, c, d, delta); k = 0; if (fa * fb > 0) error ("\aInvalid interval setting!!!\n") endif if (epsilon <= 0) error ("\aInvalid accuracy setting!!!\n") endif if (fa == 0) x = fa; return endif if (fb == 0) x = fb; return endif while (b - a >= Eps) x = 0.5 * (a + b); y = f (x, c, d, delta); if (y == 0) return elseif (y * fa < 0) b = x; else a = x; fa = y; endif k++; endwhile endfunction function y = f (x, c, d, delta) s = c * (x - d); S = s / delta + merge (s / delta < 0, -0.5, 0.5); s = S * delta; y = Round (s, delta); endfunction function r = Round (x, delta) if (delta <= 1e-9) error ("\aInvalid setting of rounding precision!!!\n") endif r = delta * (x / delta + merge (x > 0, 0.5, -0.5)); endfunction ## Begin script epsilon = input ("Enter 'eps': "); c = input ("Enter 'c': "); d = input ("Enter 'd': "); a = input ("Enter 'a': "); b = input ("Enter 'b': "); delta = input ("Enter 'delta': "); [x, k] = bisect (a, b, c, d, epsilon, delta); printf ("\nx = %.14f,\tk = %u\n", x, k), format short