Гурский Д., Турбина Е. - Вычисления в MathCad 12 (1077322), страница 23
Текст из файла (страница 23)
Логические выраженияа:=1b := 2а=Ь=0a^b=la>b=0a<b = 1a>b=0a<b = 1ал b = l = 0av b ^ 6 = 1а ® Ь * 6 =0-,a Ф b = 1Обратите внимание на различие при использовании простого («v») и исключающего(«©») ИЛИ. В первом случае условие считается выполненным, если оно справедливо90• Глава 2. Вычисления и типы данныххотя бы для одного из элементов. Во втором же требуется выполнение условия строгодля одного элемента. Если же условие выполняется для обоих элементов, то в качествеответа оператор «©» выдаст 0.Аналогично некоторым другим важнейшим операторам Mathcad, оператор логического равенства (Bold Equal) может быть представлен в разных формах.
По умолчанию онвизуализируется жирным символом «равно», однако при необходимости вы можетесменить его тип отображения на обычное «=». Для этого зайдите в контекстное менюформулы (щелкнув на ней правой кнопкой мыши), где в списке View Equality As (Видеть равенство как) переставьте флажок со строки Bold Equal (Жирное равно) на строку Equal (Равно). Те же изменения, но для всего документа, вы можете произвести науже знакомой вкладке Display (Отображение) окна Worksheet options (Параметры документа) меню Tools (Инструменты).2.5.6.
Символьные операторыСимвольные операторы служат для выполнения целого ряда аналитических преобразований, таких как упрощение выражений, разложение на множители, замена переменных и многих других. Расположены они на панели Symbolic (Символьные), и по количеству их гораздо больше, чем операторов любых других типов, — 21. Применениесимвольных операторов подробно рассматривалось в предыдущем разделе, так что сейчас останавливаться на этом вопросе мы не будем.2.5.7. Операторы программированияОдна из важнейших возможностей системы Mathcad — программирование — реализуется благодаря наличию специальных операторов, расположенных на панелиProgramming (Программирование). В этой книге мы будем очень активно использовать язык программирования Mathcad, самостоятельно реализуя очень многие из используемых программой численных методов и решая другие нетривиальные проблемы.
Пока же, чтобы у вас сложилось впечатление о том, как выглядят программыв Mathcad, приведем реализацию функции, выполняющей скалярное умножение векторов.Пример 2.31. Создание функции скалярного произведениявекторовscalar(vl,v2) := S<-0if last(vl) Ф Iast(v2)return "length of vl must be equal length of v2"breakfor i e 0.. last(vl)A:=B:=C:=s <— vl.-v2.S+ sscalar(A,B) =44AB = 44scalar(A,Q = "length ofvl must be equal length ofv2"2.5. Операторы *912.5.8.
Создание оператора пользователяАналогично заданию функций пользователя, в Mathcad имеется возможность создания и собственных операторов. Для этого используются специальные заготовки панели Evaluation (Выражение).В Mathcad существуют операторы двух типов: унарные и бинарные. Действие унарныхзависит от одной переменной, и к ним относятся, например, оператор квадратного корня или модуля числа. Бинарный оператор определяется в общем случае функцией двухпеременных.Чтобы создать собственный унарный оператор, выполните следующую последовательность действий.1. Задайте имя будущего оператора. Сделать это можно по тем же правилам, что и приопределении функции. Однако учитывая то, что в математике операторы принятообозначать специальными символами, лучше для этого использовать подходящийзначок, нежели слово.
Некоторые специальные символы можно ввести и с клавиатуры, правда, в большинстве случаев для этого придется применять довольно тонкие технические ходы (что связано с тем, что в формульном режиме сочетание клавиш, соответствующее, например, символу $, вводит оператор ранжированнойсуммы), которые были рассмотрены в подразд.
2.2.3. Однако таким образом можнозадать лишь несколько нематематических символов. В том случае, если вам нужноопределить оператор в виде, например, символа суммы, можно попробовать перейти в текстовом режиме на шрифт Symbol (Символ). Однако можно поступить и проще. Чтобы ввести в документ некоторый редкий математический значок, нужнообратиться к разделу QuickSheets (Шпаргалки) Ресурсов Mathcad. Здесь в спискеследует задействовать ссылку Extra Math Symbols (Дополнительные математическиесимволы). При этом откроется таблица, содержащая 55 символов, применяющихсядля обозначения различных операций в математике. Скопировав нужный значок,вставьте его в документ.2. Откройте скобки и пропишите переменную, преобразованием которой определяется действие оператора.
Создадим, например, оператор пересчета угла в радианах(а именно в таком форме работает по умолчанию с углами Mathcad) в градусы. Дляобозначения задаваемого оператора используем символ в виде острого угла рассмотренной выше таблицы Extra Math Symbols (Дополнительные математическиесимволы):Z(x)3. Далее введите оператор присваивания и пропишите то математическое действие,которое должен выполнять создаваемый оператор. В нашем случае выражение функции, описывающей оператор:Z(x):=--180п4. Описанные выше действия привели к заданию функции пользователя, пересчитывающей радианы в градусы, но ни в коей мере не оператора.
Чтобы создать непосредственно оператор, введите специальную заготовку в виде двух черных маркеров, расположенную на панели Evaluation (Выражение):92*Глава 2. Вычисления и типы данныхЗаготовка эта имеет два типа, отличающиеся взаимным расположением оператораи переменной. Первый тин, Prefix Operator (Оператор-приставка), «fx», требует введения имени описывающей оператор функции на первом месте. Второй тип, PostfixOperator (Оператор-суффикс), требует обратной последовательности задания элементов (рис. 2.11).!tf ix Operator |Рис.
2.11. Задание унарного оператораЗадание бинарного оператора ничем принципиально не отличается от определенияунарного. Рассмотрим его на примере определения оператора, вычисляющего длинугипотенузы прямоугольного треугольника по длине катетов.1. Сначала нужно задать функцию двух переменных, описывающую действие создаваемого оператора. Ее имя, аналогично созданию унарного оператора, лучше обозначить специальным символом. В нашем случае:v(x,y) :=\2. Далее следует ввести одну из двух возможных форм заготовки бинарного оператора пользователя. Первая форма, Infix Operator, продолжает идею унарных заготовоки содержит три маркера:• ••В первый вводится величина переменной х, во второй — имя описывающей оператор функции, в третий — значение переменной у.Вторая форма бинарной заготовки, Tree Operator, более необычна и служит для представления оператора в форме графа:ЛПри такой форме определения оператора имя функции вводится в вершину графа,величины переменных — в маркеры ветвей.Пример 2.32.
Создание бинарного оператораV(x,y) :=V3 V 2 = 3.6063=3.60622.6. Управление вычислениями *932.6. Управление вычислениямиВ том случае, если вы когда-нибудь писали на каком-либо языке программирования,вы, наверное, привыкли к тому, что редактирование текста программы и ее выполнение разнесены во времени. В Mathcad же по умолчанию и редактирование, и выполнение алгоритма происходят одновременно (слово алгоритм вполне приемлемо дляхарактеристики расчетов в Mathcad, поскольку пусть и в не совсем традиционной,предназначенной для восприятия не программистами, а математиками, форме Mathcadявляется очень серьезной системой программирования). Это не всегда удобно, поэтому порой приходится использовать возможность непосредственного управленияпользователем ходом вычислений. О том, как это делается, мы и поговорим в данномразделе.2.6.1.
Режимы вычисленийВ Mathcad существует два режима вычислений: автоматический и ручной. В вышеприведенных примерах предполагалось, что включен определенный по умолчанию автоматический режим. В большинстве случаев использование его более оправдано, так какпри этом результаты вычислений появляются в режиме реального времени, что позволяет производить корректировки и находить ошибки непосредственно при созданииалгоритма решения задачи. Однако иногда автоматический режим может быть весьманеудобен.
Проблемы могут возникать в связи с тем, что любое изменение в предшествующих условиях приводит к пересчету последующих выражений документа. Этообстоятельство, конечно, не играет никакой роли, если решаемая вами задача не слишком сложна в вычислительном плане — в этом случае пересчет займет неуловимыедоли секунды. Однако если вы используете численные алгоритмы, требующие значительного числа операций (например, кратного интегрирования или решения жесткойсистемы дифференциальных уравнений), то время расчета может быть заметным дажена мощном современном компьютере. Естественно, что в этом случае ждать после замены одной буквы или числа при редактировании, пока просчитается весь документ,совершенно неэффективно. Поэтому стоит перейти в ручной режим (manual mode)выполнения расчетов.
Чтобы это сделать, в подменю Calculate (Вычислить) меню Tools(Инструменты) снимите флажок Automatic Calculation (Автоматические вычисления).При работе в ручном режиме, при задании выражений, вместо ответов после операторов вывода будут отображаться черные маркеры. Чтобы произвести расчет, системенужно дать соответствующую команду.
Однако сделать это можно по-разному.• Чтобы пересчитать все формулы документа, используйте команду Calculate Worksheet (Подсчитать документ) подменю Calculate меню Tools.• Зачастую на одном документе располагается несколько не связанных напрямуювычислительных алгоритмов.
При этом, естественно, совершенно нецелесообразнопересчитывать их все, если внесенные изменения коснулись лишь одного. В подобной ситуации вместо команды Calculate Worksheet лучше использовать командуCalculate Now (Подсчитать). Данная команда пересчитывает формулы только видимой части документа. Регулировать ее работу можно, изменяя формат листа. Кстати,задействовать команду Calculate Now можно и не обращаясь к соответствующемуменю. Для этого следует либо нажать клавишу F9 на клавиатуре, либо использоватьспециальную кнопку панели Standard (Стандартные) (рис. 2.12).94•Глава 2. Вычисления и типы данныхРис. 2.12. Кнопка Calculate на панели StandardРежим вычислений определяется независимо для каждого документа, поэтому принеобходимости можно просто разнести малосовместимые в технике подсчета алгоритмы на разные листы.2.6.2.