Решение упражнения 2.9 из SICP
Для удобства введем следующие краткие обозначения. Для интервала x будем обозначать его нижнюю границу l(x), верхнюю границу - u(x), а радиус - r(x) = (u(x)-l(x))/2.
Вначале покажем, что радиус суммы и разности интервалов зависит только от радиусов интервалов, которые складываются или вычитаются:
r(x+y) = [u(x+y) - l(x+y)] / 2 = [(u(x)+u(y)) - (l(x)+l(y))] / 2 = [(u(x)-l(x)) + (u(y)-l(y))] / 2 = [u(x)-l(x)]/2 + [u(y)-l(y)]/2 = r(x) + r(y),
r(x-y) = [u(x-y) - l(x-y)] / 2 = [(u(x)-l(y)) - (l(x)-u(y))] / 2 = [(u(x)-l(x)) - (u(y)-l(y))] / 2 = [u(x)-l(x)]/2 - [u(y)-l(y)]/2 = r(x) - r(y),
что и требовалось доказать.
Теперь покажем, что для умножения и деления интервалов зависимость радиуса результата исключительно от радиусов аргументов не выполняется. Для этого рассмотрим интервалы вида [n, n+1], где n - некое натуральное число. Радиусы всех таких интервалов независимо от величины n равны 1/2.
Вычислим [n, n+1]*[n, n+1] и [n, n+1]/[n, n+1]:
[n, n+1]*[n, n+1] = [n², (n+1)²], а значит r([n, n+1]*[n, n+1]) = [(n+1)² - n²]/2 = n + 1/2;
[n, n+1]/[n, n+1] = [n, n+1]*[1/(n+1), 1/n] = [n/(n+1), (n+1)/n], а значит r([n, n+1]/[n, n+1]) = [(n+1)/n - n/(n+1)]/2 = (2n+1)/[2n(n+1)].
При одинаковых радиусах исходных интервалов по вышеприведенным формулам для n=1 получим радиус для произведения равным 3/2, а для частного - 3/4; для для n=2 имеем радиус для произведения равным 5/2, а для частного - 5/12. Результаты разные, а значит зависят не только от радиусов множителей (в случае произведения) или делимого и делителя (в случае частного).
Comments
Comment from Dima
Date: June 22, 2008, 11:10 am
r(x-y) = r(x) + r(y), а не r(x) - r(y). Ошибка в алгебре. Да и как иначе? Точность не может увеличиватся с соличеством операций, а соовтветсвенно и радиус не может уменьшатся.
Comment from Sergey Khenkin
Date: June 22, 2008, 11:25 am
Да, все правильно. Опечатался при раскрытии знаков.
Правильно так:
r(x-y) = [u(x-y) - l(x-y)] / 2 = [(u(x)-l(y)) - (l(x)-u(y))] / 2 = [(u(x)-l(x)) + (u(y)-l(y))] / 2 = [u(x)-l(x)]/2 + [u(y)-l(y)]/2 = r(x) + r(y).
Спасибо.
Write a comment