ГЛАВА 4: ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ЦОС
1. Для вычисления функции y = exp(x) используется приведённая ниже подпрограмма, позволяющая эффективно реализовать уравнение (4.3):
y := 1
<член_ряда> := 1
<счётчик_циклов> = от 1 до 150
<член_ряда> := <член_ряда> * x / <счётчик_циклов>
y := y + <член_ряда>
next <счётчик_циклов>
а. Чему равны переменные "y" и "<член_ряда>" после завершения первой, второй и третьей итераций?
б. Сколько членов ряда Тейлора оказываются учтёнными после 150 итераций цикла?
2. Пользуясь уравнением (4.3), вычислите первые 14 членов ряда Тейлора функции exp(x), построенного при x = 1.3. Основываясь на своих вычислениях, ответьте на вопрос: сколько членов ряда необходимо вычислить, чтобы ошибка оказалась меньше одной миллионной?
3. Чтобы более наглядно представить разницу в уровнях квантования представьте, что имеется два здания, высоты которых выражаются некоторыми числами. Высота здания A равна 100 м, высота здания B равна 100.0001 м. Таким образом, здание B на толщину листа бумаги (0.1 мм) выше здания A. Позволяют ли следующие типы данных зафиксировать столь малое различие?
а. Числа с фиксированной точкой (8 бит, без знака).
б. Числа с фиксированной точкой (16 бит, дополнительный код).
в. Числа с плавающей точкой с одинарной точностью.
г. Числа с плавающей точкой с двойной точностью.
4. Повторите задачу 3 для случая, если здания A и B отличаются по высоте на одну десятимиллионную долю метра, что сравнимо с радиусом атома. Насколько меньше уровень квантования при использовании чисел с плавающей точкой по сравнению с атомным радиусом?
5. Какие десятичные числа соответствуют приведённым ниже двоичным записям в формате с плавающей точкой?
а. 10111000101010100000000000000000
б. 10000000000000000000000000000000
в. 01111001111110010000000000000000
г. 01111111100000000000000000000000
6. Представьте десятичные числа в формате IEEE для чисел с плавающей точкой.
а. 1
б. 2
в. 4
г. –5
д. 18
7. Предположим, вам требуется записать число 4.0000003 в формате с плавающей точкой и одинарной точностью.
а. Какая двоичная форма записи соответствует числу 4?
б. Какая двоичная форма записи соответствует ближайшему большему воспроизводимому в данном формате числу?
в. Какое десятичное число соответствует двоичной записи, полученной в пункте б)?
г. Какую из двоичных записей, полученных выше, следует использовать для числа 4.0000003? Почему?
д. Чему равна максимальная ошибка при записи числа в формате с одинарной точностью? Найдите абсолютную и относительную погрешности.
8. В цифровом КИХ-фильтре каждый отсчёт выходного сигнала получается путём умножения M отсчётов входного сигнала на M соответствующих весовых коэффициентов фильтра и последующего сложения найденных произведений (операция свёртки). Тип фильтра (НЧ, ВЧ и т.д.) определяется используемыми коэффициентами. Предположим, что M = 5000, а вычисления проводятся в формате с плавающей точкой при одинарной точности.
а. Сколько арифметических операций (умножений и сложений) требуется для вычисления каждого отсчёта выходного сигнала?
б. Среднее амплитудное значение выходного сигнала равно ста единицам. Чему равна ожидаемая погрешность записи отдельного выходного отсчёта? Предполагается, что погрешности, вызванные округлением, складываются. Найдите абсолютную и относительную погрешности.
в. Ответьте на вопрос б), предполагая, что ошибки округления принимают случайные значения.