Перейти к содержанию

§1. Цифра в мире величин

Вопросы к §1

Запишите ответы — не подглядывая в текст.

  • Вы измерили длину карандаша школьной линейкой и получили \(15{,}6\) см. Это точное значение? Или честнее написать как-то иначе?
  • Расстояние от Земли до Солнца — примерно \(150\,000\,000\,000\) м. Диаметр атома — примерно \(0{,}000\,000\,000\,106\) м. Можно ли записать такие числа коротко и без длинной цепочки нулей?
  • Не запуская Python, скажите: что выведет программа?
a = 0.1
b = 0.2
print(a + b)

Будет ли на экране просто 0.3?

К концу параграфа все три вопроса станут понятными. А пока заметим главное: число в STEM живёт не в одном мире, а сразу в трёх — в физике, в математике и в компьютере.


§1.1. Физика: число рождается из измерения

Физика начинается не с формулы, а с измерения.

Мы хотим узнать длину карандаша, массу груза, температуру воды, время падения шарика. Для этого берём прибор: линейку, весы, термометр, секундомер. Прибор даёт число. Но это число никогда не бывает абсолютно точным.

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

Определение. Измерение

Измерение — это сравнение физической величины с выбранной единицей измерения при помощи прибора.

Например, когда мы говорим:

\[ L = 15{,}6 \text{ см}, \]

мы на самом деле имеем в виду не идеально точную длину, а результат, полученный конкретной линейкой.

Единицы СИ

Чтобы разные люди понимали друг друга, в физике используют Международную систему единиц — СИ.

Основные единицы, которые нам понадобятся в начале курса:

Величина Единица СИ Обозначение
длина метр м
масса килограмм кг
время секунда с
температура кельвин К

В школьных задачах часто встречаются сантиметры, миллиметры, минуты, часы, граммы. Но перед вычислениями в физике полезно переводить всё в СИ.

Примеры:

\[ 15{,}6 \text{ см} = 0{,}156 \text{ м}, \]
\[ 3 \text{ мин} = 180 \text{ с}, \]
\[ 250 \text{ г} = 0{,}250 \text{ кг}. \]

Ключевая идея

Число без единицы измерения в физике почти бессмысленно.

Фраза «длина равна 15» неполна. Нужно сказать: 15 чего? Миллиметров, сантиметров, метров?

Цена деления прибора

Посмотрите на школьную линейку. Между отметками 3 см и 4 см обычно десять маленьких промежутков. Значит, цена одного деления равна:

\[ c = \frac{4 - 3}{10} = 0{,}1 \text{ см} = 1 \text{ мм}. \]

Определение. Цена деления

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

Если между двумя подписанными делениями \(a_1\) и \(a_2\) находится \(n\) промежутков, то

\[ c = \frac{a_2 - a_1}{n}. \]

Чем меньше цена деления, тем точнее прибор может показать результат.

Погрешность измерения

Если цена деления линейки равна 1 мм, мы обычно не можем уверенно отличить длину \(15{,}60\) см от \(15{,}61\) см. Но можем сказать, что истинное значение лежит примерно в маленьком интервале около измеренного числа.

Для школьных измерений удобно использовать оценку:

\[ \Delta = \frac{c}{2}, \]

где \(c\) — цена деления прибора.

Если \(c = 1\) мм, то

\[ \Delta = 0{,}5 \text{ мм} = 0{,}05 \text{ см}. \]

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

\[ L = L_0 \pm \Delta. \]

Например:

\[ L = 15{,}60 \pm 0{,}05 \text{ см}. \]

Это означает: истинная длина, скорее всего, находится в интервале от \(15{,}55\) см до \(15{,}65\) см.

Почему важно писать \(15{,}60\), а не \(15{,}6\)

На первый взгляд ноль в конце лишний. Ведь в математике

\[ 15{,}60 = 15{,}6. \]

Но в физике эти записи несут разную информацию.

Запись

\[ 15{,}6 \text{ см} \]

говорит только о числе.

А запись

\[ 15{,}60 \pm 0{,}05 \text{ см} \]

говорит ещё и о точности измерения.

Типичная ошибка

Писать результат измерения без погрешности.

Неверно:

\[ L = 15{,}6 \text{ см}. \]

Лучше:

\[ L = 15{,}60 \pm 0{,}05 \text{ см}. \]

В первом варианте потеряна информация о приборе. Во втором — видно, насколько числу можно доверять.


§1.2. Математика: как записывать очень большие и очень малые числа

Физика часто работает с числами, которые трудно записывать обычным способом.

Расстояние от Земли до Солнца:

