Отчеты / ЯП2
.pdfМинистерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)
Кафедра комплексной информационной безопасности электронно-
вычислительных систем (КИБЭВС)
ВЕЩЕСТВЕННЫЕ ЧИСЛА. ОШИБКИ ПРИ РАБОТЕ С ВЕЩЕСТВЕННЫМИ ЧИСЛАМИ Отчет по лабораторной работе №2
по дисциплине «Языки программирования»
Выполнил:
Студент гр. 710-2
_______ _____Кузьмина А.А.
__.04.2022
Принял:
Младший научный сотрудник
Кафедры КИБЭВС
_______ ________Полюга В.А.
___.04.2022
Томск - 2022
2
1 Введение
Цель работы: знакомство с основными ошибками, возникающими при обработке вещественных чисел.
Для работы использовался язык программирования С# и среда разработки Microsoft Visual Studio 2019.
3
2 Ход работы
Нахождение ошибок «вручную»:
X = 20710327102.23012001;
Y = X ∙ 10−10 = 2.071032710223012001;
C = X + Y = 20710327104.301152720223012001;
C` = 20710327104.301152720;
Z = X ± 10−8 = 20710327102.23012;
Абсолютная ошибка А = |C - C’| = = 0.000000000223012001;
Относительная ошибка O = = 0.00000000000000000001077.
Предполагаем, что в младшем разряде числа x произошла ошибка:
Z = X – 0.001 = 20710327102.23012001 – 0.001 = 20710327102.22912001;
Производим умножение без ошибки:
M = X ∙ X = 428917648681367439763.6839772590024001;
Производим умножение с ошибкой:
N = X ∙ Z = 20710327102.23012001 ∙ 20710327102.23012 = 428917648681367439556.5807062367012;
Абсолютная ошибка A = |M – N| = 207.1032710223012001;
Относительная ошибка О = = 0.0000000000000000004829;
K = 20710327102;
Абсолютная ошибка A = |X - K| = 0,31081996;
Относительная ошибка O = = 0.00000001.
4
Далее для демонстрации ошибок вещественных чисел используем примеры программ на языке С#.
Рассмотрим ошибку «Исчезновение операнда»:
На рисунке 1 представлена ошибка «Исчезновение операнда». На рисунке 2 показан результат работы программы.
Рисунок 1 – Исчезновение операнда.
Рисунок 2 –Результат работы первого фрагмента программы.
Операнд А1 был утерян, поскольку он относительно мал по отношению к другому операнду.
После этого рассмотрим ошибку «Умножение ошибки»:
На рисунке 3 представлена указанная раннее ошибка. Ниже на рисунке
4 показан результат работы программы.
Рисунок 3 – Умножение ошибки.
5
Рисунок 4 – Результат работы второго фрагмента программы.
Увеличение абсолютной погрешности операнда может появиться при использовании арифметики с плавающей точкой. Происходит умножение ошибки.
Далее рассмотрим ошибку «Потеря значимости»:
На рисунке 5 представлена данная ошибка. На рисунке 6 представлен результат работы программы.
Рисунок 5 – Потеря значимости.
Рисунок 6 – Результат работы третьего фрагмента программы.
Происходит полная потеря значимости из-за вычитания почти равных чисел.
6
3Заключение
Впроцессе выполнения лабораторной работы были получены знания об основных ошибках, которые возникают при обработке вещественных чисел.