Учебник - Практические занятия по вычислительной математике - Аристова, страница 3
Описание файла
PDF-файл из архива "Учебник - Практические занятия по вычислительной математике - Аристова", который расположен в категории "". Всё это находится в предмете "вычислительная математика" из 6 семестр, которые можно найти в файловом архиве МФТИ (ГУ). Не смотря на прямую связь этого архива с МФТИ (ГУ), его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 3 страницы из PDF
Проиллюстрируем это понятие наследующем простом примере.11I. ПОГРЕШНОСТИ ВЫЧИСЛЕНИЙПоложим y* = sin t*. Точка y* выбрана среди других точек отрезка[a, b] (см. выше по поводу неустранимой погрешности), так как она задается при помощи удобной для дальнейшего формулы.Воспользуемся разложением функции sin t в ряд Тейлора:sin t t t3 t5 ...3! 5!(2.5)Для вычисления значения y* можно выбрать одно из следующих выражений:y * y1* t * ,ty * y 2* t * y * y n* nk 0*33!,( 1) k(2.6)t * ( 2k 1)( 2k 1)!.Выбирая для приближенного вычисления y* одну из формул (2.6), темсамым выбираем метод вычисления.Величина |y* - y*n| – погрешность метода вычисления.Фактически выбранный метод вычисления зависит от параметра n ипозволяет добиться, чтобы погрешность метода была меньше любойнаперед заданной величины за счет выбора этого параметра.Очевидно, нет смысла стремиться, чтобы погрешность метода быласущественно (во много раз) меньше неустранимой погрешности.
Поэтомучисло n не стоит выбирать слишком большим. Однако, если n слишкоммало и погрешность метода существенно больше неустранимой погрешности, то избранный способ не полностью использует информацию о решении, содержащуюся во входных данных. Часть этой информации теряется.Наконец, сам выбранный приближенный метод реализуется неточноиз-за ошибок округления при вычислениях на реальном компьютере.
Так,при вычислении y*n по одной из формул (2.6) на реальном компьютере врезультате ошибок округления мы получим значение ~y n* .Величину | yn* ~yn* | называют погрешностью округления. Она недолжна быть существенно больше погрешности метода. В противномслучае произойдет потеря точности метода за счет ошибок округления.Точность метода вычислений также целесообразно согласовывать с величиной ожидаемых ошибок округления.12I.3. Вычисление значения функции с помощью разложения ее в ряд ТейлораПогрешность результата складывается, таким образом, из неустранимой погрешности, погрешности метода и погрешности округления. Рассмотрим несколько простых примеров.I.3. Вычисление значения функции с помощью разложения ее вряд ТейлораПусть требуется вычислить значения y = sin t. Воспользуемся разложением функции sin t в окрестности нуля в ряд Тейлора, радиус сходимости которого для данной функции равен бесконечности:sin t t t33!t55!Для вычисления y можно воспользоваться одним из приближенных выражений:y* y1* t * ,y* y2* t * y* yn* t*33!,n (1)k 0kt* ( 2k 1)( 2k 1)!.Выбирая для вычисления y одну из приведенных формул, мы тем самымвыбираем приближенный метод вычисления, точность которого определяется числом привлекаемых членов ряда n.Ряд Тейлора для функции sin t является знакопеременным, сходитсядля любого значения t, а его частичная сумма отличается от точного значения функции не более, чем на величину первого отброшенного членаряда.
Выбирая n так, чтобыt2n1(2n 1)! ε,можно добиться любой наперед заданной точности .Однако при вычислениях на реальном компьютере получить результат с требуемой точностью для t (которое существенно больше единицы)не удается из-за быстрого роста ошибок округления. Последние тембольше, чем больше t. Это связано с различным характером поведениявеличины членов ряда Тейлора при t > 1 и t < 1. При t < 1 члены ряда по13I. ПОГРЕШНОСТИ ВЫЧИСЛЕНИЙабсолютной величине монотонно убывают в зависимости от n.
При t > 1члены ряда по модулю сначала растут (тем сильнее, чем больше t) и только потом, достигнув при некотором k = m максимума, начинают убывать истремиться к нулю при n →∞. Для того, чтобы обеспечить при вычислении, например, am-го (максимального по модулю) члена ряда абсолютнуюпогрешность, не превосходящую , необходимо вычислить его с относительной погрешностью, не хуже чем ( am ) am| am || am |.Требуемая относительная точность тем выше, чем больше |am|, что можнообеспечить только увеличением длины мантиссы.Замечание.
В реальных вычислениях на компьютерах методы вычисления значений функции через вычисления конечных сумм ряда Тейлораникогда не используются.I.4. Вычисление производнойПусть задана функция f (x). Необходимо вычислить ее первую производную в некоторой точке x. Воспользуемся для этого формулами численного дифференцирования различного порядка аппроксимации.I.4.1.
Формула первого порядка аппроксимацииf '( x) f ( x h) f ( x )h(4.1).Пусть известно, что |f ''(ξ)| ≤ M2, тогда погрешность метода для этойформулы имеет первый порядок по h:| r1 | f '( x) f ( x h) f ( x )hM2 h2.(4.2)Пусть значения функции f (x) известны с погрешностью ε(x),|ε(x)| ≤ E. Даже в случае отсутствия неустранимой погрешности f, при вычислении значения функции на ЭВМ возникает погрешность за счет ошибок округления, и ее величина в этом случае зависит от представлениячисел в машине. Обозначим маш – максимальное число, для которого вмашинной арифметике справедливо равенство 1 маш 1 . Ошибка, связанная с ошибкой округления значения f (x), не превосходит величины14I.4.1.
Формула первого порядка аппроксимацииE = M0маш, где |f (ξ)| ≤ M0. Тогда при вычислении производной по формуле (4.1.1) возникает погрешность r2, причем| r2 | 2Eh(4.3).Для суммарной погрешности r имеем оценку| r | | r1 | | r 2 | g (h) M2 h22Eh.(4.4)Для уменьшения погрешности метода необходимо, согласно оценке (4.2),уменьшить шаг h, но при этом растет второе слагаемое в (4.4).На рис. 1.2 представлен характер зависимости погрешности метода,погрешности вычисления функции и суммарной погрешности в зависимости от шага h. Минимум суммарной погрешности достигается в точке h*экстремума функции q(h): q′(h) = 0, причем в ней r1 = r2.Рис. 1.2. К вычислению первой производной и определению оптимального шагачисленного дифференцированияТогда имеем для оптимального шага дифференцирования:dq( h )dh 0,h* 2EM2.(4.5)При использовании формулы (4.1) нельзя рассчитывать на точностьболее высокую, чем15I.
ПОГРЕШНОСТИ ВЫЧИСЛЕНИЙr* E M2 ,(4.6)наличие предельной точности является следствием (4.4) при h = h*.Следовательно, производную можно вычислить, в лучшем случае, споловиной верных знаков (если M2 и M0 ≈ 1).Рассмотрим теперь, как изменятся результаты при использованииформулы численного дифференцирования второго порядка аппроксимации.I.4.2. Формула второго порядка аппроксимацииf ( x h) f ( x h)f '( x) 2h.(4.7)Пусть известно, что |f '''(ξ)| < M3; тогда погрешность метода для этойформулы имеет второй порядок по h:| r1 | f '( x) f ( x h) f ( x h)2hM3 h26.(4.8)Пусть значения функции f (x) известны с погрешностью ε(x),|ε(x)| ≤ E. Тогда при вычислении производной по формуле (4.7) возникаетпогрешность |r2|, причем| r2 | Eh(4.9).Для суммарной погрешности r имеем оценку:| r | | r 1 | | r 2 | q( h ) M 3 h26Eh.(4.10)Для уменьшения погрешности метода необходимо, согласно оценке (4.8),уменьшить шаг h, но при этом растет второе слагаемое в (4.10).
Нарис. 1.3 представлен характер зависимости погрешности метода, погрешности вычисления функции и суммарной погрешности в зависимости отшага h. Минимум погрешности достигается в точке h – экстремума функции q(h): q′(h) = 0. Оптимальное значение шага численного дифференцирования естьh* 33EM3.(4.11)16I.4.3. Формула четвертого порядка аппроксимацииРис. 1.3. К определению оптимального шага дифференцирования по формуле второго порядкаТаким образом, при использовании формулы (4.7) нельзя рассчитывать на точность более высокую, чемr* 39 E2 M 3.8(4.12)Ниже рассматривается формула четвертого порядка аппроксимации.I.4.3.
Формула четвертого порядка аппроксимацииf 'f ( x 2 h) 8 f ( x h ) 8 f ( x h ) f ( x 2h )12h.(4.13)Пусть известно, что |f v(ξ)| ≤ M5; тогда погрешность метода для этойформулы имеет четвертый порядок по h:| r1 | f 'f ( x 2 h) 8 f ( x h) 8 f ( x 2 h) f ( x 2 h)12hM 5 h430. (4.14)Пусть значения функции f (x) известны с погрешностью ε(x),|ε(x)| ≤ E. Тогда при вычислении производной по формуле (4.13) возникаетпогрешность |r2|, причем| r2 | 3E2h.(4.15)Для суммарной погрешности r имеем оценку17I. ПОГРЕШНОСТИ ВЫЧИСЛЕНИЙ| r | | r 1 | | r 2 | q( h ) M5 h4303E2h.(4.16)Для уменьшения погрешности метода необходимо, согласно оценке(4.14), уменьшить шаг h, но при этом растет второе слагаемое в (4.16).На рис.
1.4 представлен характер зависимости погрешности метода, погрешности вычислений и суммарной погрешности в зависимости от шага h.Рис. 1.4. Оптимальный шаг для формулы четвертого порядкаМинимум погрешности достигается в точке h* экстремума функции q(h):q′(h) = 0. Имеем для оптимального шага численного дифференцированияh* 545 E4M 5.(4.17)Таким образом, при использовании формулы (4.13) нельзя рассчитыватьна точность более высокую, чемr* 15 5 4 E 4 M 5.815I.5. Стандарт представления числа с плавающей точкойСтандарт представления чисел с плавающей точкой был разработан в1985 году в Institute of Electrical and Electronics Engineers и носит названиеIEEE-арифметики. В этом стандарте основной формой действительногочисла является нормализованное представление одинарной и двойной18I.5.
Стандарт представления числа с плавающей точкойточности, стандарт предполагает возможность представления субнормальных чисел для возможности корректного округления при математических операциях. Кроме того, в арифметике есть специальная величиныбесконечность (Infinity) и так называемое «не число» (NaN) – от английского Not a number или Non-arithmetical number.В нормализованном виде число представляется в виде ненулевого старшего разряда, мантиссы после запятой и степени экспоненты. Например, число 176,243 в нормализованном виде будет представлено как 1,76243∙102.Основными типами представления чисел являются данные одинарной и двойной точности. Для представления данных одинарной точностиотводится 32 бита, тогда один бит отводится под знак числа s, 23 битаотводится под мантиссу экспоненты и 8 бит под показатель:s1f23e8Старший ненулевой разряд нормализованного числа не хранится, поэтому по записи такого вида число в двоичном представлении восстанавливается как (–1)s (1 + f ∙ 2–23) 2(e – 127).
Сдвиг экспоненты делается для того,чтобы не хранить еще и знак степени. С представлением чисел связанытри константы, важные в вычислительной математике:OFL (Over Flow Limit) – порог переполнения, который есть максимальное представимое число, так что любое большее число полагаетсяравным бесконечности. Для одинарной точности OFL = (1,111…12)∙ 2127 = (2 – 2–23) ∙ 2127 ≈ 1038.UFL (Under Flow Limit) –– порог машинного нуля, нормализованноечисло, такое, что любое меньшее число полагается равным нулю:UFL = 1∙ 2–126 ≈ 10–38.Машинное эпсилон определяется как максимальное число, которое вмашинной арифметике обеспечивает справедливость равенства1 + εмаш = 1. Для одинарной точности чиселεмаш = ½ ∙ 2–23 ≈ 6 ∙ 10–8.Аналогично, для числа двойной точности имеемs1f52e11И число в двоичном представлении(–1)s (1 + f ∙ 2–52) 2(e – 1023).Соответствующие константы19восстанавливаетсякакI.