Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
математ.основы прогр.2.doc
Скачиваний:
9
Добавлен:
07.09.2019
Размер:
1.19 Mб
Скачать

2.5.4 Влияние формата числа и его вида на погрешность

Выделяемый формат и вид числа в двоичной системе счисления также могут повлиять на точность представления числа. В качестве примера запишем следующее число в десятеричной системе А10=1111111111. На основании этого десятиразрядного числа будем формировать числа различного порядка, перенося запятую. Каждое число переведем в двоичную систему счисления и рассчитаем для них количество разрядов мантиссы

Таблица 2.2 -

Число А10

Количество разрядов мантиссы числа А2

(целая +дробная=сумма)

1

1

1

1,

1

1

1

1

1

1

11 + 6 = 17

1

1

1

1

1,

1

1

1

1

1

14 + 6 = 20

1

1

1

1

1

1,

1

1

1

1

18 + 6 = 24

1

1

1

1

1

1

1,

1

1

1

21 + 6 = 27

Например, число А10=111111,1111 в двоичной системе счисления имеет вид:

А2=0,101011001010100111000111∙1010010

т.е. у числа мантисса имеет 18 разрядов по целой части и 6 разрядов по дробной части и всего для мантиссы надо отводить 24 разряда. Тогда это число будет определять границу числа, у которого количество значащих цифр (в десятеричной системе счисления) не более шести и, соответственно, которое максимально может быть размещено в ячейке с одинарной точностью. Числа с меньшим количеством значащих цифр также могут быть размещены в подобных ячейках. А вот, например, число А10=1111111,111 и больше для записи потребуют перехода к ячейкам с двойной точностью, т.е. 4 слова. Если же оставаться в системе с одинарной точностью, то числа с большим количеством значащих цифр (в целой части) могут сохраняться только за счет «усечения» дробной части.

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

2.6 Повышение точности вычислений путем оптимизации алгоритма

Повышение точности вычислений может быть достигнуто существенным снижением количества вычислительных процедур. Это зависит от структуры алгоритма программы. Мы уже видели, что, применяя ряды, например, программа должна записываться как цикл:

, и так далее.

Кроме того, напомним, что в процессе перевода числа из одного типа счисления в другое тоже совершаются циклические процедуры. Например:

.

Если какое-нибудь значение записано в виде суммы, для получения которой следует организовать цикл с переменной i=N, его зачастую можно упростить. В результате можно существенно сократить количество вычислительных операций и избежать накопления погрешностей, а также сократить время и тем самым сэкономить ресурсы памяти. В качестве примера приведем следующие замещающие вычисления:

1) ; 4) ;

2) ; 5)

3) ; 6) .

Например, если А2=111112, то А10=24+1-1=25-1=31. Видим, насколько сократился объем вычислений, а соответственно повышается и точность вычислений. Очень существенна такая замена, если параметр цикла (i) , т.е. число N – очень велико.

П р и м е р. Найти эквивалентное представление без помощи сумм для следующих выражений:

1) ;

2) ;

3) ;

4) ;

5) .

Таким образом алгоритм цикла заменяется одношаговым оператором.