§1. Цифра в мире величин¶
Вопросы к §1¶
Запишите ответы — не подглядывая в текст.
- Вы измерили длину карандаша школьной линейкой и получили \(15{,}6\) см. Это точное значение? Или честнее написать как-то иначе?
- Расстояние от Земли до Солнца — примерно \(150\,000\,000\,000\) м. Диаметр атома — примерно \(0{,}000\,000\,000\,106\) м. Можно ли записать такие числа коротко и без длинной цепочки нулей?
- Не запуская Python, скажите: что выведет программа?
Будет ли на экране просто 0.3?
К концу параграфа все три вопроса станут понятными. А пока заметим главное: число в STEM живёт не в одном мире, а сразу в трёх — в физике, в математике и в компьютере.
§1.1. Физика: число рождается из измерения¶
Физика начинается не с формулы, а с измерения.
Мы хотим узнать длину карандаша, массу груза, температуру воды, время падения шарика. Для этого берём прибор: линейку, весы, термометр, секундомер. Прибор даёт число. Но это число никогда не бывает абсолютно точным.
Линейка имеет деления. Весы имеют шаг измерения. Секундомер запускает человек, а человек нажимает кнопку не идеально. Даже хороший прибор показывает результат с некоторой погрешностью.
Определение. Измерение
Измерение — это сравнение физической величины с выбранной единицей измерения при помощи прибора.
Например, когда мы говорим:
мы на самом деле имеем в виду не идеально точную длину, а результат, полученный конкретной линейкой.
Единицы СИ¶
Чтобы разные люди понимали друг друга, в физике используют Международную систему единиц — СИ.
Основные единицы, которые нам понадобятся в начале курса:
| Величина | Единица СИ | Обозначение |
|---|---|---|
| длина | метр | м |
| масса | килограмм | кг |
| время | секунда | с |
| температура | кельвин | К |
В школьных задачах часто встречаются сантиметры, миллиметры, минуты, часы, граммы. Но перед вычислениями в физике полезно переводить всё в СИ.
Примеры:
Ключевая идея
Число без единицы измерения в физике почти бессмысленно.
Фраза «длина равна 15» неполна. Нужно сказать: 15 чего? Миллиметров, сантиметров, метров?
Цена деления прибора¶
Посмотрите на школьную линейку. Между отметками 3 см и 4 см обычно десять маленьких промежутков. Значит, цена одного деления равна:
Определение. Цена деления
Цена деления — это разность значений, соответствующих двум соседним штрихам шкалы прибора.
Если между двумя подписанными делениями \(a_1\) и \(a_2\) находится \(n\) промежутков, то
Чем меньше цена деления, тем точнее прибор может показать результат.
Погрешность измерения¶
Если цена деления линейки равна 1 мм, мы обычно не можем уверенно отличить длину \(15{,}60\) см от \(15{,}61\) см. Но можем сказать, что истинное значение лежит примерно в маленьком интервале около измеренного числа.
Для школьных измерений удобно использовать оценку:
где \(c\) — цена деления прибора.
Если \(c = 1\) мм, то
Тогда результат измерения записывают так:
Например:
Это означает: истинная длина, скорее всего, находится в интервале от \(15{,}55\) см до \(15{,}65\) см.
Почему важно писать \(15{,}60\), а не \(15{,}6\)¶
На первый взгляд ноль в конце лишний. Ведь в математике
Но в физике эти записи несут разную информацию.
Запись
говорит только о числе.
А запись
говорит ещё и о точности измерения.
Типичная ошибка
Писать результат измерения без погрешности.
Неверно:
Лучше:
В первом варианте потеряна информация о приборе. Во втором — видно, насколько числу можно доверять.
§1.2. Математика: как записывать очень большие и очень малые числа¶
Физика часто работает с числами, которые трудно записывать обычным способом.
Расстояние от Земли до Солнца:
Диаметр атома водорода по порядку величины:
В таких записях легко ошибиться: пропустить ноль, добавить лишний ноль, перепутать масштаб.
Математика предлагает удобный язык — стандартный вид числа.
Определение. Стандартный вид числа
Стандартный вид числа — это запись
где
а \(n\) — целое число.
Число \(a\) называют значащей частью, или мантиссой. Число \(n\) называют порядком.
Примеры:
В стандартном виде сразу виден масштаб числа.
Порядок \(10^{11}\) говорит: число огромное.
Порядок \(10^{-10}\) говорит: число очень маленькое.
Приставки СИ¶
Для повседневной работы удобно использовать приставки СИ.
| Приставка | Множитель | Пример |
|---|---|---|
| кило | \(10^3\) | \(1 \text{ км} = 10^3 \text{ м}\) |
| мега | \(10^6\) | \(1 \text{ МВт} = 10^6 \text{ Вт}\) |
| гига | \(10^9\) | \(1 \text{ ГБ} = 10^9 \text{ байт}\) |
| милли | \(10^{-3}\) | \(1 \text{ мм} = 10^{-3} \text{ м}\) |
| микро | \(10^{-6}\) | \(1 \text{ мкм} = 10^{-6} \text{ м}\) |
| нано | \(10^{-9}\) | \(1 \text{ нм} = 10^{-9} \text{ м}\) |
Например:
Ключевая идея
Стандартный вид числа отделяет смысл от количества нулей.
Вместо длинной записи мы видим две вещи:
- значащую часть;
- порядок величины.
Округление и значащие цифры¶
Когда мы пишем
мы не утверждаем, что число \(\pi\) закончилось на второй цифре после запятой. Мы сознательно округляем его до нужной точности.
Округление — это математическое решение: оставить столько цифр, сколько нужно для задачи.
Например, для грубой оценки можно взять:
Для более точного расчёта:
А в инженерной таблице может быть:
Все три записи могут быть допустимы — если понятно, какая точность нужна.
§1.3. Информатика: число в памяти компьютера¶
Теперь передадим число компьютеру.
Человек видит запись:
Математик понимает точное десятичное число.
Компьютер должен записать это число в память. Но память конечна: у компьютера есть ограниченное число битов.
Здесь появляется важное различие между двумя типами данных: int и float.
Тип int: целые числа¶
int хранит целые числа:
В Python целые числа могут быть очень большими. Например:
Python спокойно выведет число с 51 цифрой.
Для школьных задач можно считать: int хранит целые числа точно.
Используйте int, когда считаете штуки:
- количество опытов;
- номер шага;
- число учеников;
- количество измерений;
- индекс в списке.
Тип float: дробные числа¶
float хранит числа с дробной частью:
Но float хранит не любое дробное число точно, а ближайшее приближение, которое помещается в память.
Почему?
Потому что компьютер хранит числа в двоичной системе. А десятичная дробь \(0{,}1\) в двоичной системе оказывается бесконечной:
Это похоже на дробь \(\frac{1}{3}\) в десятичной системе:
Записать её полностью невозможно. Нужно обрезать.
Компьютер тоже обрезает бесконечную двоичную запись. Поэтому \(0{,}1\) хранится не идеально точно, а почти точно.
Сюрприз Python¶
Запустите код:
Скорее всего, вы увидите:
Это не ошибка Python. Это результат хранения дробных чисел в формате float.
Ещё один эксперимент:
Результат:
Математически \(0{,}1 + 0{,}2 = 0{,}3\).
Но в памяти компьютера хранятся приближения, и сумма приближений может чуть-чуть отличаться от ожидаемого результата.
Как сравнивать float¶
Не стоит писать так:
Для дробных вычислений используют сравнение с допуском.
Идея простая:
Если разность очень мала, считаем числа равными в пределах точности задачи.
В Python можно использовать math.isclose():
Ключевая идея
В компьютере дробное число — это не идеальное математическое число, а приближённое значение в памяти.
Поэтому для float опасно бездумно использовать ==.
§1.4. Три мира одной цифры¶
Вернёмся к главной идее курса: одно и то же понятие можно увидеть в трёх мирах.
В мире физики¶
Число появляется из измерения.
Например:
Здесь важны:
- прибор;
- единица измерения;
- цена деления;
- погрешность;
- честная запись результата.
Физик спрашивает не только «какое число?», но и «насколько ему можно доверять?»
В мире математики¶
Число — точный объект или результат сознательного округления.
Математик может записать:
Он работает со стандартным видом, степенями десяти, округлением и значащими цифрами.
Математик спрашивает: «Как записать число удобно, точно и без лишних нулей?»
В мире компьютера¶
Число хранится в памяти.
Целое число int обычно ведёт себя точно.
Дробное число float хранится приближённо.
Компьютер спрашивает не словами, но фактически: «Можно ли это число представить конечным набором битов?»
Сравнение трёх миров¶
| Вопрос | Физика | Математика | Информатика |
|---|---|---|---|
| Откуда берётся число? | Из измерения | Из определения или вычисления | Из записи в памяти |
| Что ограничивает точность? | Прибор | Выбранное округление | Конечное число битов |
| Пример | \(15{,}60 \pm 0{,}05\) см | \(1{,}5 \cdot 10^{11}\) | 0.1 + 0.2 |
| Главная опасность | забыть погрешность | ошибиться в порядке | сравнить float через == |
Ключевая идея
Линейка, округление и память компьютера — разные инструменты, но у них есть общее свойство: конечная точность.
Грамотный STEM-ученик не просто считает. Он понимает, откуда взялось число, как оно записано и что могло потеряться по дороге.
§1.5. Мини-лаборатория: от линейки до Python¶
Проведём одно измерение через все три мира.
Шаг 1. Измерьте¶
Возьмите линейку с ценой деления 1 мм и измерьте длину любого предмета: карандаша, телефона, тетради.
Пусть получилось:
Шаг 2. Переведите в СИ¶
Погрешность:
Итак:
Шаг 3. Запишите в стандартном виде¶
Шаг 4. Запишите в Python¶
length_cm = 15.60 # длина, см
delta_cm = 0.05 # погрешность, см
length_m = length_cm / 100
delta_m = delta_cm / 100
print(f"L = {length_m:.4f} ± {delta_m:.4f} м")
Результат:
Теперь одно и то же измерение прошло три формы:
- физическую: измерение с погрешностью;
- математическую: перевод единиц и стандартный вид;
- компьютерную: переменные и вычисление в Python.
§1.6. Задачи¶
Базовые¶
-
Линейка имеет цену деления 1 мм. Ученик измерил длину ручки и получил \(14{,}2\) см. Запишите результат с погрешностью в сантиметрах.
-
Переведите в СИ:
- \(25\) см;
- \(3{,}5\) км;
- \(250\) г;
-
\(2\) мин.
-
Запишите в стандартном виде:
- \(5000\);
- \(72\,000\,000\);
- \(0{,}0045\);
-
\(0{,}000\,000\,32\).
-
Найдите цену деления прибора, если между отметками \(2\) см и \(3\) см находится \(5\) равных промежутков.
-
Почему запись \(L = 12{,}3\) см хуже, чем \(L = 12{,}30 \pm 0{,}05\) см?
Аналитические¶
- Ученик записал расстояние до некоторого объекта так:
Является ли это стандартным видом числа? Если нет, исправьте запись.
- Два ученика измерили один и тот же предмет.
Первый получил:
Второй получил:
Чьё измерение точнее? Почему?
- Объясните, почему математическое равенство
не противоречит тому, что Python может вывести 0.30000000000000004.
Программирование¶
-
Напишите программу, которая переводит длину из сантиметров в метры и выводит результат.
-
Напишите программу, которая получает значение измерения и погрешность в сантиметрах, переводит оба числа в метры и выводит результат в виде:
- Проверьте в Python:
Затем используйте math.isclose() и объясните результат.
Исследовательские¶
-
Найдите дома три прибора со шкалой: линейку, термометр, кухонные весы, мерный стакан или рулетку. Для каждого определите цену деления и оцените погрешность.
-
Напишите программу, которая получает список измерений длины и считает среднее значение. Пока не учитывайте погрешность — к этому мы вернёмся в §5.
§1.7. Задачи, приближённые к ОГЭ и ЕГЭ¶
Задача 1. Физика, ОГЭ: единицы измерения¶
Выразите \(72\) км/ч в м/с.
Решение.
Ответ:
Задача 2. Физика, ОГЭ: погрешность измерения¶
Цена деления линейки равна \(1\) мм. Длина карандаша по линейке равна \(16{,}8\) см. Запишите результат измерения с погрешностью, если погрешность принимается равной половине цены деления.
Решение.
Цена деления:
Погрешность:
Результат:
Ответ:
Задача 3. Математика: стандартный вид числа¶
Запишите число \(0{,}000\,000\,48\) в стандартном виде.
Решение.
Переносим запятую так, чтобы перед ней стояла одна ненулевая цифра:
Ответ:
Задача 4. Информатика: типы данных¶
Что выведет программа?
Решение.
Сравнение x == y проверяет точное совпадение чисел float в памяти. Из-за приближённого хранения дробей результат может быть:
Функция math.isclose(x, y) проверяет близость чисел с допустимой погрешностью, поэтому результат:
Ответ:
§1.8. Итог¶
Главный вывод¶
Число в STEM нужно понимать сразу в трёх мирах.
В физике число рождается из измерения. У измерения есть прибор, единица, цена деления и погрешность.
В математике число можно записывать удобно: округлять, переводить в стандартный вид, работать со степенями десяти и значащими цифрами.
В информатике число хранится в памяти. Целые числа int обычно ведут себя точно, а дробные числа float хранятся приближённо.
Что нужно запомнить¶
- Физическую величину нельзя записывать без единицы измерения.
- Результат измерения честнее записывать в виде \(L = L_0 \pm \Delta\).
- Цена деления прибора помогает оценить погрешность.
- Стандартный вид числа имеет форму \(a \cdot 10^n\), где \(1 \leq a < 10\).
intхранит целые числа точно.floatхранит дробные числа приближённо.- Для сравнения дробных результатов в Python лучше использовать
math.isclose()или сравнение с допуском.
Ответы на три вопроса из начала¶
- Запись \(15{,}6\) см неполна как результат измерения. Если линейка имеет цену деления 1 мм, честнее записать:
- Да, большие и маленькие числа можно записывать коротко:
- Python может вывести не
0.3, а:
Потому что float хранит десятичные дроби приближённо в двоичной памяти.
Мост к §2¶
Мы научились честно записывать числа: измерять, оценивать погрешность, переводить единицы, использовать стандартный вид и понимать ограничения float.
Но физический мир — это не просто набор чисел. Тело находится где-то. Оно может двигаться вправо или влево, вверх или вниз. Чтобы описывать положение и перемещение, одного числа уже недостаточно: нужны координаты, оси, система отсчёта и векторы.
Этим мы займёмся в следующем параграфе:
§2. Координаты и векторы (math.coordinates_vectors).