Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Абсолютная и относительная погрешности



Постановка задачи

Необходимо:

– спроектировать архитектуру вычислительной машины;

– написать программу вычисления тригонометрической функции синус на интервале значений аргумента (-π/2, π/2), используя арифметику с фиксированной точкой. Точка фиксирована перед старшим разрядом. При этом ошибка датчиков равна 0.005;

– программу написать на символическом языке для двух случаев:

§ а) в системе команд ЭВМ есть операция умножения;

§ в) в системе команд ЭВМ нет операции умножения;

– оценить точность вычисления функции;

– оценить время выполнения обеих программ.


 


Теоретическая часть

Погрешности вычисления

Источники погрешности

Погрешность результата решения задачи складывается из трех составных частей:

– неустранимой погрешности решения, обусловленной неточностью исходных данных;

– погрешности метода решения задачи;

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

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

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

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

Распространение ошибок

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

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

Для оценки ошибок, получаемых при вычислениях, нам потребуются формулы оценки абсолютной ошибки арифметических операций. Выпишем эти формулы.

Представление чисел в ЭВМ

Принципиальное ограничение на выполнение арифметических вычислений накладывает способ представления чисел в памяти ЭВМ.

При представлении действительных чисел в памяти ЭВМ возникают ошибки, обусловленные тем, что дробное десятичное число не всегда точно представимо в двоичной системе счисления (Например, дробь 1/10 имеет конечное десятичное представление 0.1, но, будучи переведена в двоичную систему счисления, становится бесконечной дробью 0.000110011001100…). Поэтому в ЭВМ нельзя представить не только все трансцендентные и иррациональные числа, но и даже все рациональные числа. ЭВМ позволяет представить лишь конечное подмножество действительных чисел. При этом особо выделяется множество целых чисел, для которых в ЭВМ, как правило, используется специальный способ представления. Происходит раздвоение множества целых чисел. Одно и то же целое число можно представить как:

· машинное целое число;

· машинное число с фиксированной запятой.

Практическая часть

Оценка погрешностей

Погрешность метода

Необходимо определить количество членов ряда, при которых ошибка разложения в ряд не будет превышать максимальную неустранимую ошибку, равную

Ряд Тейлора имеет бесконечное количество членов, поэтому, отбросив несколько членов общего ряда (3) по очереди, мы внесем ошибку ограничения. Для всякого знакопеременного сходящегося ряда эта ошибка ограничения по модулю меньше первого отброшенного члена.

Таким образом, ищем наименьшую ошибку, удовлетворяющую условию:

 учитывая, что максимально возможный аргумент:

·

·

·

·

·

·

·

 

Заметим, что после шестой степени условие  начинает выполняться постоянно, поэтому первым отбрасываемым членом будет

Тогда  можно ограничиться первыми пятью членами общего ряда (3):

(5)

 

с погрешностью разложения:

 

 

Аналогично определяется количество используемых членов для общего ряда (4), учитывая, что максимально возможный аргумент: :

 

(6)



Общая ошибка для ряда

Положим, что:

 погрешность представления аргумента,

 погрешность представления коэффициентов,

 ошибка округления.

Исходные величины a1, a2, a3, a4, a5 имеют абсолютные ошибки округления , где n - разрядность сетки. При выполнении операций перемножения появляются ошибки округления (округление происходит путем занесения в n+1 разряд 1). При выполнении операций сложения и вычитания ошибок округления не возникает, т.к. мы используем машину с фиксированной запятой.

Тогда:

 

Конечный ряд для вычисления функции синуса (5) может быть записан в общем виде как

 

,

где a1…a5 – определенные ранее константы.

Общую ошибку для ряда запишем следующим образом:

Запишем ошибки для отдельных операций:

Тогда конечное уравнение относительно с подставленными a1…a5 примет вид:

Решив его при , найдем разрядность сетки .

Теперь, зная разрядную сетку, уточним абсолютную ошибку округления коэффициентов:

