MathCAD

       

Решение задачи о пожарном ведре


Пусть радиус заготовки R равен одному метру (см. начало рис. 2.2). Это можно было бы и не оговаривать[1], так как значение оптимального угла вырезки не зависит от радиуса заготовки (см. конец рис. 2.1), но для численного

решения задачи о пожарном ведре это необходимо. Правда, можно было написать проще – R:=1, не привязываясь к метрам (литрам, галлонам – см. ниже). Но единицы физических величин позволяют нам дополнительно вести контроль правильности формул через соответствие размерностей[2].

Далее записана (вернее, скопирована из рис. 2.1) цепочка функций пользователя, формирующая нашу анализируемую функцию V(a), в которую вложены другие функции – r(a) и h(a). В последнюю в свою очередь также вложена функция r(a). Механизм вложения функций и операторов (встроенных и пользовательских) ¾ это мощный инструмент не только Mathcad, но и других программных сред, позволяющий быстро и изящно решать довольно сложные задач. Вложенные функции просты по виду, а механизм их формирования открыт, чего не скажешь о функции V(a) в пункте 3.2 на рис. 2.1.

Прежде чем искать максимум функции, необходимо убедиться, что он есть. Лучший же способ увидеть максимум – просмотреть график функции. В среде Mathcad есть семь видов графиков (см. этюд 1), первый из которых (X-Y-график в декартовых координатах) отображен на рис. 2.2. Здесь график построен по «двухшаговой» технологии: задается вид функции и сразу отдается команда на вставку графика в Mathcad-документ. По умолчанию аргумент меняется от минус 10 до плюс 10 с пятьюдесятью точками на графике. После построения наброска графика его нужно будет отформатировать – изменить разброс аргумента и др.

На графике в районе 60-70 градусов отчетливо виден максимум функции. Как его уточнить?

Для решения такой задачи в Mathcad 8 встроена новая функция Maximize, возвращающая координаты максимума анализируемой функции вблизи точки начального приближения. Если из заготовки вырезать сектор с углом в 66 с чем-то градусов, то такое ведро будет иметь максимальную вместимость ¾ 403 литра (106 с половиной американских или 88 с половиной британских галлонов – продолжение темы единиц измерения физических величин, начатой в этюде 1).


Заканчивается численное решение задачи о пожарном ведре проверкой правильности решения: Доверяй, но проверяй! Для этого, во-первых, оно сравнивается с аналитическим (абсолютно точным, скопированным из рис. 2.1). Во-вторых, построен график той же функции, но на ином интервале значений аргумента – вблизи найденной точки максимума: в интервале 65-67 градусов с шагом 0.1[3]. Уточняющий график построен уже по «трехшаговой» технологии ¾ с заданием области значений переменной-аргумента a. На это приходится идти, так как переменная a к этому моменту уже имеет скалярное значение, которое мешает строить график в два шага.
На рис. 2.2 читатель может видеть переменную с индексом a опт. Но здесь индекс опт (оптимальное) не числовой, как на рис. 1.6 и 1.7, а текстовый. Числовой индекс должен иметь определенное целочисленное значение, отмечающее место переменной в векторе или в матрице. Текстовый же индекс – это всего лишь продолжение имени переменной (функции). Он вводится в Mathcad-документ для эстетического эффекта – чтобы переменные были более наглядными. Получается текстовый индекс после того, как в середину имени переменной поставят точку: было a.опт, стало a опт. Числовой же индекс, как помнит читатель, вводится либо через квадратную скобку (X[n – Xn), либо через специальную кнопку Xn панели инструментов Matrix.
Попробуем усложнить задачу о пожарном ведре. Что если вырезанный из заготовки сектор не выбрасывать, а скручивать из него второе коническое ведро? Вместимость двух ведер, естественно, будет больше вместимости одного ведра. Вопрос на пари: как необходимо раскроить заготовку, чтобы суммарный объем двух ведер был максимальным? Большинство опрошенных, опираясь на здравый смысл, ответят, что заготовку нужно разрезать пополам по диаметру, и... проиграют пари.

Содержание раздела