русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Особенности машинных вычислений


Дата добавления: 2015-01-16; просмотров: 8178; Нарушение авторских прав


По-видимому, основной особенностью машинных вычислений по сравнению с ручными является ограниченная длина разрядной сетки и представление вещественных чисел в формате с плавающей десятичной точкой (экспоненциальный формат с нормализованной мантиссой). Это не позволяет осуществлять машинные операции вещественной арифметики так, как мы привыкли в чистой математике – численное представление вещественных значений требует, как правило, бесконечного количества цифр и не может быть осуществлено с абсолютной точностью. Проблема ошибок округления существует и в ручных вычислениях, но там она не так важна, потому что объем вычислений, которые могут быть выполнены вручную, невелик по сравнению с тем, что обычно выполняется на современных ЭВМ. Кроме того, при ручном счете эффекты округления непосредственно наблюдаемы и могут быть скорректированы своевременным изменением длины числа или другими мерами предохранения от чрезмерных погрешностей результата, которая может быть достаточно легко оценена.

В машинных вычислениях получение такой оценки затруднительно – ранее разработанные теории оценок ошибок округления, как правило, непригодны, поэтому обычно прибегают к статистическим оценкам, основанным на допущении о независимости ошибок округлений; опыт показывает, что на самом деле эти ошибки часто коррелированны, и получаемые результаты сомнительны.

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



Другим распространенным методом является просчет задачи дважды – с одинарной и с двойной точностью представления чисел – предполагается, что верными можно считать совпадающие разряды в двух ответах.

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

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

· ошибки дискретизации непрерывных зависимостей:

· погрешности в задании исходных данных;

· погрешности моделирования зависимости между исходными данными и вычисляемыми переменными;

· методические погрешности, определяемые несовершенством вычислительных алгоритмов;

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



<== предыдущая лекция | следующая лекция ==>
Численные методы и программирование | Структура учебного пособия


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.017 сек.