\[ 150\,000\,000\,000 \text{ м}. \]

Диаметр атома водорода по порядку величины:

\[ 0{,}000\,000\,000\,106 \text{ м}. \]

В таких записях легко ошибиться: пропустить ноль, добавить лишний ноль, перепутать масштаб.

Математика предлагает удобный язык — стандартный вид числа.

Определение. Стандартный вид числа

Стандартный вид числа — это запись

\[ a \cdot 10^n, \]

где

\[ 1 \leq a < 10, \]

а \(n\) — целое число.

Число \(a\) называют значащей частью, или мантиссой. Число \(n\) называют порядком.

Примеры:

\[ 150\,000\,000\,000 = 1{,}5 \cdot 10^{11}, \]
\[ 0{,}000\,000\,000\,106 = 1{,}06 \cdot 10^{-10}, \]
\[ 300\,000\,000 = 3 \cdot 10^8. \]

В стандартном виде сразу виден масштаб числа.

Порядок \(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{ м}\)

Например:

\[ 1 \text{ км} = 1000 \text{ м} = 10^3 \text{ м}, \]
\[ 1 \text{ мм} = 0{,}001 \text{ м} = 10^{-3} \text{ м}. \]

Ключевая идея

Стандартный вид числа отделяет смысл от количества нулей.

Вместо длинной записи мы видим две вещи:

  • значащую часть;
  • порядок величины.

Округление и значащие цифры

Когда мы пишем

\[ \pi \approx 3{,}14, \]

мы не утверждаем, что число \(\pi\) закончилось на второй цифре после запятой. Мы сознательно округляем его до нужной точности.

Округление — это математическое решение: оставить столько цифр, сколько нужно для задачи.

Например, для грубой оценки можно взять:

\[ g \approx 10 \text{ м/с}^2. \]

Для более точного расчёта:

\[ g \approx 9{,}8 \text{ м/с}^2. \]

А в инженерной таблице может быть:

\[ g \approx 9{,}81 \text{ м/с}^2. \]

Все три записи могут быть допустимы — если понятно, какая точность нужна.


§1.3. Информатика: число в памяти компьютера

Теперь передадим число компьютеру.

Человек видит запись:

\[ 0{,}1. \]

Математик понимает точное десятичное число.

Компьютер должен записать это число в память. Но память конечна: у компьютера есть ограниченное число битов.

Здесь появляется важное различие между двумя типами данных: int и float.

Тип int: целые числа

int хранит целые числа:

\[ \ldots, -2, -1, 0, 1, 2, \ldots \]

В Python целые числа могут быть очень большими. Например:

x = 10 ** 50
print(x)

Python спокойно выведет число с 51 цифрой.

Для школьных задач можно считать: int хранит целые числа точно.

Используйте int, когда считаете штуки:

  • количество опытов;
  • номер шага;
  • число учеников;
  • количество измерений;
  • индекс в списке.

Тип float: дробные числа

float хранит числа с дробной частью:

x = 0.1
y = 3.14
z = -2.5

Но float хранит не любое дробное число точно, а ближайшее приближение, которое помещается в память.

Почему?

Потому что компьютер хранит числа в двоичной системе. А десятичная дробь \(0{,}1\) в двоичной системе оказывается бесконечной:

\[ 0{,}1_{10} = 0{,}0001100110011001100\ldots_2. \]

Это похоже на дробь \(\frac{1}{3}\) в десятичной системе:

\[ \frac{1}{3} = 0{,}333333\ldots \]

Записать её полностью невозможно. Нужно обрезать.

Компьютер тоже обрезает бесконечную двоичную запись. Поэтому \(0{,}1\) хранится не идеально точно, а почти точно.

Сюрприз Python

Запустите код:

a = 0.1
b = 0.2
print(a + b)

Скорее всего, вы увидите:

0.30000000000000004

Это не ошибка Python. Это результат хранения дробных чисел в формате float.

Ещё один эксперимент:

print(0.1 + 0.2 == 0.3)

Результат:

False

Математически \(0{,}1 + 0{,}2 = 0{,}3\).

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

Как сравнивать float

Не стоит писать так:

if 0.1 + 0.2 == 0.3:
    print("Равно")

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

Идея простая:

\[ |a - b| < \varepsilon. \]

Если разность очень мала, считаем числа равными в пределах точности задачи.

В Python можно использовать math.isclose():

import math

x = 0.1 + 0.2
y = 0.3

print(math.isclose(x, y))  # True

Ключевая идея

В компьютере дробное число — это не идеальное математическое число, а приближённое значение в памяти.

Поэтому для float опасно бездумно использовать ==.


§1.4. Три мира одной цифры

Вернёмся к главной идее курса: одно и то же понятие можно увидеть в трёх мирах.

В мире физики

Число появляется из измерения.

Например:

\[ L = 15{,}60 \pm 0{,}05 \text{ см}. \]

Здесь важны:

  • прибор;
  • единица измерения;
  • цена деления;
  • погрешность;
  • честная запись результата.

Физик спрашивает не только «какое число?», но и «насколько ему можно доверять?»

В мире математики

Число — точный объект или результат сознательного округления.

Математик может записать:

\[ 150\,000\,000\,000 = 1{,}5 \cdot 10^{11}. \]

Он работает со стандартным видом, степенями десяти, округлением и значащими цифрами.

Математик спрашивает: «Как записать число удобно, точно и без лишних нулей?»

В мире компьютера

Число хранится в памяти.

Целое число int обычно ведёт себя точно.

Дробное число float хранится приближённо.

Компьютер спрашивает не словами, но фактически: «Можно ли это число представить конечным набором битов?»

Сравнение трёх миров

Вопрос Физика Математика Информатика
Откуда берётся число? Из измерения Из определения или вычисления Из записи в памяти
Что ограничивает точность? Прибор Выбранное округление Конечное число битов
Пример \(15{,}60 \pm 0{,}05\) см \(1{,}5 \cdot 10^{11}\) 0.1 + 0.2
Главная опасность забыть погрешность ошибиться в порядке сравнить float через ==

Ключевая идея

Линейка, округление и память компьютера — разные инструменты, но у них есть общее свойство: конечная точность.

Грамотный STEM-ученик не просто считает. Он понимает, откуда взялось число, как оно записано и что могло потеряться по дороге.


§1.5. Мини-лаборатория: от линейки до Python

Проведём одно измерение через все три мира.

Шаг 1. Измерьте

Возьмите линейку с ценой деления 1 мм и измерьте длину любого предмета: карандаша, телефона, тетради.

Пусть получилось:

\[ L = 15{,}60 \pm 0{,}05 \text{ см}. \]

Шаг 2. Переведите в СИ

\[ 15{,}60 \text{ см} = 0{,}1560 \text{ м}. \]

Погрешность:

\[ 0{,}05 \text{ см} = 0{,}0005 \text{ м}. \]

Итак:

\[ L = 0{,}1560 \pm 0{,}0005 \text{ м}. \]

Шаг 3. Запишите в стандартном виде

\[ 0{,}1560 \text{ м} = 1{,}560 \cdot 10^{-1} \text{ м}. \]
\[ 0{,}0005 \text{ м} = 5 \cdot 10^{-4} \text{ м}. \]

Шаг 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} м")

Результат:

L = 0.1560 ± 0.0005 м

Теперь одно и то же измерение прошло три формы:

  • физическую: измерение с погрешностью;
  • математическую: перевод единиц и стандартный вид;
  • компьютерную: переменные и вычисление в Python.

§1.6. Задачи

Базовые

  1. Линейка имеет цену деления 1 мм. Ученик измерил длину ручки и получил \(14{,}2\) см. Запишите результат с погрешностью в сантиметрах.

  2. Переведите в СИ:

  3. \(25\) см;
  4. \(3{,}5\) км;
  5. \(250\) г;
  6. \(2\) мин.

  7. Запишите в стандартном виде:

  8. \(5000\);
  9. \(72\,000\,000\);
  10. \(0{,}0045\);
  11. \(0{,}000\,000\,32\).

  12. Найдите цену деления прибора, если между отметками \(2\) см и \(3\) см находится \(5\) равных промежутков.

  13. Почему запись \(L = 12{,}3\) см хуже, чем \(L = 12{,}30 \pm 0{,}05\) см?

Аналитические

  1. Ученик записал расстояние до некоторого объекта так:
\[ 42{,}7 \cdot 10^5 \text{ м}. \]

Является ли это стандартным видом числа? Если нет, исправьте запись.

  1. Два ученика измерили один и тот же предмет.

Первый получил:

\[ L_1 = 18{,}4 \pm 0{,}1 \text{ см}. \]

Второй получил:

\[ L_2 = 18{,}45 \pm 0{,}05 \text{ см}. \]

Чьё измерение точнее? Почему?

  1. Объясните, почему математическое равенство
\[ 0{,}1 + 0{,}2 = 0{,}3 \]

не противоречит тому, что Python может вывести 0.30000000000000004.

Программирование

  1. Напишите программу, которая переводит длину из сантиметров в метры и выводит результат.

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

