Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Математическое отступление.




Поговорим о преобразовании функций. Для простоты возьмём функцию F(X)=X на отрезке [0,1]. Легко себе представить её график - это прямая линия под 45 градусов. Теперь применим к ней последовательно пару функций - G1(X)=100*X и G2(X)=0.01*X. Финальная функция G2(G1(F(X)))=0.01*100*X=X очевидно никак не изменилась - всё тот же отрезок под 45 градусов. Таким образом, преобразование G1 было обратимым - оно имеет т.н. обратное преобразование G2. Нетрудно видеть, что и преобразование H1(X)=0.1*X также обратимо и имеет обратное - Н2(Х)=10*X. Кроме этого, и порядок применения обратимых преобразований не важен: G2(G1(F(X)))=G1(G2(F(X))). Всё так хорошо лишь пока мы находимся на "территории математики" - все числа у нас действительные, т.е. могут принимать любые значения и быть измерены с любой точностью.

Но как только от "математических" чисел мы переходим к "компьютерным"(или "цифровым"), т.е. к ячейкам памяти, появляются два фундаментальных ограничения:

  • диапазон ограничен максимальным числом М (т.е. Y<M).
  • точность ограничена числом m (т.е. cуществуют только Y=k*m, где k-натуральное число, а все остальные "округляются" до этих)

Представим что на рассмотренных выше примерах M=1 и m=0.01., кроме этого считаем значения ограниченными снизу нулём.

  • Исходная функция F изменится мало - появятся маленькие "ступеньки" по 0.01 (см График, красные точки)
  • Применим функцию G1. На всех точках при X>0.01 она "обрежется" до единицы и после применения G2 на всём отрезке кроме нуля результат будет 0.01 (см. График, красная линия)
  • Применим функцию H1. Вместо ста разных значений Y теперь принимает всего десять, т.к. от 0 до 0.1 можно разместить всего десять отсчётов с точностью m. Применение обратной функции H2 не меняет картину, а лишь увеличивает шаг в десять раз (см. График, красный пунктир)
  • Применение функций в обратном порядке ("G2 затем G1" и "H2 затем H1") разберите самостоятельно, ответ - на графике синим цветом. Видно, что результат не совпадает ни с чем: ни с функцией F, ни с результатом "прямого" применения пары G1G2 и H1H2.
  • Легко даже в уме прикинуть результат не только для умножения, но и для сложения, например для последовательного применения J1(X)=X+0.5 и J2(X)=X-0.5.

Обобщим полученные на этом простом примере результаты. Итак, при ограниченном диапазоне значений и ограниченной точности (разрядности) данных, строго говоря, ЛЮБОЕ преобразование МОЖЕТ перестать быть обратимым, и, более того, МОЖЕТ приводить к потере информации. Потеря информации получается ДВУХ сортов: "ограничение" и "потеря разрядности". В приведённом выше примере умножение на 10 (и тем более на 100), а также сложение (и вычитание) 0.5 приводило к "ограничению". А в случае, когда мы сначала делили на 10 (и тем более на 100) - мы видели потерю разрядности.

Поясню выделенное слово "МОЖЕТ". На приведённой в примере функции F(X)=X легко доказать что не только МОЖЕТ, но ВСЕГДА необратимо. Но для некоторых других функций это не так. Например функцию F2(X)=0.1*X можно смело "подвергать" воздействию умножения на 10 - ограничения не произойдёт. Причина - диапазон значений не подходит "достаточно близко к границе". Впрочем, от умножения на 100 это "не спасёт". Другой пример: функцию F3(X)=0.5*X можно безболезненно умножать на два (или прибавлять 0.5), а вот на 10 умножать (или прибавлять 0.8) без ограничения уже не выйдет. Обобщим вновь: чем ближе значения исходной функции к границам диапазона, тем более "мягкими" должны быть преобразования для того, чтобы оставаться обратимыми.

И, наконец, последнее. Выше я показал, что последовательное применение двух преобразований (прямого и обратного) не совпадает в "цифровом" случае с исходным результатом, т.е. с тождественным преобразованием, которому в математике равно последовательное применение прямой и обратной функции. Но если это справедливо даже для тождественного преобразования(частный случай), то совершенно очевиден и более общий случай ЛЮБОГО преобразования, являющегося математической комбинацией двух других: если "в математике" А(В(...))=С(...), то в общем случае "в цифре" A(B(...)) НЕ РАВНО С(...). Иными словами, если к одной и той же цели "математически" можно придти разными путями, то эти же пути "в цифре" дадут строго говоря РАЗНЫЙ результат.


Поделиться:

Дата добавления: 2015-09-15; просмотров: 70; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты