Mathcad и размерность физических величин
Диалог в учительской:
Преподаватель Закона Божьего, обращаясь к физику:
Сегодня ваш любимчик двойку получил.
Спросил я его, что такое Божественная Сила.
Так он мне ответил, что это произведение
Божественной Массы на Божественное Ускорение.
Физик:
Я ему и по физике двойку поставлю.
Ведь произведение Божественной Массы на
Божественное Ускорение дает Силу с
Божественностью в квадрате, а не в первой степени.
Диалог на экзамене:
Преподаватель: Что такое лошадиная сила?
Ученик: Это сила, какую развивает лошадь
ростом в один метр и весом в один килограмм.
Преподаватель: Да где ж вы такую лошадь видели?!
Ученик: А ее так просто не увидишь.
Она хранится в Париже, в Палате мер и весов.
Расчет давления в среде Mathcad
Смена единиц измерения давления
Работа с пользовательской нефизической (экономической) величиной
Что хранят единицы измерения массы
Контроль размерности переменной
Функция, возвращающая «букет» переменных
Работа с «житейскими» градусами в среде Mathcad
Определение высоты по температуре кипятка
Работа с эмпирическими формулами в среде Mathcad
Сейчас никого не удивляет тот факт, что не только аспиранты, инженеры и студенты, но и школьники решают свои задачи на компьютере. Удивление или, по крайней мере, вопросы может вызывать лишь выбор конкретной программной среды для этих целей. Ответ на вопрос, почему для расчетов пользователи компьютеров все чаще и чаще прибегают к услугам Mathcad, может быть и такой: Mathcad обладает уникальной возможностью оперировать не просто величинами, а физическими величинами.
Работа в среде Mathcad
Работа в среде Mathcad — эта третья ступень в использовании вычислительной техники при решении физико-математических, инженерно-технических, а также учебных (школьных и вузовских) задач. Две предыдущие ступени — это работа с машинными кодами (на ассемблере, например) и с языками программирования (BASIC, Pascal, C, fortran и т.д.).
Использование вычислительной техники в научно-технических расчетах сыграло с этими расчетами злую шутку: из расчетов были безжалостно выброшены размерности физических величин и единицы их измерения — метры, килограммы, секунды… Ручное решение физической задачи (школьной или вузовской задачи по физике, если говорить конкретнее), как правило, требовало и требует оперирования сугубо размерными величинами. Автоматизация таких расчетов — написание программ для компьютера исключает из задачи ее «физику»: переменные программы хранят только числовые величины, а соответствующие им единицы измерений программист должен «держать в уме». Из-за этого при переводе расчета на язык ЭВМ необходимо придерживаться строгого правила — все физические величины должны быть в одной системе единиц, кроме того, они должны быть без множителей мили, мега и т.д. Это жесткое правило вызывало и вызывает ряд неудобств, основные из которых следующие:
- Международная система (СИ) хоть и широко распространена в мире, но не является и никогда не будет единственной. Базирование программы на какой-либо одной системе величин мешает естественному процессу глобального обмена идеями, получившему новое ускорение в эпоху Internet1
- В процессе создания программы большую роль играет ее отладка, а основной инструмент отладки — это вывод на дисплей промежуточных результатов, анализ которых позволяет локализовать и устранить ошибку, если она была допущена при подборе формул и/или при написании самой программы. А здесь важно не только вывести значение какой-либо физической величины с правильным форматом, но и выразить ее в нужных единицах нужной системы измерения. Система СИ при всех ее достоинствах внедрялась и у нас и во всем остальном мире «как картошка на Руси» — в виде «подарочного набора». Часть единиц измерения (метры, секунды) используются без каких-либо проблем, другие же («нагрузка») так и не прижились в качестве доминирующих единиц. В теплоэнергетике, например, давление пара в котле чаще всего измеряют и выражают в атмосферах2, а давление в конденсаторе — в миллиметрах ртутного столба. «Узаконенная» стандартная единица измерения давления — паскаль (ньютон на квадратный метр) оказалась крайне неудобной. Трудно припомнить научно-техническую область, где паскали применялись бы в чистом виде — без масштабирующих множителей3 (бары, килопаскали, мегапаскали и др.). Дело в том, что «живая», вернее «прижившаяся» единица измерения, связана с «жизнью» — с физическим явлением или физическим опытом: атмосфера, как следует из самого названия, — это давление воздуха на уровне моря (примерное давление — см. рис. 7 и рис. 11), а миллиметры ртутного столба напоминают нам об экспериментах Э.Торричели (в среде Mathcad torr — это и есть миллиметр ртутного столба). В теплоэнергетике исключение «внесистемных» атмосфер и миллиметров ртутного столба — замена их на паскали чревата не просто неудобствами, но серьезными сбоями в работе, связанными, например, с тем, что оператор, управляющий энергоблоком4, будет неправильно интерпретировать показания манометров, проградуированных в «правильных» единицах давления.
- В создаваемые программы приходиться вставлять формулы, выведенные не только в результате теоретического анализа проблемы (F=m g — см. анекдот в эпиграфе, T=m c2 и т.д.), но и полученные после статистической обработки экспериментальных данных. Коэффициенты таких формул (см., например, рис. 12 ниже), как правило, жестко связаны с той или иной системой единиц измерения и нередко требуют пересчета для использования в программе. Это может вносить дополнительные погрешности и чревато ошибками (промахами).
Один из путей решения проблемы единиц — это отказ от размерных физических величин и переход к использованию безразмерных чисел5, хранящих количественную оценку тех или иных физических явлений, — число Рейнольдса, число Нуссельта, число Шмидта и т.д. Еще более радикальный путь — это переход от числовых характеристик к качественным оценкам физических явлений и технологических процессов. Можно сказать, что давление в котле равно стольким атмосферам, а можно сказать, что давление нормальное (низкое, высокое и т.д.) и построить систему управления энергоблоком, основанную на подобных лингвистических (экспертных) оценках и опирающуюся на теорию нечетких множеств6.
Пакет Mathcad полностью поддерживает математику работы с размерными переменными, что и будет описано данной статье.
Исключение единиц измерения физических величин из расчетов на компьютере сказалось и на работе в среде Mathcad. Многие неопытные пользователи примерно так начинают формировать Mathcad -документ
записывая размерность введенной величины в виде комментария, а не в виде множителя у числовой константы и отключая тем самым размерности физических величин из дальнейших расчетов.
Механизм работы с единицами измерений физических величин позволяет в среде Mathcad:
- вводить исходные данные в нужной системе измерений и в нужных единицах измерений;
- вести контроль размерностей в формулах, по которым проводятся расчеты (не складывать килограммы с метрами, грубо говоря);
- выводить рассчитанные данные в нужной системе измерений и в нужных единицах измерений;
Механизм работы с размерными величинами будет проиллюстрирован примерами.
На рис. 1 показано решение в среде Mathcad простейшей физической задачи: на площадь S действует сила F; спрашивается, чему равно давление P.
Расчет давления в среде Mathcad
Физические задачи в среде Mathcad не просто могут, но и должны решаться с подключением единиц измерения физических величин — силы, площади и давления, если иметь в виду нашу задачу. В Mathcad документе по умолчанию синим цветом окрашены комментарии, а черным — математические выражения, а именно:
- Пункт 1.1. Переменной F оператором «:=» присваивается не просто число 20, а двадцать килограмм силы. Для этого числовая константа пользователем перемножается7 на одну из системных (предопределенных) переменных, хранящих единицы измерения физических величин. У нас эта переменная имеет имя kgf — килограмм (kg) силы (f — force). «Припечатать» единицу измерения можно, воспользовавшись услугами «Мастера размерностей», диалоговое окно которого (Insert Unit — Вставить единицу измерений) выводится на дисплей нажатием кнопки с изображением мерной кружки (см. рис.1). В диалоговом окне Insert Unit три поля и три кнопки. В первом поле пользователь выбирает нужную физическую величину (Dimension: Force — сила, Frequency — частота, Inductance — индуктивность, Luminosity — освещенности и т.д. — см. таблицу), а во втором — единицу измерения (Unit: для силы это Dynes — дина, уже упоминавшийся Kilogram(force) — килограмм силы, Newton — ньютон и Pounds(force) — фунт силы). В третьем поле показана система измерений, которую пользователь также вправе менять (см. ниже рис. 2 и рис. 5). Кнопка ОК вставляет выбранную единицу и убирает с дисплея окно Insert Unit, кнопка Insert — вставляет единицу и оставляет окно на дисплее для дальнейшей работы с ним, а кнопка Cancel (отмена) выполняет третью комбинацию действий — убирает окно и не вставляет единицу.
- Пункт 1.2. Ввод значения переменной S. Здесь единица измерения площади вводятся без помощи Мастера размерностей, т.к. сокращение квадратных сантиметров (cm2) запомнить довольно легко (как записать русские см, а не латинские cm — см. рис. 3).
- Пункт 2. Расчет значения давления. Переменная P при этом принимает не только числовое значение (результат деления значения переменной F на значение переменной S), но и результат деления килограмма силы на квадратный сантиметр, вернее просто силы на площадь.
- Пункт 3. Вывод рассчитанного значения давления:
- Пункт 3.1. Значение давления выводится с форматом и с размерностью умолчания — сочетание основных единиц измерения массы (kg), расстояния (m) и времени (sec), записанное одной строкой. В выражении kg ? m-1 ? sec-2 — увидеть давление можно, если его помножить и тут же поделить на m — kg ? m/( m2 ? sec).
- Пункт 3.2. Вывод единиц измерения не в виде одной строки, а в виде дроби: первый шаг форматирования — см. галочку в поле Format Units окна Result Format на рис. 1. Данное окно вызывается на дисплей двойным щелчком по числовому результату.
- Пункт 3.3. Вывод результата с упрощенными до одной переменной (Pa — паскаль) единицей измерения давления. Паскали получились потому, что Mathcad (европейская версия) по умолчанию ориентирован на SI — на международную систему измерения (см. поле System в окне Insert Unit на рис. 1). Если же изменить систему измерений (см. рис. 2) — перейти от SI, например, к британской (американской — U.S.) системе, то давление будет измеряться уже не в паскалях, а в «заокеанском» аналоге единицы измерения давления, где вместо килограммов выступают фунты (lb), а вместо метров — на футы (ft)8.
Изменение системы измерений
Пользователь Mathcad может выразить давление в любых других единицах измерения давления — встроенных (перечисленных в окне Insert Unit на рис. 1 и в таблице) или пользовательских. На рис. 3 рассчитанное давление выведено в паскалях (Pa) и в атмосферах физических (atm — 760 миллиметров ртутного столба). Кроме них в Mathcad встроены и перечислены в окне Inset Unit и другие единицы измерения давления: дюймы ртутного столба (in_Hg), фунты силы на квадратный дюйм (psi) и миллиметры ртутного столба (torr, единица, названная в честь Э.Торричелли). Если же пользователя этот список не устраивает, то он может ввести в расчет пользовательские единицы (или просто национальное написание международных единиц измерения), связав их со встроенными: кгс := kgf, см: = cm и т.д. В конце рис. 3 давление выведено в атмосферах технических — килограмм силы на квадратный сантиметр. Более того, давление можно выразить, связав силу не с «квадратной» (cm2), а с «прямоугольной» (см ? m) площадью.
Смена единиц измерения давления
В среду Mathcad встроены инструменты работы с основными (время, длина, масса, сила тока, освещенность, температура и количества вещества) и с производными величинами — см. таблицу. Механизм работы с пользовательскими величинами (не с единицами, а с величинами) в среде Mathcad не предусмотрен. Но единицы измерения новых (нефизических) величин можно ввести в расчет, связав их с единицей измерения какой-либо встроенной величины, которая в данном расчете не используется — с освещенностью9, например.
Работа с пользовательской нефизической (экономической) величиной
На рис. 4 ведется расчет платы за потребленную электроэнергию — на мощности 300 Вт (watt) работали 150 дней (day). Единица измерения стоимости временно приравнивается к канделе (cd) — см. пункт 1 на рис. 4. При этом ответ (плата за электроэнергию) будет выведен в канделах, которые нужно будет переправить на рубли10 — см. последнюю строку на рис. 4. Можно было в Mathcad документе на рис. 4 записать не руб := cd, а руб := 1, но связывание единиц измерения новой величины с одной из встроенных, не использующейся в данном расчете, позволяет сохранить механизм контроля размерностей. Дело в том, что ввод в расчет единиц измерения позволяет не только подстраивать ответ под нужную шкалу восприятия пользователем физических величин (в одном месте давление лучше вывести в атмосферах, а в другом — в миллиметрах ртутного столба и т.д.), но и блокирует, например, сложение метров с килограммами.
Единицы измерения физических величин — это по своей сути предопределенные переменные, хранящие размерные величины, «вид» которых зависит от выбранной системы измерений — см. рис. 5, где показаны «метаморфозы» трех основных единиц измерения массы: килограмма (kg), грамма (gm) и английского фунта (lb11).
Что хранят единицы измерения массы
На рис. 5 показано, как будут выглядеть три оператора вывода основных единиц массы, если менять систему измерений.
Как видно из рис. 1, приведенного в начале статьи, технология решения задач в среде Mathcad полностью повторяет технологию «ручного» решения: вводятся исходные данные (пункт 1 на рис. 1 — «делай раз»), ведется расчет («делай два») и выводится результат («делай три»). При этом создатель Mathcad-документа вправе требовать от будущего пользователя ввода не просто исходных значений переменных (числа), но и числа с нужной размерностью.
Контроль размерности переменной
На рис. 6 показан один из способов контроля размерностей: к введенной переменной прибавляется и тут же отнимается единичный метр. С вводимой величиной ничего не происходит, но если она безразмерная или хранит размерность не длины, а какой-то другой величины, то расчет прерывается сообщениями об ошибке: «The units in the expression do not match — единицы измерения в выражении не соответствуют друг другу» и «This variable or function is not defined above — эта переменная или функция не определена выше». Оператор d := d + m - m несколько странен с позиций традиционного программирования12, но в среде Mathcad он вполне закономерен, если вспомнить что m — это единичный метр. Кроме того, в среде Mathcad можно иметь разные одноименные переменные, обозначенные как Variables и User1, чем мы и воспользовались при контроле размерности переменной d.
Для контроля размерности переменной можно использовать и встроенную функцию UnitsOf (см. рис. 6), возвращающую единицу измерения своего аргумента.
Единицы измерения физических величин можно и нужно использовать не только в самих расчетах, но и для графического оформления их.
«Размерный» график
На рис. 7 показан расчет изменения давления по высоте с использованием барометрической формулы13. Результаты расчета выведены в виде графиков — левый график для континентальной Европы, правый — для США и Великобритании. Если по осям графика записать такие выражения: по оси ординат — p(h), а по оси абсцисс — h (высота, которую мы дискретно меняем (табулируем) от 0 до 20 км с шагом 100 м), то шкалы осей будут градуированы в паскалях и в метрах. Изменение градуировки происходит так: пользователь меняет p(h) на p(h)/единица измерения давления и h на h/единица измерения длины, выбирая тем самым нужную градуировку осей графика — метрическую, британскую или еще какую-то другую: не километры, а метры, не тысячи футов, а мили, мм (дюймы) ртутного столба14, а атмосферы и т.д., подстраивая график по оптимальное его восприятие человеком.
Элементы Mathcad документа (ввод исходных данных, расчет по формулам, вывод результатов) выполняется в их естественной последовательности — сверху вниз и слева на право. Пользователь Mathcad может нарушить этот порядок, организовав циклы (часть операторов выполняется циклически до тех пор, пока не будет выполнено некое условие) или альтернативы (выполняется либо одна, либо другая группа операторов). Еще два атрибута программирования в среде Mathcad — это объединение части (группы) операторов в операторный блок, который выполняется как один оператор, и работа с локальными переменными, видимыми только внутри программного блока.
Последующие два рисунка (рис. 8 и рис. 9) проиллюстрируют особенности использования единиц измерения в Mathcad-программах.
Размерность в программах
На рис. 8 с помощью инструментов программирования формируется функция пользователя, возвращающая объем прямого круглого конуса в зависимости от диаметра его основания и длины образующей (два аргумента функции). Разработчик Mathcad (фирма MathSoft, Inc. — www.mathsoft.com) не гарантирует правильность работы механизма размерностей, если в программе есть циклы15. Циклов в нашей программе нет (там задействованы только два из трех атрибутов программирования — объединение операторов в блок, отмеченный вертикальной, чертой и объявление локальных переменных d, a, r, и h через операто𠫬 »), но, тем не менее, в программе мы сразу лишаем переменные их размерности: d¬ Диаметр/m, а¬ Образующая/m («береженого Бог бережет»). «Отнятые» у переменных метры в конце выполнения программного блока «возвращаются с процентами» — с метрами кубическими.
Британский или английский пользователь Mathcad может тут использовать футы и/или дюймы, но на работу функции V это не повлияет: вызывая ее, можно использовать любые единицы длины и объема — см. примеры на рис. 8.
При использовании единиц измерения в программах может возникнуть такая проблема. Часто бывает необходимо, чтобы функция пользователя возвращала не одно, а несколько значений16. Если вернуться к нашей функции расчета объема конуса, то можно попытаться заставить ее возвращать не только объем конуса, но и остальные рассчитанные внутри функции параметры конуса, хранящиеся в локальных переменных: R (радиус основания конуса), H (высота), S (площадь основания) и, естественно, V (сам объем). Выводятся все эти значения в виде массива: матрицы с двумя столбцами, первый из которых — это комментарии. Во втором столбце выводятся вышеперечисленные параметры конуса, лишенные своей размерности из-за того, что элементами массива (вектора или матрицы) в среде Mathcad могут быть только величины одной размерности или просто безразмерные — см. рис. 9.
Функция, возвращающая «букет» переменных
Из формируемой матрицы можно изъять нужный элемент, припечатав к нему нужную единицу измерения:
V(D, A) := F(D, A)3,1* m3
В списке встроенных единиц измерения температуры есть градусы Кельвина (К) и Ренкина (R)17, но нет более «житейских» градусов Цельсия и Фаренгейта. Дело в том, что к этой физической величине применяют два метрических понятия — единица измерения и шкала измерения18: градус Цельсия равен градусу Кельвина, но шкала Цельсия сдвинута по отношению к шкале Кельвина на 273,15 градусов (Цельсия или Кельвина). Из-за этого к единицам (шкалам) измерения температуры нельзя применить простое правило создания пользовательских единиц измерения, связав их со встроенными через множители, как это было сделано на рис. 3. На рис. 10 показан один из возможных механизмов работы с пользовательскими единицами (шкалами) измерения температуры в среде Mathcad. Для конвертирования градусов Цельсия, градусов Фаренгейта и градусов Реомюра в градусы Кельвина или Ренкина введены три пользовательские функции с именами ° C, ° F и ° Реомюра19, которые при вводе температур вызываются не в виде функции — t := ° C(300), а в виде постфиксного оператора — t := 300 ° C, что создает полную иллюзию работы с внесистемной единицей измерения — с градусом Цельсия. Но переменная t при этом «захватывает» температуру в абсолютной шкале измерения: t = 573.15 К или t = 1031.67 R. Вывод значения температуры по шкале Цельсия или Фаренгейта ведется еще более хитро. Для этого объявляются две функции с невидимыми именами (в среде Mathcad это возможно): у первой функции (вывод температуры по шкале Цельсия) имя — пробел, а у второй (вывод температуры по шкале Фаренгейта) — два пробела. При этом для маркировки выведенного значения температуры пришлось «одолжить» символы C и F у заряда и емкости. Здесь нет ничего крамольного — относительные шкалы измерения мы используем только при вводе и выводе значений температуры. Сами же расчеты ведутся только в абсолютной шкале температур (градусы и шкалы Кельвина или Ренкина).
Работа с «житейскими» градусами в среде Mathcad
Барометрическая формула и графики изменения давления по высоте, показанные на рис. 7, незримо присутствует в одном из рассказов Марка Твена20. Дело было в горах и разговор зашел о том, что кипящая в котелке вода может подсказать высоту над уровнем моря. Герои рассказа забыли, что нужно опустить в кипящую воду — термометр или барометр. Термометра под рукой не оказалось, сунули в воду барометр, который тут же сломался. Опустили в воду другой — эффект тот же самый. Высоту над уровнем моря так и не определили, но зато научились варить отличнейший «суп из барометров». Серьезно разбирать сюжеты Марк Твена — дело бессмысленное. Но мы рискнем. Героям рассказа Марк Твена достаточно было перенести показания барометра на ординату графика на рис. 7, чтобы узнать высоту над уровнем моря. Кипятить термометр следовало лишь в том случае, если бы под рукой не оказалось барометра.
Определение высоты по температуре кипятка
На рис. 11 показано, как в среде Mathcad можно определить высоту над уровнем моря по температуре кипящей воды. Для этого одной барометрической формулы не достаточно. Нужна еще и формула (функция), связывающая температуру кипящей воды с давлением. Эта функция имеет имя wsp_pst и входит в пакет функций теплофизических свойств воды и водяного пара, разработанных для Mathcad в Московском энергетическом институте21 К.Орговым — студентом автора. В Mathcad-документе на рис. 11 первой строкой делается ссылка (Reference) на файл с именем WaterSteamPro.mcd, где эти функции созданы. После такой ссылки в рабочем документе становятся доступными («видимыми») все нужные для работы пользовательские функции, возвращающие параметры воды и водяного пара. Для удобства работы с этими функциями сделано так, чтобы они были видимы и описаны в Мастере функций Mathcad. Файл с именем Системы единиц.mcd, на который также делается ссылка, хранит пользовательские единицы измерения.
Файлы WaterSteamPro.mcd и Системы единиц.mcd можно скачать из Internet-адреса http://twt.mpei.ac.ru/orlov/watersteampro на условиях shareware.
Серьезный разбор задачи о высоте над уровнем моря — это дело не совсем «серьезное». И не только потому, что юмор Марк Твена всячески «сопротивляется» этому. Дело и в том, что барометрическая формула предназначена только для идеального газа. Кроме того, давление воздуха на одной и той же высоте может сильно колебаться. Температуру воздуха мы приняли за 5 градусов Цельсия, а она сильно изменяется по высоте.
Но цель нашего расчета не в разборе рассказа, а в показе возможностей Mathcad при решении «размерных» задач (тема статьи, если кто-то забыл).
Использование размерностей физических величин в среде Mathcad позволяет по-новому организовать расчеты по эмпирическим формулам, переменные которых «намертво» привязаны к определенным единицам измерения. Переход к новым единицам требует перезаписи формул.
Пример. Для расчета теплоотдачи при кипении22 воды пользуются формулой
(1)
где а — ккал/(м2 .ч .К); p — кгс/см2; q — ккал/(м2 .ч).
При записи этой же формулы с использованием системы единиц СИ значение постоянного множителя в правой части формулы (1) изменяется.
Необходимо определить новое значение этого множителя. Обозначим его буквой С, тогда:
(2)
1 Вт/(м2.К) = 0,860 ккал/(м2 .ч.К);
1 Па = 1,02.10-5 кгс/см2;
1 Вт/м2 = 0,860 ккал/(м2 .ч).
Подставляя коэффициенты из одной системы единиц в формулу для расчета теплоотдачи при кипении, получаем новое значение постоянного множителя:
(3)
и в новых единицах формула (1) примет вид:
(2.1)
где ? — Вт/(м2.К); p — Па; q — Вт/м2.
На рис. 12 показано решение этой «метрической» проблемы в среде Mathcad.
Работа с эмпирическими формулами в среде Mathcad
Если формула оперирует только определенными единицами измерений и возвращает ответ с оговоренной единицей, то эти оговорки необходимо записать в формуле так, чтобы при обращении к ней можно было пользоваться любыми встроенными или пользовательскими единицами измерений (см. подсвеченные операторы на рис. 12).
При работе с размерностями Mathcad может возникать интересная ситуация, связанная с округлением степени единицы измерения физической величины до целых значений. На рисунке ниже показана такая ситуация, когда по ошибке или специально из литра извлекается квадратный корень:
Mathcad выдает ответ: квадратный корень из литра равен стольким-то метрам в первой степени, т.е. просто метрам, что смущает вдумчивых пользователей, которые вполне законно делают вывод о том, что Mathcad не совсем корректно работает с размерностями. Но здесь дело в том, что Mathcad округляет до целого степень единицы измерения. Если подставить в ответ другую единицу измерения (метр в степени полтора), то все станет на свои места (см. выше).
Округляет до целого только Mathcad 200023 — более ранние версии (Mathcad 8, например) выдавали и дробные степени единиц измерения (m1.5, например). Разработчики Mathcad посчитали было, что дробная степень единицы измерения — это «сапоги всмятку». Но это не совсем так. Можно, например, длину измерять в галлонах, из которых извлекли кубический корень. Почему бы и нет! Если есть единица объема кубический метр, то допустима и единица длины — кубический корень из галлона (литра, стера и т.д.).
Один персонаж Аркадия Райкина (алкоголик) измерял комнату чекушками (бутылками в 0,25 литра водки), а потом пытался высчитать площадь в «квадратных литрах». Он был не очень далек от истины:
Литра будет служить в качестве единицы площади, если его возвести в соответствующую дробную степень (две трети).
Дивертисмент
В романе Агаты Кристи «Убийство в Месопотамии» читаем: «Начнем с того, что его рост, на мой взгляд, не превышал пяти футов и пяти дюймов». Загадка роста знаменитого сыщика — Эркюля Пуаро разгадывается в среде Mathcad одним оператором:
5 ft + 5 in = 165.1 cm
Можно, конечно, возразить, что эту простенькую задачу можно решить и без Mathcad. Cтoит только взять в руки калькулятор24 и энциклопедический словарь. Но ценность Mathcad в том, что он объединяет в себе (интегрирует) и калькулятор, и справочник по физическим величинам, и многое другое25.
Более сложную загадку о росте своего героя оставил нам И.С. Тургенев. Второй абзац знаменитой повести «Муму» начинается так: «Из числа всей ее челяди самым замечательным лицом был дворник Герасим, мужчина двенадцати вершков роста, сложенный богатырем и глухонемой от рождения».
вершок := 4.445 см (В справочник мы все-таки заглянули)
12 вершок26 = 53.36 см
Герасим, судя по этому подсчету, не дотягивал не то что до богатыря — не тянул на карлика. В чем тут дело!?
Гипотеза первая. Тургенев, описывая Герасима, имел в виду не простые, а какие-то особые вершки. Ведь есть сажень, а есть косая сажень («косая сажень в плечах!»), маховая сажень, есть метрическая тонна, а есть «длинная» тонна, «короткая» тонна, есть сухопутная миля, а есть морская и т.д. Но поиск27 таинственных «удлиненных» вершков окончился неудачей — вершки оставались вершками: семь четвертых дюйма, одна четвертая пяди, одна шестнадцатая аршина, одна сорок восьмая сажени и т.д.
Более вероятной представляется другая гипотеза, связанная с принципом умолчания. Дело в том, что рост человека, как правило, укладывается в диапазоне от 2 до 3 аршин:
Аршин := 16 вершок (вершки определены выше)
2 аршин = 142.24 см
3 аршин = 213.36 см
Три аршина — это хороший баскетболист, а два аршина — рулевой восьмерки в академической гребле.
Представим себе такую сценку прошлого века28, близкую, правда, не Тургеневу, а другому великому русскому писателю — Достоевскому. В тюрьму прибывает новая партия арестантов. Первый тюремщик измеряет их рост, а второй (писарь) заносит цифры в протокол. В помещении, где все это происходит, звучат короткие фразы: «Пять», «Три с половиной, «Четыре с четвертью» и т.д. Отсчет в вершках (первое умолчание) здесь ведется не от пола (нуль — абсолютная шкала измерения), а от двух аршин (второе умолчание — относительная шкала измерения). Тургенев выбросил из повести «два аршина» потому, что краткость это сестра не только таланта, но и процесса быстрой и точной передачи информации. В основе компромисса между требованиями точности и быстродействия лежит этот самый принцип умолчания.
Опираясь на изложенную гипотезу, несложно подсчитать рост Герасима:
2 аршин + 12 вершок = 195.58 см
Вот это нормальный богатырский рост!
КомпьютерПресс 3'2000