Считать верхней границей относительной погрешности, то

Считать верхней границей относительной погрешности, то

- относительная точность ЭВМ (машинная точность, машинный эпсилон, машинный нуль).

Значение этой величины определяется разрядностью мантиссы и способом округления.

На основании имеющихся сведений о представлении чисел в ЭВМ можно сделать ряд важных выводов.

1. Диапазон изменения чисел в ЭВМ ограничен.

2. Все числа , такие, что не представимы на ЭВМ и рассматриваются как машинная бесконечность. Попытка получить такое число приведёт к аварийному останову ЭВМ по переполнению.

3. Все числа , такие, что для ЭВМ неразличимы и представляются как нуль (машинный нуль). Получение числа называется исчезновением порядка (антипереполнением). При исчезновении порядка автоматически полагается и вычисления продолжаются.

Замечание: – машинная точность; – минимальное положительное число, представимое на ЭВМ. Это совершенно разные Считать верхней границей относительной погрешности, то числа, причём .

4.

На машинной числовой оси числа располагаются неравномерно. Плотность их возрастает по мере приближения к нулю.

Плотность расположения чисел на «машинной» числовой оси

Вычисление машинного нуля. Для приближённого вычисления машинного эпсилон удобно пользоваться следующим определением.

Определение: Машинное эпсилон – минимальное из представимых на ЭВМ чисел , для которых , где - машинная арифметическая операция сложения.

Величину можно оценить во время вычислительного процесса. Для этого достаточно включить в программу фрагмент, реализующий следующий метод.

Полагая , следует вычислять последовательно

,

проверяя каждый раз выполнение неравенства . Как только при некотором окажется, что , следует положить .

Замечание: Полученное таким способом значение, может отличаться от в 2 раза. Обычно оно используется так, что Считать верхней границей относительной погрешности, то эта погрешность не имеет значения.

Ниже приведены примеры процедур, реализующих вычисление «машинного нуля».

... ...

Приложение во время выполнения

Листинг 5.3.а

procedure TForm1.Button1Click(Sender: TObject);

type

RealType=real;

var

Epsilon:RealType;

i:integer;

begin

i:=1;

Epsilon:=1;

while (1+Epsilon/2)>1 do

begin

Epsilon:=Epsilon/2;

ShowMessage(IntToStr(i)+'-я итерация'+

FloatToStr(Epsilon));

i:=i+1;

end;

Label1.Caption:=FloatToStr(Epsilon)+#13+'число итераций'+

IntToStr(i);

end;

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

Например, если «машинное эпсилон» вычисляется с помощью программы, показанной в Листинге 5.3.а, то независимо Считать верхней границей относительной погрешности, то от объявления типа RealType (он может быть Single, Real, Double или Extended) на печать будет выдан результат

Е-19,

что соответствует типу Extended. Происходит это по той причине, что все операнды вещественного выражения 1+Epsilon/2 в операторе while перед вычислением автоматически преобразуются к типу Extended.

Чтобы получить правильный результат, программу необходимо изменить следующим образом:

Листинг 5.3.б

procedure TForm1.Button1Click(Sender: TObject);

var

eps,eps1:real;

i:integer;

begin

i:=1; eps:=1;

repeat

eps:=eps/2;

eps1:=1+eps;

ShowMessage(IntToStr(i)+'-я итерация

'+#13+'eps='+FloatToStr(eps));

i:=i+1;

until eps1=1;

Label1.Caption:= FloatToStr(2*eps)+#13+'число итераций'+

IntToStr(i);

end;

Пример 5.4. Найти сумму всех целых чисел, больших -50 и меньших Считать верхней границей относительной погрешности, то 200, которые кратны 5 и 8 и заканчиваются на 5 или 0. Вывести эти числа.



Приложение во время выполнения


documentayidwvx.html
documentayieegf.html
documentayielqn.html
documentayietav.html
documentayifald.html
Документ Считать верхней границей относительной погрешности, то