Зная n, вычислим абсолютные ошибки в вычислениях:

= 0.0007440600245

 =

Архитектура машины

 Наша машина может вычислять значения синуса в диапазоне .

К такому решению мы прибегли в связи с тем, что наша машина с фиксированной запятой, и она работает только со значениями аргументов, лежащими в диапазоне   [-1;1] (так же данное решение позволяет снизить ошибку, связанную с разложением в ряд при большом значении аргумента). Но и при таком решении при углах больше  аргумент будет больше единицы, поэтому на вход машины мы подаем не сам x, а x/2.

Для того чтобы избежать переполнений в вычислениях при x >  , вычисления производим по формуле:

·                                                  

для случая, когда аргумент лежит в интервале  

·                                                 

для случая, когда аргумент лежит в интервале .

Аргумент x поступает в машину с коэффициентом масштабирования .

Все константы преобразуем в двоичный 13-и разрядный код. Все данные в двоичном представлении (13 знаков после запятой).

В машине с инструкцией умножения используется 4 регистра, а в машине с заменой инструкции умножения, сдвигом и сложением - 7.

В машине используется память с произвольным доступом. Она характеризуется содержимым, хранящимся в группе ячеек, и расположением (адресом) каждой ячейки. Так как за основу взята архитектура Фон-Неймана, то и программа, и данные располагаются в одной области памяти.

 

Регистры r3, Res, x, y – рабочие регистры. В них находится один из операндов команды, либо источник, либо адресат.

Регистры r1, r2, r4 – регистры данных. Эти регистры выполняют две функции:

· Хранят содержимое адресованного регистра данных, если ЦПУ осуществляет цикл чтения;

· Хранят данные, которые ЦПУ собирается записать в адресованный регистр данных (цикл записи).



Система команд

Для случая, когда в машине реализована функция умножения:

Input x -  ввод параметров в машину
Mul r1,r2(C) - умножить значение регистра r1 на значение регистра r2 (константу) и поместить результат в регистр r1.
Add r1, r2(C) - сложить значение регистра r1 и значение регистра r2 (константу) и поместить результат в регистр r1
Sub r1, r2 - вычесть из значения в регистре r1 значение регистра r2, поместить результат в регистр r1
In r1,[a] -  чтение данных из ячейки памяти в регистр r1
Out [a],r1 -  запись из регистра r1 в ячейку памяти
Mov r1 [a], [a](C, r2) - взять значение из ячейки памяти с адресом [a] (константу, значение регистра r2) и поместить результат в регистр r1 (в ячейку памяти с адресом [a]).
IfbZero r1 - если значение регистра r1 меньше нуля, то пропустить следующую команду
Call Label -  перейти к метке label.
Return   -  возврат к следующей строке после команды Call
Begin   - начало программы
End   - конец программы

 


 

Для случая, когда в машине функция умножения не реализована:

Input x - ввод параметров в машину
Mul r1,r2(C)  - умножить значение регистра r1 на значение регистра r2 (константу) и поместить результат в регистр r1.
Add r1, r2(C) - сложить значение регистра r1 и значение регистра r2 (константу) и поместить результат в регистр r1
Sub r1, r2 - вычесть из значения в регистре r1 значение регистра r2, поместить результат в регистр r1
In r1,[a] -  чтение данных из ячейки памяти в регистр r1
Out [a],r1 -  запись из регистра r1 в ячейку памяти
Mov r1 [a], [a](C, r2)  -  взять значение из ячейки памяти с адресом [a] (константу, значение регистра r2) и поместить результат в регистр r1 (в ячейку памяти с адресом [a]).
Shr r, C  -  сдвинуть значение регистра r на С бит вправо.
IfbZero r1  -  если значение регистра r1 меньше нуля, то пропустить следующую команду
Skp r, s -  проверяет s – й бит регистра r, если он равен 1, то переходим на следующую строчку, иначе – следующую строчку пропускаем
Dec r  -  вычесть из значения регистра r единицу и поместить в регистр r.
Call Label  -  перейти к метке label.
Return   -  возврат к следующей строке после команды Call
Begin   - начало программы
End   - конец программы

 


 



