Вычисление погрешностей результатов арифметических действий над приближёнными числами
ОП.10 Численные методы · Специальность 09.02.07 «Информационные системы и программирование»
Объём: 4 академических часа
В этой работе вы закрепите теоретические знания о погрешностях, научитесь применять правила арифметики приближённых чисел вручную и реализуете алгоритмы оценки погрешностей на языке программирования Python.
После выполнения этой практической работы вы должны:
float и Decimal в Python.Формат сдачи: Отчёт в формате PDF или Word, содержащий скриншоты ручных расчётов, исходный код программ на Python и скриншоты результатов их выполнения в консоли.
Перед началом работы освежим в памяти основные формулы и правила.
Абсолютная погрешность: Δ = |X − x|
Относительная погрешность: δ = (Δ / |x|) × 100%
где X — истинное значение, x — приближённое значение.
Напоминание: значащие цифры — это все цифры числа, начиная с первой ненулевой цифры слева. Например, в числе 0.00450 три значащие цифры: 4, 5 и последний 0.
Вычислите абсолютную и относительную погрешности для заданных значений. Преподаватель выдаёт вам один из вариантов.
Истинное значение: X = 3.14159
Приближённое значение: x = 3.14
Требуется:
Истинное значение: X = 2.71828
Приближённое значение: x = 2.72
Требуется:
Подсказка для самопроверки (Вариант 1): Δ = 0.00159, δ ≈ 0.051%.
Выполните действия над приближёнными числами, соблюдая правила сохранения значащих цифр. Запишите промежуточный «сырой» результат и итоговый округлённый ответ.
12.34 + 5.68.915 − 2.13.14 × 2.515.75 / 3.015.23 + 4.110.005 − 3.22.5 × 3.1422.4 / 4.0Пример рассуждения для п.1 (Вариант 1): Число 12.34 имеет 2 знака после запятой, число 5.6 имеет 1 знак. Результат должен иметь 1 знак после запятой. Сырой результат: 17.94. Итоговый: 17.9.
Напишите скрипт на Python, который демонстрирует проблему накопления ошибки округления при использовании стандартного типа float и решает её с помощью модуля decimal.
s_float = 0.0.for прибавьте к ней 0.1 ровно 10 раз.1.0 через оператор ==.Decimal('0.1') из модуля decimal.from decimal import Decimal
# Часть 1: float
s_float = 0.0
for _ in range(10):
s_float += 0.1
print(f"Float результат: {s_float}")
print(f"Float == 1.0? {s_float == 1.0}")
# Часть 2: Decimal
s_dec = Decimal('0.0')
for _ in range(10):
s_dec += Decimal('0.1')
print(f"Decimal результат: {s_dec}")
print(f"Decimal == 1.0? {s_dec == Decimal('1.0')}")
Напишите программу, которая запрашивает у пользователя длину и ширину прямоугольника (как приближённые числа), вычисляет его площадь и выводит результат с правильным количеством значащих цифр.
decimal.Decimal..quantize() или round() и выведите.Внимание: при использовании input() всегда передавайте строку напрямую в Decimal(input()). Не делайте Decimal(float(input())), иначе вы сразу внесёте ошибку двоичного представления!
Чтобы ваша работа была принята, следуйте этому чек-листу:
Фамилия_Практика1_ЧисленныеМетоды.pdf.Совет: используйте функцию print(f"Текст {variable:.4f}") в Python для красивого вывода чисел с заданным количеством знаков после запятой.
Преподаватель будет оценивать вашу работу по следующей шкале:
| Оценка | Критерии |
|---|---|
| «Отлично» (5) | Все 4 задания выполнены без ошибок. Код работает корректно, содержит комментарии. Отчёт оформлен аккуратно, выводы сделаны. |
| «Хорошо» (4) | Выполнены все задания, но есть 1–2 незначительные ошибки в ручных расчётах или мелкие недочёты в оформлении кода (например, отсутствуют комментарии). |
| «Удовлетворительно» (3) | Выполнены Задания 1 и 2. В программной части (Задания 3 и 4) есть ошибки, но видна попытка реализации. Отчёт неполный. |
| «Неудовлетворительно» (2) | Работа не выполнена, представлены только фрагменты кода без результатов, или ответы списаны без понимания материала. |
Избегайте этих промахов, чтобы не потерять баллы:
float для точных финансовых или научных расчётов в Задании 4. Decimal и передавайте строки.0.050 две значащие цифры (5 и 0), а не три. Win + Shift + S (Windows) или Cmd + Shift + 4 (macOS).float через == в Задании 3. False, и продемонстрировать правильный подход через Decimal.Вы научились не только считать погрешности вручную,
но и заставлять компьютер делать это правильно.
Сохраните отчёт и отправьте его преподавателю через электронную образовательную среду или на указанный email.
Следующий этап: Лекция №2 «Локализация корней и численные методы решения уравнений».
💡 Подсказка: используйте клавиши ← → на клавиатуре для переключения слайдов