L = ... ± ... м
  1. Проверьте в Python:
print(0.1 + 0.2)
print(0.1 + 0.2 == 0.3)

Затем используйте math.isclose() и объясните результат.

Исследовательские

  1. Найдите дома три прибора со шкалой: линейку, термометр, кухонные весы, мерный стакан или рулетку. Для каждого определите цену деления и оцените погрешность.

  2. Напишите программу, которая получает список измерений длины и считает среднее значение. Пока не учитывайте погрешность — к этому мы вернёмся в §5.


§1.7. Задачи, приближённые к ОГЭ и ЕГЭ

Задача 1. Физика, ОГЭ: единицы измерения

Выразите \(72\) км/ч в м/с.

Решение.

\[ 72 \text{ км/ч} = 72 \cdot \frac{1000 \text{ м}}{3600 \text{ с}}. \]
\[ 72 \cdot \frac{1000}{3600} = 72 \cdot \frac{5}{18} = 20. \]

Ответ:

\[ 72 \text{ км/ч} = 20 \text{ м/с}. \]

Задача 2. Физика, ОГЭ: погрешность измерения

Цена деления линейки равна \(1\) мм. Длина карандаша по линейке равна \(16{,}8\) см. Запишите результат измерения с погрешностью, если погрешность принимается равной половине цены деления.

Решение.

Цена деления:

\[ c = 1 \text{ мм} = 0{,}1 \text{ см}. \]

Погрешность:

\[ \Delta = \frac{c}{2} = 0{,}05 \text{ см}. \]

Результат:

\[ L = 16{,}80 \pm 0{,}05 \text{ см}. \]

Ответ:

\[ L = 16{,}80 \pm 0{,}05 \text{ см}. \]

Задача 3. Математика: стандартный вид числа

Запишите число \(0{,}000\,000\,48\) в стандартном виде.

Решение.

Переносим запятую так, чтобы перед ней стояла одна ненулевая цифра:

\[ 0{,}000\,000\,48 = 4{,}8 \cdot 10^{-7}. \]

Ответ:

\[ 4{,}8 \cdot 10^{-7}. \]

Задача 4. Информатика: типы данных

Что выведет программа?

import math

x = 0.1 + 0.2
y = 0.3

print(x == y)
print(math.isclose(x, y))

Решение.

Сравнение x == y проверяет точное совпадение чисел float в памяти. Из-за приближённого хранения дробей результат может быть:

False

Функция math.isclose(x, y) проверяет близость чисел с допустимой погрешностью, поэтому результат:

True

Ответ:

False
True

§1.8. Итог

Главный вывод

Число в STEM нужно понимать сразу в трёх мирах.

В физике число рождается из измерения. У измерения есть прибор, единица, цена деления и погрешность.

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

В информатике число хранится в памяти. Целые числа int обычно ведут себя точно, а дробные числа float хранятся приближённо.

Что нужно запомнить

  • Физическую величину нельзя записывать без единицы измерения.
  • Результат измерения честнее записывать в виде \(L = L_0 \pm \Delta\).
  • Цена деления прибора помогает оценить погрешность.
  • Стандартный вид числа имеет форму \(a \cdot 10^n\), где \(1 \leq a < 10\).
  • int хранит целые числа точно.
  • float хранит дробные числа приближённо.
  • Для сравнения дробных результатов в Python лучше использовать math.isclose() или сравнение с допуском.

Ответы на три вопроса из начала

  1. Запись \(15{,}6\) см неполна как результат измерения. Если линейка имеет цену деления 1 мм, честнее записать:
\[ L = 15{,}60 \pm 0{,}05 \text{ см}. \]
  1. Да, большие и маленькие числа можно записывать коротко:
\[ 150\,000\,000\,000 = 1{,}5 \cdot 10^{11}, \]
\[ 0{,}000\,000\,000\,106 = 1{,}06 \cdot 10^{-10}. \]
  1. Python может вывести не 0.3, а:
0.30000000000000004

Потому что float хранит десятичные дроби приближённо в двоичной памяти.


Мост к §2

Мы научились честно записывать числа: измерять, оценивать погрешность, переводить единицы, использовать стандартный вид и понимать ограничения float.

Но физический мир — это не просто набор чисел. Тело находится где-то. Оно может двигаться вправо или влево, вверх или вниз. Чтобы описывать положение и перемещение, одного числа уже недостаточно: нужны координаты, оси, система отсчёта и векторы.

Этим мы займёмся в следующем параграфе:

§2. Координаты и векторы (math.coordinates_vectors).