Заключение

Для выполнения поставленной задачи был разработан алгоритм вычисления функции sin ( x ) на основе формул двойного угла и приведения. Алгоритм представлен в двух вариантах реализации: в машине реализована функция умножения; функция умножения заменена сложением со сдвигом.

Разработана архитектура цифровой вычислительной машины с фиксированной запятой.

- выбрана разрядность машины n = 13;

- разработана система команд;

- выбрано количество регистров, необходимое для выполнения вычислений (для варианта с инструкцией умножения 4 регистров, для варианта с заменой инструкции умножения 7 регистров).

Оценены абсолютные ошибки, возникающие в машине при реализации алгоритма вычисления функции sin ( x ). Абсолютная погрешность вычисления синуса угла не превышает значение (0.004635002636), ошибка ограничения при разложении функции в ряд не превышает значение (0.00000185537834), общая ошибка для ряда не превышает ( , максимальная неустранимая ошибка не превышает (

Оценено время работы обеих машин. Машина, в которой реализована операция умножения, проводит вычисления за 30 тактов, а машина с заменой операции умножения сложением со сдвигом за 468 тактов, что примерно в 15 раз медленнее. Если время выполнения программы ограничено, то необходимо использовать машину, в которой реализована операция умножения.


 

Литература

1. Д. Мак-Кракен, У. Дорн, «Численные методы и программирование на Фортране», изд. «Мир», М., 1977г.

2. А. И. Канащенков, В.И. Меркулов, «Радиолокационные системы многофункциональных самолетов» в 3-х томах, том 3 «Вычислительные системы РЛС многофункциональных самолетов», изд. «Радиотехника», М., 2007г.

 


Постановка задачи

Необходимо:

– спроектировать архитектуру вычислительной машины;

– написать программу вычисления тригонометрической функции синус на интервале значений аргумента (-π/2, π/2), используя арифметику с фиксированной точкой. Точка фиксирована перед старшим разрядом. При этом ошибка датчиков равна 0.005;

– программу написать на символическом языке для двух случаев:

§ а) в системе команд ЭВМ есть операция умножения;

§ в) в системе команд ЭВМ нет операции умножения;

– оценить точность вычисления функции;

– оценить время выполнения обеих программ.


 


Теоретическая часть

Погрешности вычисления

Источники погрешности

Погрешность результата решения задачи складывается из трех составных частей:

– неустранимой погрешности решения, обусловленной неточностью исходных данных;

– погрешности метода решения задачи;

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

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

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

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

Абсолютная и относительная погрешности

Абсолютная ошибка  есть разница между истинным значением величины  (считая это истинное значение известным) и ее приближенным значением .

Относительная ошибка  определяется, как отношение абсолютной ошибки к приближенному значению величины. Казалось бы, что более естественно определить ее, как отношение абсолютной ошибки к точному значению, но обычно точное значение нам неизвестно. Все, что обычно бывает известно, - это приближенное значение величины и оценка ошибки или границы максимально возможной величины ошибки. Если ошибка мала, то разница в определениях не скажется на численной величине относительной ошибки.

Для величин, близких по значению к единице, абсолютная и относительная ошибки по величине почти одинаковы. Для очень больших или очень малых величин относительная и абсолютная ошибки представляются совершенно разными числами.

Распространение ошибок

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

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

Для оценки ошибок, получаемых при вычислениях, нам потребуются формулы оценки абсолютной ошибки арифметических операций. Выпишем эти формулы.


Поделиться:



Последнее изменение этой страницы: 2019-05-08; Просмотров: 183; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.059 с.)
Главная | Случайная страница | Обратная связь