Решение упражнения 2.14 из SICP

22 January, 2008 (20:38) | Решения упражнений

Действительно сначала попробуем повторить результаты Дайко экспериментально.

Создадим несколько интервалов в форме центр/проценты:

(define r100p1 (make-center-percent 100 1))
(define r100p5 (make-center-percent 100 5))
(define r1000p1 (make-center-percent 1000 1))
(define r1000p5 (make-center-percent 1000 5))

Попробуем провести вычисления для них по двум алгебраически эквивалентным формулам, как это сделал Дайко:

> (par1 r100p1 r100p1)
(48.51980198019802 . 51.52020202020203)
> (par2 r100p1 r100p1)
(49.49999999999999 . 50.5)
> (par1 r100p1 r1000p5)
(81.71155516941789 . 101.09628217349857)
> (par2 r100p1 r1000p5)
(89.6568160152526 . 92.13727193744569)

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

Поэкспериментируем с различными частными вида A/B и выведем для них погрешность в процентах:

> (percent (div-interval r100p5 r100p1))
5.997001499250379
> (percent (div-interval r100p5 r100p5))
9.97506234413964
> (percent (div-interval r100p1 r100p1))
1.9998000199980077
> (percent (div-interval r100p1 r100p5))
5.997001499250369
> (percent (div-interval r1000p1 r100p5))
5.997001499250374

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

Comments

Pingback from SICP по-русски » Blog Archive » Решение упражнения 2.15 из SICP
Date: January 22, 2008, 10:17 pm

[…] SICP по-русски Структура и интерпретация компьютерных программ: заметки и решения « Решение упражнения 2.14 из SICP […]

Write a comment