MathCAD

       

суммарный объем коробок рассчитывается


На рис. 2. 7 суммарный объем коробок рассчитывается как функция уже не одного, а нескольких аргументов: первый шаг раскроя – один аргумент (пункт 1), второй шаг – два аргумента (пункт 2), третий шаг – три аргумента и т.д. В пункте 1 рис. 2.7 для сравнения использованы три допустимых в Mathcad способа поиска максимума и рассчитаны отклонения от аналитического решения при проектировании одной коробки. В пункте 2 рис. 2.7 найдены оптимальные значения переменных a и b (пропорции выкройки большого квадрата и четырех маленьких квадратиков соответственно), при которых объем пяти коробок будет максимальным (двухмерная оптимизация). Мы забыли наложить ограничения на переменные a и b в блоке Given-MinErr и второй результат оказался неверным. В пункте 3 найденный оптимум проверяется на двух графиках – на линиях уровня и на поверхности.
В среде Mathcad 8 операторы, которые разработчик документа по каким-то причинам не хочет показывать другим людям, можно оконтурить сверху и снизу границами области (команда Area в меню Insert), которую затем можно захлопнуть (команда Area-Collapse в меню Format). Это нами и сделано в пункте 3 на рис. 2.7 – там запрятаны (см. след в виде горизонтальной линии) рутинные операторы формирования матрицы M, по элементам которой строятся трехмерные графики. Если теперь по этой линии два раза щелкнуть левой кнопкой мыши (или щелкнуть раз и отдать команду Area-Expand в меню Format), то область распахнется и покажет свое содержимое:

В предыдущих версиях Mathcad операторы прятали от посторонних взглядов, помещая их за правую кромку экрана дисплея, полагая, что никто не догадается туда заглянуть (тайна Полишинеля – мы уже упоминали об этом в этюде 1).
Выделенную область можно защитить[9]
(с паролем или без оного) от редактирования (команда Area-Lock в меню Format).

Прием очень удобный. Во-первых, операторы можно прятать от самого себя – отладил какой-то участок Mathcad-документа и запрятал его от греха подальше. Другой случай. Разработчик сдал заказчику расчет, оставив на виду только зону ввода исходных данных и зону с результатом (если вернуться к рис. 1.5 с задачей о купце и сукне, то это самые нижние операторы). Остальное (что заказчику знать не следует – сам расчет) скрыто и защищено паролем. Может быть, там всего лишь пара операторов, но не простых, а гениальных. Рассказывают, что один американец починил за 1000 долларов дорогую паровую машину, стукнув по ней разок молотком. Когда ему сказали, что такая работа стоит от силы доллар, то он не стал спорить: «Да, но знание места, куда нужно бить молотком, стоит 999 долларов!»


Заканчивается рис. 2. 7 формулой, по которой можно рассчитать суммарный объем любого числа коробок, изготовленных по методике, показанной на рис. 2.5. Найдены параметры раскроя при семи шагах. У нас получилась схема оптимизации по переменному
числу аргументов. Стоит только изменить длину вектора a, тут же изменится число шагов раскроя квадратной заготовки.
Продолжение и конец решения задачи о коробках – в этюде 7, где к численным методам расчета добавятся аналитические (символьные) методы и... интеллект пользователя.
Попробуем еще немного «погреметь пожарными ведрами» и зададимся новым вопросом. Что если круглую заготовку посекторно раскроить для изготовления не одного (см. рис. 2.2) и не двух (см. рис. 2.3), а трех ведер? Сможем ли мы еще что-то «выжать» из задачи? Можно ли так раскроить круглую заготовку на три сектора и свернуть из них три конуса, чтобы превысить «двухведерный» рекорд, зафиксированный на рис. 2.3? Новая, «трехведерная» задача сводится к поиску максимума функции двух переменных: a (угол заготовки для первого ведра) и b (для второго). Третьему ведру перепадут остатки: 360-a-b.

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