MCS на занятиях по математике, физике, информатике…

В.Очков (http://twt.mpei.ac.ru/ochkov)

В статье рассказано, как на уроках физики, математики, информатики можно использовать расчеты, открытые в Интернете, и как можно открывать свои собственные расчеты во Всемирной Паутине через технологию Mathcad Calculation  Server (MCS)

Эпиграф

Диалог на занятии по компьютерному моделированию.

Студент: «Смотрите, как у меня на экране два тела ловко по орбитам крутятся!»

Преподаватель, молча глядя на дисплей: «Тут у тебя не два тела крутятся, а целых три - Исаак Ньютон в гробу тоже переворачивается...»

Начнем с «потревоженного» Ньютона.

Часто можно услышать такой риторический вопрос: «Как бы сейчас выглядело дифференциальное исчисление, если б у Ньютона был компьютер?!» Риторический вопрос это вопрос, не требующий ответа, но попытаемся его дать.

У истории, как известно, не бывает сослагательного наклонения, но… Одни считают, что если бы у Ньютона был компьютер, то никакого дифференциального исчисления не было бы. А было бы нагромождение решенных и якобы решенных задач, множество таблиц и кривых на дисплеях компьютеров, обобщить которые было бы чрезвычайно трудно – «голь (люди без компьютера) на выдумки хитра». Другие же утверждают, что «компьютеризированный Ньютон» помог бы нам избежать многих ошибок и заблуждений, уберег бы от поисков аналитических решений там, где их нет, что в конце концов, привело бы к более бурному развитию науки и техники в целом и математики в частности. Но близкий к истине ответ, наверно, таков: «Если б у Ньютона был компьютер, то это бы означало, что... дифференциальное исчисление как наука уже существовала в течение трехсот лет до Ньютона, а сам Ньютон (один из создателей дифференциального исчисления) носил бы другое имя...».

Вышеприведенный текст был опубликован как начало статьи «MAS на занятиях по математике, физике, информатике…» [1] см. http://twt.mpei.ac.ru/ochkov/Mathcad_12/Planet. В названии новой статьи, статьи, которую читатель держит перед своими глазами[1], автор поменял только одну букву A на букву S. Этим, во-первых, автор напоминает, что программа Mathcad Application Server (MAS), о которой речь пойдет в данной статье, сменила свое название на Mathcad Calculation  Server (MCS). Кроме того, непринято публиковать две разные статьи под одним названием и автор[2], недолго думая, сделал в названии статьи минимальное изменение. Можно было бы совсем не менять название и считать эту статью продолжением первой…

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

Если правильность моделей, описанных в первой статье, можно проверить, наблюдая в телескоп за движением небесных тел, то оценить точность выкладок данной статьи можно намного проще — проведя несложные эксперименты в физическом кабинете с грузом, подвешенным на нити…

В учебниках описаны понятия математического и физического маятника. Мы же поговорим о неком компьютерном маятнике, о математической модели маятника, реализованной на компьютере с помощью программы Mathcad и открытой в Сети посредством другой программы Mathcad Calculation  Server (MCS).

Известно, что период колебания математического маятника зависит от длины нити L и ускорения свободного падения g или только от L, если g считать константой.

Рис. 1.

На рис. 1[3] (http://twt.mpei.ru/mcs/Worksheets/Pendulum/1.xmcd) показано, как с помощью символьной математики программы Mathcad[4], а конкретнее, через аналитическое решение системы двух уравнений:

+ b = 0

-2= 1,

 полученных после приложения теории размерностей [2] к уравнению

τ = С La gb

можно решить задачу: расстояние и время (две размерности из семи базовых, определяющих международную систему измерений SI) в этом уравнении могут «не входить в конфликт»[5], если длина нити маятника стоит в числителе, а ускорение свободного падения в знаменателе дроби, из которой извлекается квадратный корень[6]. О константе C разговор особый.

Когда-то маятник можно было видеть почти в каждом доме. Он отмеривал время и в дорогих напольных часах и в дешевых ходиках. Часы стали компактными и мобильными, когда в них маятник заменили на балансир с пружиной. О пружине и ее математической модели мы тоже поговорим. В наше время все чаще и чаще время отмеривают не маятником или балансиром, а кварцевым чипом. Его тоже несложно описать, опираясь на подходы, изложенные в данной статье.

Константу C можно определить двумя путями — теоретическим анализом математического маятника (это мы сделаем чуть позже — см. рис. 4) или через эксперимент с физическим маятником, близким к математическому: к небольшому (точечному) грузу, подвешенному в вакууме или на худой конец в мало сопротивляющейся среде (в «воздухе физического кабинета») на длинной нерастяжимой, легкой  и достаточно гибкой нити, отклоняющейся от вертикали на небольшой угол[7]… Мы же пойдем третьим путем — попытаемся оценить значение константы C через… ретроспективный анализ  метра.

Эту единицу длины сейчас связывают с длиной волны определенного источника света. До этого метр отмеряли специальным платиновым эталоном[8]. Но первая попытка стандартизации метра была предпринята еще в 1791 году — метр связали с длиной земного меридиана. На этом в различных справочниках и энциклопедиях история метра обрывается. Но можно предположить, что еще раньше в качестве некоего эталона метра использовали… штангу часового маятника, отмеривающего за каждый свой «взмах» одну секунду (см. окончание выкладок на рис. 1, где мы задали длину нити маятника, равную одному метру, и значение ускорения свободного падения… на широте Парижа; период колебания маятника (два его взмаха) оказался чуть бόльшим чем две секунды; можно предположить, что часовой мастер изготавливал штангу маятника часов длиной один метр (отсюда, повторяем, и пошел метр), а потом на месте установки часов их подстраивали, подкручивая специальные тарировочные гаечки на конце маятника).

На рис. 2 показана страница интернета (http://twt.mpei.ru/mcs/Worksheets/Pendulum/2.xmcd) с реализованной в среде Mathcad модели математического маятника. Задача сводится к решению обыкновенного дифференциального уравнения (ОДУ) второго порядка, связывающего две силы, действующие на маятник по перпендикуляру к положению нити: силу инерции а·m (здесь а или L α”(t), которое можно записать как L∙α’’, где α — угол отклонения маятника от вертикали,  а α’’ — вторая производная этой величины от времени, это ускорение маятника, m — его масса) и силы тяжести g·m·sin(α(t)). Искомой функцией в нашем ОДУ будет α(t) — функциональная зависимость угла отклонения нити маятника от вертикали. На рис. 2 показана работа встроенной в Mathcad функции Odesolve, предназначенной для численного решения (solve) обыкновенных дифференциальных уравнений (ode). Функция Odesolve работает в паре с ключевым словом Given (дано), за которым необходимо записать начальные условия и само дифференциальное уравнение[9] L∙α’’(t)∙ m = -gmsin(α(t)). Сгенерированная встроенной функцией Odesolve пользовательская функция α(t) на рис. 2 отображается на графиках вместе с функцией , которая имеет нами уже  рассмотренный на рис. 1 период 2·π· и является решением ОДУ вида  с заданными начальными условиями. Но в исходном уравнении стояло sin(α(t)). Дело тут в том, что при малых углах (меньше 7°) значение синуса угла примерно равно значению самого угла, выраженного, естественно, не в градусах, а в радианах. Замена синуса на сам угол в дифференциальном уравнении движения математического маятника и позволила найти аналитическое решение. Пакет Mathcad не имеет специализированных средств аналитического решения дифференциальных уравнений. С помощью Mathcad можно такую задачу решить либо численным интегрированием (см. рис. 2), либо через разделение переменных, интегральные преобразования и другие математические «хитрости». Но нашу задачу можно решить и в уме, вспомнив, что вторая производная от косинуса дает сам косинус, но с противоположным знаком.

Рис. 3.

На рис. 3 показана проверка этого решения (предположения) в среде Mathcad через двойное дифференцирование.

Рис. 4.

Аналитически решить ОДУ можно, например, в среде пакета Maple – см. рис. 4.

Рис. 5.

Но исходное ОДУ без упрощения (математический маятник с небольшой амплитудой колебаний, когда sin(α) ≈ α) не имеет аналитического решения – см. рис. 5, вернее, «аналитическое решение» тут такое, что с ним нужно работать опять же через приближенные численные вкладки: взятие интеграла, нахождение нулей функции (RootOf) и т.д. Можно, конечно, считать решение, показанное на рис. 5, аналитическим решением, расширив список операций и функций (сложение, умножение, sin, cos и т.д.), которые мы считаем элементарными. Так, например, были введены в расчетную практику, протабулированы и прописаны в справочниках функции Бесселя, которые являются решением дифференциальных уравнений особого рода, описывающих процессы теплопередачи[10].

Почему же в Mathcad нет специализированных средств аналитического решения дифференциальных уравнений?! Главная причина в том, что более-менее сложная задача аналитически не решается (сравните рис. 4 и рис. 5). Тут лучше сразу прибегать к численным методам интегрирования. При этом аналитическое решение, если оно имеется, может служить неким тестом для проверки точности численных (приближенных!) методов решения задач. Так из рис. 2 видно, что при αн = 7° численное и аналитическое решения совпадают, а при αн = 45°, естественно, нет, т.к. sin(α) уже не равен приближенно α.

Рис. 6.

На рис. 6 (http://twt.mpei.ac.ru/MAS/Worksheets/Pendulum_Spring.mcd (скачать файл); в полярных координатах) отображен сайт интернета, позволяющий рассчитать траекторию качания маятника в сопротивляющейся среде, подвешенного на эластичной нити, растяжение которой пропорционально приложенной силе (закон Гука).

Рис. 7.

На рис. 7 показаны операторы Mathcad, позволяющие численно (тут даже и не стоит пробовать аналитические методы) решить данную задачу. Решается уже не одиночное уравнение (рис. 2), а система уравнений, первое из которых не дифференциальное, а алгебраическое, вернее, функциональное. При этом рассматривается баланс сил по двум направлениям — по вертикали и горизонтали, а не по одному, как это было в случае, показанном на рис. 2. Сопротивление среды принято равным произведению коэффициента трения ξ на площадь поперечного сечения маятника (у нас это шар), на плотность среды и на квадрат скорости маятника. Эластичность нити, на которой подвешен маятник, определяется коэффициентом kH. Но тут можно отказаться от линейности (она имеет место при незначительных растяжениях нити) и ввести в расчет некую функцию kh(ΔL). Маятник можно подвесить на пружине, эластичность которой резко падает при сильном растяжении. При сжатии же вообще нет никакой эластичность. В общем,  тут открывается большой простор для творчества…

Как видно из рис. 7 в процессе численного решения задачи о маятнике Mathcad-функция Odesolve сгенерировала нам три функции пользователя: x(t), y(t) и F(t). Но на рис. 6 показано, что качание маятника отображается с помощью полярного, а не  декартового графика. Это сделано для того, чтобы автоматизировать процесс форматирования (масштабирования) графика. На полярном графике при этом остается пустой верхняя половина, которую мы заполнили графиками изменения во времени энергий нашей механической системы: кинетической энергии маятника[11], его потенциальной энергия и потенциальной энергии натяжения нити (пружины). При качании в вязкой (сопротивляющейся) среде сумма этих трех энергий будет плавно уменьшаться из-за нагревания среды от трения. В вакууме же (ξ = 0) эта сумма будет оставаться постоянной. Это может служить косвенным подтверждением нашей модели. А ошибки при ее составлении весьма возможны. И в том числе из-за того, что при решении дифференциальных уравнений в среде Mathcad приходится отключать механизм размерных величин, который не позволяет складывать «метры с килограммами».

Пакет Mathcad хорошо известен многим школьникам, студентам, инженерам, преподавателями. Выпущено большое количество литературы по этой компьютерной программе (см. http://www.exponenta.ru/soft/Mathcad/mathcad_book.asp, например), содержащей множество задач с решениями, подобным тем, какие мы показали на рисунках статьи. Но относительно новое здесь в том, что наши задачи можно решать не на собственном (персональном) компьютере, а во Всемирной Паутине – в интернете. Об этом, как уже отмечалось, свидетельствуют обрамления некоторых рисунков. Такой удаленный доступ к расчетам в среде Mathcad ведется по технологии Mathcad Calculation Server (MCS), когда на сервере интернета можно открыть документ с расчетом, изменить исходные данные, нажать на кнопку «Recalculate-Пересчитать» и получить новый ответ – числа, графики, рисунки… При этом пользователь может вводить не только свои индивидуальные данные и получать новые траектории качания маятника.

Встроенная в Mathcad функция Odesolve (см. рис. 2) , предназначенная для решения (solve) обыкновенных дифференциальных уравнений (odeordinary differential equations), «разделала» нашу задачу численно: маленькими шажками рассчитываются координаты маятника за период времени от нуля до заданного значения.

Первую часть названия статьи (MCS) мы расшифровали, поговорим подробнее о второй части названия – о школьный или вузовских занятиях…

В настоящее время все больше и больше классов и аудиторий оснащаются мультимедийными компьютерными проекторами, позволяющими выводить на большой экран, в том числе и страницы интернета. Не за горами время, когда можно будет демонстрировать не только «плоские», но и объемные модели с помощью, например, лазерного проектора, вырисовывающего под потолком аудитории трехмерные поверхности и линии. Так сейчас, к примеру, ставят различные шоу на праздниках. Технология MCS дает возможность демонстрировать таким образом и расчеты, подкреплять ими, например, реальные физические опыты. Вращение реальных планет в физическом кабинете показать нельзя, а вот законы трения, качания маятника, соударения тел и многого другого – можно. Математические модели этих и многих других явлений, реализованные в среде Mathcad, можно найти на сайте www.vpu.ru/mas в разделе Разное.

MCS пригодиться не только на занятиях по физике, но и по математике или по информатике?! Если на уроке математики MSS поможет строить графики и поверхности, решать уравнение и системы, то на занятиях по информатике, в частности, можно рассказать, какая программа с циклами и альтернативами скрывается за функцией Odesolve, позволившей нам так просто, быстро и изящно реализовать довольно-таки сложную физическую модель.

В среде Mathcad есть очень удобные средства анимации. Рассчитанную траекторию качания маятника можно отобразить не только на статичных графиках (см. рис. 2 и рис. 6), но и в движении. Его можно проследить, плавно меняя значение переменной tend от значения, близкого к нулю (отпускаем маятник в начальной точке), до конечного значения, зафиксированного на рис. 2 и рис. 6. Но анимации при этом не будет – она получается при смене не менее десяти кадров в секунду. Можно ускорить этот процесс, перелистывая кадры, хранящиеся в буфере браузера Internet, но лучше эту работу поручить самому пакету Mathcad с его встроенными средствами анимации. На сайте, показанном на рис. 6, есть ссылка на соответствующие avi-файлы.

В 2006 году пакет Mathcad сменил хозяина. Раньше это была фирма Mathsoft, а теперь фирма PTC, главным программным продуктом которой является программа Pro/INGINEER, программа для твердотельного проектирования (САПР). Теперь программы Mathcad и Pro/INGINEER интегрированы – расчеты сделанные в среде Mathcad могут автоматически отображаться в проектируемых моделях [3].

Литература:

  1. Очков В.Ф.  MCS на занятиях по математике, физике, информатике… // Компьютерные учебные программы и инновации, № 2, 2006 г. (http://twt.mpei.ac.ru/ochkovMathcad_12/Planet/index.html).
  2. Чертов А.Г. Физические величины (терминология, определения, обозначения, размерности, единицы): Справ, пособие.— М: Высш. шк., 1990.— 335с.: ил.
  3. Очков В.Ф. Mathcad 14 для студентов, инженеров и конструкторов. БХВ-Петербург, 2007 г. (http://twt.mpei.ac.ru/ochkov/Mathcad_14)


[1] Тут все реже и реже прибегают к традиционному штампу «которую читатель держит в своих руках»: сейчас все чаще и чаще читатель читает статьи и книги на дисплее компьютера. Хотя его тоже «можно держать в руках».

[2] Иногда некоторые авторы («нехорошие мальчики») публикуют несколько раз почти одинаковые статьи под разными названиями в погоне за рейтингом цитируемости, в плане подготовки диссертации и по др. причинам.

[3] Рис. 1 и некоторые другие рисунки статьи — это слепки страниц интернета, адрес которых показан в заголовках рисунков. В таких расчетах, созданных в среде Mathcad и открытых в Сети по технологии Mathcad Calculation Server, можно поменять исходные данные, нажать кнопку Recalculate и получить новый ответ.

[4] Любую задачу всегда следует начинать решать с помощью символьной математики — с ручных или компьютерных средств аналитических преобразований. Если же эти средства не срабатывают, то нужно переходить на численную математику — на компьютерные инструменты, работающие не с символами (переменными, функциями, выражениями), а с теми числами, которые эти символы хранят в данной расчетной ситуации.

[5] «Бородатый» анекдот.

Преподаватель Закона Божьего, обращаясь к физику: Сегодня ваш любимчик двойку получил. Спросил я его, что такое Божественная Сила. Так он мне ответил, что это произведение Божественной Массы на Божественное Ускорение.

Физик: Я ему и по физике двойку поставлю. Ведь произведение Божественной Массы на Божественное Ускорение дает Силу с Божественностью в квадрате, а не в первой степени.

[6] Для решения этой довольно простой задачи, конечно, никакого компьютера не нужно. Но мы приводим компьютерное решение для того, чтобы показать, как в среде Mathcad ищутся корни системы алгебраических уравнений. И второй момент. В [2] наша система «вручную» решается  неправильно. Вернее, составлена она неправильно, а решается правильно. По-видимому, в книге была допущена опечатка, которой бы не было, если б сразу использовался компьютер.

[7] Что-то подобное можно было видеть в Исаакиевском соборе Санкт-Петербурга, в те времена, когда он еще назывался Ленинградом. Это был один из маятников Фуко, по которому можно было наблюдать вращение Земли (маятник через некоторое время сбивал деревянный брусок, который специально устанавливал экскурсовод), а также оценивать значение ускорения свободного падения на широте Северной Пальмиры…

[8] Еще один «бородатый» анекдот.

Диалог на экзамене:

Преподаватель: Что такое лошадиная сила?

Ученик: Это сила, какую развивает лошадь ростом в один метр и весом в один килограмм.

Преподаватель: Да где ж вы такую лошадь видели?!

Ученик: А ее так просто не увидишь. Она хранится в Париже, в Палате мер и весов.

[9] В уравнении можно сократить m — массу маятника. Но мы это делать не будем — это сделает сам пакет Mathcad.

[10] Решение, показанное на рис. 5, называют синусом Якоби.

[11] Еще один «физический» анекдот. Один студент, спеша на лекцию по «любимой» физике, споткнулся и сильно ударился головой об асфальт. Когда его везли в больницу, то он все время бормотал: «Хорошо, что пополам, хорошо, что пополам…». Но все обошлось хорошо. При выписке же из больницы, незадачливого студента спросили, что он там бормотал: «хорошо, что пополам, хорошо, что пополам…». Студент ответил: «Эм вэ квадрат пополам!»