Меню

Эта функция допускает переменное число аргументов mathcad ошибка

3 / 3 / 0

Регистрация: 07.12.2017

Сообщений: 567

1

Исправить ошибки

14.12.2020, 13:32. Показов 1148. Ответов 1


Ошибки: Эта переменная неопределённа; Здесь необходимо указать имя; Эта функция допускает переменное число аргументов, поэтому не может передаваться как аргумент.
У меня не получается вывести график из-за этих ошибок (возможно из-за них).

Миниатюры

Исправить ошибки
 

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Эксперт по математике/физике

8336 / 6081 / 3224

Регистрация: 14.01.2014

Сообщений: 13,846

14.12.2020, 14:10

2

А как по-Вашему можно найти максимум функции трёх переменных, если ничего неизвестно про третью переменную? Тогда уберите её из аргументов функции f. А при задании графика ошибка подсвечивается красным цветом потому что слева по вертикали х2, а по горизонтали х2!

Добавлено через 6 минут
Индексы у функции должны быть литерными через точку, а не матричными!



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

14.12.2020, 14:10

2

Вычисления

Эта глава посвящена основам вычислений в Mathcad. Она содержит
все необходимые сведения о применении переменных и функций, операторов Присваивания,
численного вывода и символьного вывода (см. разд. 3.1), а также других операторов
(см. разд. 3.2). В заключение описываются основные средства управления процессом
вычислений в Mathcad (см. разд. 3.3) и уверится несколько слов о том, каким
образом происходит выдача сообщений об ошибках при вычислениях (см. разд. 3.4).

3.1. Переменные и функции

Основные инструменты математика — это операции с переменными
величинами и функциями. В Mathcad переменные, операторы и функции реализованы
в интуитивной форме, т. е. выражения в редакторе вводятся и вычисляются так,
как они были бы написаны на листе бумаги. Порядок вычислений в документе Mathcad
также очевиден: математические выражения и действия воспринимаются процессором
слева направо и сверху вниз.

Перечислим основные действия, которые пользователь может совершать для определения
и вывода переменных и функций.

3.1.1. Определение переменных

Чтобы определить переменную, достаточно ввести ее имя и присвоить ей неко-topoe значение, для чего служит оператор присваивания (см. следующий раздел).

3.1.2. Присваивание переменным значений

Чтобы присвоить переменной новое значение, например переменную х сделать равной 10:

  • Введите в желаемом месте документа имя переменной, например
    х.
  • Введите оператор присваивания с помощью клавиши <:>
    или нажатием соответствующей кнопки Definition (Присваивание) на панели инструментов
    Calculator или Evaluation (Выражения), как показано на рис. 3.1.
  • Введите в появившийся местозаполнитель новое значение переменной
    (10).

Рис. 3.1. Результат ввода оператора присваивания

Результат перечисленных действий показан в листинге 3.1.

Кнопка оператора присваивания для удобства помещена сразу на две панели Calculator
(Калькулятор) и Evaluation (Выражения).

Листинг 3.1. Присваивание переменной численного значения

Ввести новое значение переменной возможно как в виде числа, так и в виде математического выражения, содержащего другие переменные (листинг 3.2) и функции (см. следующие разделы), а также в виде строкового выражения (листинг 3.3.). В последнем случае будет создана переменная s не численного, а строкового типа.

Листинг 3.2. Присваивание переменной вычисленного значения выражения

Листинг 3.3. Присваивание переменной строкового значения

Если переменная с некоторым именем создается в данном документе впервые, то для ввода оператора присваивания, вместо двоеточия, допускается использовать символ равенства «=», который Mathcad автоматически заменит символом присваивания.

В некоторых случаях это невозможно, в частности, когда значение
присваивается переменной, имя которой зарезервировано Mathcad. Например, присвоить
значение переменной с именем N можно, лишь вводя двоеточие, т. к. по умолчанию
это имя обозначает в Mathcad размерность силы (Ньютон).

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

Не вполне соответствующий общепринятому математическому стилю вид оператора
присваивания (не =, а:==) является, на самом деле, компромиссом, связанным
с назначением Mathcad как системы программирования. Этот оператор показывает,
что он действует, в отличие от других, не слева направо, а справа налево, поскольку
значение (справа) задается переменной (слева). И если непосвященного математика
внешний вид этого оператора может ввести в некоторое заблуждение, то пользователю
Mathcad он прямо говорит о действии, выполняемом в данном месте документа: значение
переменной не выводится на экран (о чем говорит знак =), а некоторое значение
присваивается (:=) данной переменной.

Для подготовки отчетов, тем не менее, может потребоваться изменить
отображение оператора присваивания с принятых по умолчанию символов «:=»
на символ равенства. Это делается для конкретного оператора присваивания с помощью
пункта View Definition As контекстного меню (рис. 3.2) либо для всего документа
с помощью команды Tools / Worksheet Options / Display)(Сервис / Опции документа
/ Отображение) (см. разд. «Управление отображением некоторых операторов»гл.
2).

Рис. 3.2. Различное отображение оператора присваивания

Помимо разобранного оператора присваивания (а он применяется наиболее часто), существует также возможность глобального присваивания.

3.1.3. Функции

Функции в Mathcad записываются в обычной для математика форме:

  • f (х, …) — функция;
    • f — имя функции;
    • х,… — список переменных.

Легче всего ввести написание функции в документ при помощи клавиатуры.

В Mathcad формально можно разделить функции на два типа:

  • встроенные функции;
  • функции, определенные пользователем.

Применение функций обоих типов в расчетах совершенно одинаково, с тем исключением, что любую встроенную функцию можно сразу использовать в любом месте документа (о вставке встроенных функций в документ читайте в разд. «Знакомство с Mathcad» гл. 1), а пользовательскую функцию необходимо предварительно определить в документе до момента вычисления ее значения.

3.1.4. Определение функции пользователя

Для того чтобы определить функцию пользователя, например f(x,y) = x2-cos (x+y):

  • Введите в желаемом месте документа имя функции (f).
  • Введите левую скобку «(«, имена переменных через
    запятую х, у и правую скобку «)». При вводе левой скобки и запятой
    автоматически будут появляться соответствующие местозаполнители.
  • Введите оператор присваивания с панели инструментов или нажатием
    клавиши <:>.
  • Введите в появившийся местозаполнитель выражение, определяющее
    функцию x 2 -cos(x+y), пользуясь клавиатурой или панелями инструментов.

Результат ввода иллюстрируется листингом 3.4.

Листинг 3.4. Определение функции пользователя

Все переменные, присутствующие справа в выражении определения
функции, либо должны входить в список аргументов функции (в скобках, слева после
имени функции), либо должны быть определены ранее. В противном случае будет
выведено сообщение об ошибке, причем имя неопределенной переменной будет выделено
красным цветом (рис. 3.3).

Рис. 3.3. Сообщение об ошибке («Эта переменная или функция
ранее не определена»)

3.1.5. Вывод значений переменных и функций

Чтобы вычислить в документе некоторое математическое выражение, которое может состоять из переменных, операторов и функций (встроенных и определенных пользователем):

  • Введите это выражение, например х у.
  • Нажмите клавишу <=>.

В результате справа от введенного знака равенства появится вычисленное значение выражения (листинг 3.5, предпоследняя строка). Нельзя изменять содержимое выражения справа от знака равенства, поскольку оно есть результат работы вычислительного процессора Mathcad, совершенно скрытой от глаз пользователя. Подчас (когда выражение содержит функции, реализующие разные численные методы, часто в сложных комбинациях) алгоритмы расчета бывают очень затейливыми и занимают существенное время. О том, что некоторое выражение документа находится в стадии вычисления, свидетельствует обрамляющая его зеленая рамка и невозможность предпринять какое-либо действие с программой Mathcad.

Листинг 3.5. Вычисление выражения.

Заметьте, что, перед тем как вычислить значение математического выражения,
Вы обязаны определить значение каждой входящей в него переменной (две первых
строки листинга 3.5). Вычисляемое выражение может содержать любое количество
переменных, операторов и функций. Вывод текущего значения той или иной переменной
приведен в последней строке листинга 3.5, а значения функции — в листингах 3.6
и 3.7.

Листинг 3.6. Вывод значения функции.

Листинг 3.7. Вывод значения функции (продолжение листинга 3.6)

При определении функций пользователя через различные переменные важную роль играет присутствие имен этих переменных в списке аргументов или определение их выше в тексте документа. Например, результаты вывода значения функции f (х,у) в листинге 3.6 остались бы точно такими же, если до или после определения функции присвоить переменным х и у некоторые значения. Так происходит потому, что значения аргумента заданы непосредственно в строке вычисления функции. Если же определить функцию f (х) так, как это сделано в листинге 3 8, то она будет зависеть от значения переменной у в момент определения f (х) (т. е. у=5), поскольку у не входит в список аргументов f (х). Фактически f (x) =x 2 -cos (х+5). Даже если где-нибудь ниже в программе пользователь переопределит значение у, Mathcad все равно будет помнить функцию f (х) как выражение x2-cos (х+5) (листинг 3.9).

Листинг 3.8. К определению функций пользователя

Листинг 3.9. К определению функций пользователя (продолжение листинга 3.8)

Внимательнее относитесь к обязательному требованию совпадения количества аргументов
при определении и выводе значения функций. Сравните, например, листинги 3.6
и 3.8, в которых, несмотря на одинаковое выражение в правой части определения
функции f, создаются две существенно разные функции f (х, у) и f (х), соответственно

Вводя знак равенства для вычисления математических выражений в Math-cad, Вы фактически применяете оператор вычисления или численного вывода (numerical evaluation). Его можно ввести также нажатием кнопки со знаком равенства на одной из панелей инструментов: Calculator (Калькулятор) или Evaluation (Выражения) (см. рис. 3.1). Оператор численного вывода означает, что все вычисления проводятся с числами, а различные встроенные алгоритмы реализуются соответствующими численными методами.

3.1.6. Символьный вывод

Наряду с численным выводом, в Mathcad имеется возможность символьного, или аналитического, вычисления значения выражения. Для символьных вычислений имеется ряд специальных средств, которые будут детально рассмотрены позднее (см. гл. 5), самое простое из них — это оператор символьного вывода (symbolic evaluation). Он обозначается символом -» и в большинстве случаев применяется точно так же, как оператор численного вывода, однако внутреннее различие между действием этих двух операторов огромно. Если численный вывод — это в обычном смысле этого слова «запрограммированный» расчет по формулам и численным методам, скрытый от глаза пользователя, то символьный вывод — результат работы системы искусственного интеллекта, встроенной в Mathcad и называемой символьным процессором. Работа символьного процессора также невидима (и, чаще всего, даже трудно представима) пользователю и заключается в анализе самого текста математических выражений. Конечно, гораздо более узкий круг формул можно рассчитать символьно, хотя бы потому, что, вообще говоря, относительно не такая большая часть математических задач допускает аналитическое решение.

Чтобы попытаться вычислить символьно математическое выражение,
например В sin(arcsin(С Х)), где В,С,Х — некоторые переменные:

  • Введите это выражение: В sin(asin(С Х)).
  • Введите оператор символьного вывода сочетанием клавиш +<>,
    либо нажатием соответствующей кнопки (рис. 3.4) на панели Symbolic (Символика)
    или Evaluation (Выражения).

Рис. 3.4. Кнопка вставки оператора символьного вывода

После этого справа от символа оператора символьного вывода появится определенное аналитически значение выражения (листинг. 3.10) либо сообщение об ошибке «No answer found» (Ответ не найден). Если символьному процессору Mathcad не удается аналитически упростить выражение, то оно будет выдано справа от знака -» в том же виде, что и слева.

Листинг 3.10. Символьный вывод выражения

Листинг 3.11. Символьный вывод выражений, которое не удалось упростить

Присмотритесь внимательнее к листингам 3.10 и 3.11: для символьного вывода не требуется предварительно определять переменные, входящие в левую часть выражения! Если же переменным были все-таки присвоены ранее некоторые значения, символьный процессор просто подставит их в упрощенную формулу и выдаст результат с учетом этих значений (см. в качестве примера два следующих листинга — 3.12 и 3.13).

Точно так же, как рассчитываются численно значения функций, можно вычислять
их и с помощью символьного процессора. Сравните соответствующие результаты,
которые представлены в листинге 3.12 (конечно, символьный и численный ответы
равны: 9 cos(8)=-1.31). Аналогично можно «символьно выводить значения переменных.
Например, присвоить некоторой переменной значение функции или сложного выражения
(листинг 3.13, вторая строка) и затем вывести значение переменной в символьном
виде.

Листинг 3.12. Численный и символьный вывод значения функции

Листинг 3.13. ЧислвйныЙ и символьный вывод

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

3.1.7. Допустимые имена переменных и функций

В заключение перечислим, какие символы можно, а какие нельзя применять в именах, которые пользователь дает переменным и функциям, и перечислим ряд ограничений на присваивание имен. Допустимые символы:

  • большие и маленькие буквы — Mathcad различает регистр: так,
    имена х и х определяют разные переменные. Кроме того, Mathcad различает и
    шрифт, например имена х и х воспринимаются как разные;
  • числа от 0 до 9;
  • символ бесконечности (клавиши ++);
  • штрих (клавиши +);
  • греческие буквы — они вставляются с помощью панели Greek
    (Греческие символы);
  • символ подчеркивания;
  • символ процента;
  • нижний индекс.

С осторожностью используйте нижний индекс в определении имен
переменных и функций, не путая его с индексом векторной переменной. Чтобы ввести
имя с нижним индексом, например, K max: введите букву «K»,
затем точку «.», после чего линии ввода опустятся чуть ниже, и только
затем сам нижний индекс max.

Теперь рассмотрим ограничения на имена переменных и функций:

  • имя не может начинаться с цифры, символа подчеркивания, штриха
    или процента;
  • символ бесконечности должен быть только первым в имени;
  • все буквы в имени должны иметь один стиль и шрифт;
  • имена не могут совпадать с именами встроенных функций, констант
    и размерностей, например sin или TOL. Тем не менее, допускается их переопределение,
    но тогда одноименная встроенная функция больше не будет использоваться по
    первоначальному назначению;
  • Mathcad не различает имен переменных и функций: если сначала
    определить функцию f (х), а потом переменную f, то в оставшейся части документа
    будет утеря* доступ к функции f (x).

В некоторых случаях желательно использовать имена переменных и функций, содержащие символы операторов Mathcad или другие символы, которые нельзя вставлять в имена непосредственно. Для этого существуют две возможности.

Во-первых, имя, составленное из любых символов и заключенное в квадратные
скобки, Mathcad будет воспринимать корректно (рис. 3.5, сверху). Например, чтобы
ввести имя :

  • Нажмите клавиши ++ — появится
    пара квадратных скобок с местозаполнигелем внутри.
  • Введите в местозаполяитель последовательность любых символов,
    например a+b.

Рис. 3.5. Специальные символы в именах переменных

Во-вторых, если Вас не устраивает наличие квадратных скобок в
имени, то вставить в него специальные символы можно чуть более сложным способом.
Например, для ввода имени a+b:

  • Введите первый символ (а), который должен быть допустимым
    для имен Mathcad.
  • Нажмите клавиши ++ для
    перехода в специальный «текстовый» режим редактирования.
  • Введите последовательность любых символов (+).
  • Еще раз нажмите клавиши ++,
    чтобы вернуться в обычный режим редактирования. Теперь можно продолжать ввод
    допустимых символов в имя (b).

Результат этих действий показан в нижней строке рис. 3.5. Если требуется, чтобы имя начиналось со специального символа (средняя строка рис. 3.5), то необходимо выполнить все пункты 1-4, вводя в начале имени произвольный допустимый символ, а по завершении ввода просто стирая его.

3.2. Операторы

Каждый оператор в Mathcad обозначает некоторое математическое действие в виде символа. В полном согласии с терминологией, принятой в математике, ряд действий (например, сложение, деление, транспонирование матрицы и т. п.) реализован в Mathcad в виде встроенных операторов, а другие действия (например, sin, erf и т. п.) — в виде встроенных функций. Каждый оператор действует на одно или два числа (переменную или функцию), которые называют операндами. Если в момент вставки оператора одного или обоих операндов не хватает, то недостающие операнды будут отображены в виде местозаполнителей. Символ любого оператора в нужное место документа вводится одним из двух основных способов:

  • нажатием соответствующей клавиши (или сочетания клавиш) на
    клавиатуре;
  • нажатием указателем мыши соответствующей кнопки на одной
    из математических панелей инструментов.

Напомним, что большинство математических панелей содержат сгруппированные по смыслу математические операторы, а вызвать эти панели на экран можно нажатием соответствующей кнопки на панели Math (Математика).

Везде в этом разделе будем рассматривать только второй способ вставки оператора
Те же, кто предпочитает использовать клавиатуру, найдут перечень горячих клавиш
в приложении 2.

Выше мы рассмотрели особенности применения трех операторов: присваивания
(см. разд. 3.1.2), численного (см. разд. 3.1.5) и символьного вывода (см. разд.
3.1.6). Разберем в данном разделе действие прочих операторов Mathcad и возможности
определения операторов пользователя.

3.2.1. Арифметические операторы

Операторы, обозначающие основные арифметические действия, вводятся с панели Calculator (Калькулятор), показанной на рис. 3.6:

  • сложение и вычитание: + — (листинг 3.14);
  • умножение и деление: / + (листинг 3.15);
  • факториал: ! (листинг 3.16);
  • модуль числа: |х| (листинг 3.16);
  • квадратный корень: (листинг 3.17);
  • корень n-й степени: (листинг 3.17);
  • возведение х в степень у: х y (листинг 3.17);
  • изменение приоритета: скобки (листинг 3.18);
  • численный вывод: = (все листинги).

Рис. 3.6. Панель Calculator

Листинг 3.14. Операторы сложения, вычитания и отрицания

Листинг 3.15. Операторы деления и умножения

Листинг 3.16. 0ператор факториала и модуля

Листинг 3.17. Операторы извлечения корня и возведения в степень

Листинг 3.18. Оператор изменения приоритета ()

Как видно, с помощью этой панели можно ввести не только перечисленные операторы, но и их часто используемые комбинации, например, возведение экспоненты в степень, смешанное произведение и деление, а также мнимую единицу и число я. Заметим, что допускается запись оператора деления как в одну, так и в две строки, что обеспечивается наличием двух соответствующих кнопок на панели Calculator.

Напомним, что в редакторе Mathcad можно выбирать отображение оператора умножения (см. разд. «Управление отображением некоторых операторов» гл. 2). Для того чтобы поменять его:

  • Щелкните правой кнопкой мыши на выражении, содержащем оператор
    умножения.
  • Выберите первый пункт появившегося контекстного меню View
    Multiplication As (Представление умножения).
  • В подменю выберите пункт, соответствующий стилю представления
    умножения: в виде обычной точки (Dot), точки с уменьшенным расстоянием от
    него до сомножителей (Narrow Dot), толстой точки (Large Dot), крестика (X),
    без символа с небольшим расстоянием между сомножителями (Thin Space), вообще
    вместе (No Space). Чтобы просмотреть, как будет выглядеть выражение в двух
    последних представлениях, нужно снять с него выделение. Чтобы вернуть представление
    по умолчанию, выберите в подменю контекстного меню пункт Default.

Некоторых операторов, например таких, как оператор комплексного сопряжения, на панелях инструментов нет (листинг 3.19). Его приходится вводить исключительно с клавиатуры нажатием клавиши <«> в пределах математической области.

Листинг 3.19. Оператор комплексного сопряжения

3.2.2. Вычислительные операторы

Вычислительные операторы вставляются в документы при помощи панели инструментов Calculus (Вычисления). При нажатии любой из кнопок в документе появляется символ соответствующего математического действия, снабженный несколькими местозаполнителями. Количество и расположение местозаполнителей определяется типом оператора и в точности соответствует их общепринятой математической записи. Например, при вставке оператора суммы (рис. 3.7) необходимо задать четыре величины: переменную, по которой надо произвести суммирование, нижний и верхний пределы, а также само выражение, которое будет стоять под знаком суммы (пример заполненного оператора суммы см. ниже в листинге 3.22).

Для того чтобы вычислить неопределенный интеграл, следует заполнить
два местозаполнителя: подынтегрального выражения и переменной интегрирования.

Рис. 3.7. Вставка оператора суммирования

После ввода какого-либо вычислительного оператора имеется возможность вычислить его значение либо численно, нажатием клавиши <=>, либо символьно, с помощью оператора символьного вывода.

Перечислим основные вычислительные операторы и приведем простейшие примеры их применения:

  • дифференцирование и интегрирование;
    • производная (листинг 3.20);
    • N-Я производная (листинг 3.20);
    • определенный интеграл (листинг 3.21);
    • неопределенный интеграл (листинг 3.21).
  • суммирование и вычисление произведения;
    • сумма (листинг 3.22);
    • произведение (листинг 3.22);
    • сумма ранжированной переменной (листинг 3.23);
    • произведение ранжированной переменной (листинг 3.23).
  • пределы (листинг 3.24);
    • двусторонний;
    • левый;
    • правый.

Листинг 3.20. Операторы вычисления производных

Листинг 3.21. Операторы интегрирования

Листинг 3.22. Операторы суммирования и вычисления произведения

Листинг 3.23. Операторы суммировани и вычисления произведения

О назначении и особенностях использования ранжированных переменных будет рассказано
в следующей главе (см. разд. «Ранжированные переменные» гл. 4).

Листинг З.24. Операторы символьного вычисления пределов

В отличие от других, операторы поиска предела могут быть вычислены только
символьно (см. гл. 5).

Операторы суммирования и вычисления произведения фактически являются
более удобной записью операторов + и х с большим количеством операндов. А вот
вычислительные операторы поиска производных и интегралов существенно отличаются
от операторов умножения и сложения тем, что реализованы на основе определенных
численных методов, которые в скрытой (невидимой для пользователя) форме запускаются
вычислительным процессором Mathcad. При численном расчете интегралов и производных
необходимо, хотя бы в общих чертах, представлять принцип работы соответствующих
алгоритмов, чтобы избежать ошибок и неожиданностей при получении результатов
(численным методам интегрирования и дифференцирования посвящена гл. 7).

Рис. 3.8. Поиск бесконечного ряда

Важно отметить, что имеется возможность вычислять интегралы с
одним или обоими бесконечными пределами, а также в символьной форме искать значения
бесконечных пределов, сумм (рядов) и произведений. Для удобства ввода кнопка
с символом бесконечности помещена на ту же панель инструментов Calculus (Вычисления).
Пример вставки символа бесконечности в задаче поиска бесконечного ряда приведен
на рис. 3.8.

3.2.3. Логические операторы

Результатом действия логических, или булевых, операторов являются только числа 0 (если логическое выражение, записанное с их помощью, истинно) или 1 (если логическое выражение ложно). Чтобы вычислить значение логического выражения, например 1=1 (рис. 3.9):

  • Вставьте с панели Boolean (Булевы операторы) соответствующий
    оператор =.
  • В появившиеся местозаполнители вставьте операнды (две единицы).
  • Нажмите клавишу <=>, чтобы получить ответ.

Рис. 3.9. Вставка логического оператора

Получается абсурдное на первый взгляд выражение i«i=i. Однако на самом деле все правильно. Справа от оператора вывода записано логическое выражение 1*1 (обратите внимание, что логический знак равенства выглядит по-другому, нежели обычный), которое является истинным. Поэтому значение данного выражения равно 1, что и показано справа от знака равенства.

Перечислим логические операторы:

  • больше (Greater Than);
  • меньше (Less Than);
  • больше или равно (Greater Than or Equal);
  • меньше или равно (Less Than or Equal);
  • равно (Equal);
  • не равно (Not Equal to);
  • и (And);
  • или (Or);
  • исключающее или (Exclusive or);
  • отрицание (Not).

Операнды в логических выражениях могут быть любыми числами. Однако
если оператор по смыслу применим только к 0 и 1, то любое неравное нулю число
по умолчанию принимается равным 1. Но в результате все равно может получиться
либо 0, либо 1. Например, ¬ (-0.33)=0.

Примеры действия логических операторов приведены в листингах 3.25 и 3.26.

Листинг 3.25. Операторы сравнения.

Листинг 3.26. Булевы операторы.

Логические операторы чрезвычайно важны при записи подлежащих решению алгебраических уравнений и неравенств в приемлемой для Mathcad форме.

3.2.4. Матричные операторы

Матричные операторы предназначены для совершения различных действий над векторами и матрицами. Поскольку большинство из них реализует численные алгоритмы, о них будет подробно рассказано в части III (см. гл. 9).

3.2.5. Операторы выражения

Почти все вычислительные операторы были рассмотрены выше (см. разд. 3.1). Они сгруппированы на панели Evaluation (Выражения).

  • Оценить численно (Evaluate Numerically) (см. разд. 3.1.5)
  • Вычислить символьно (Evaluate Symbolically) (см. разд. 3.1.6)
  • Присваивание (Definition) (см. разд. 3.1.2)
  • Глобальное присваивание (Global Definition)

Рассмотрим различие между операторами обычного присваивания и глобального
присваивания (процесс его вставки в документ показан на рис. 3.10). Для того
чтобы вычислить выражение, содержащее некоторую переменную или функцию, необходимо,
чтобы этой переменной ранее в документе было присвоено какое-либо значение.
Иначе будет выдаваться сообщение об ошибке (рис. 3.11). Однако если в любой
части документа (например в самом низу) вставить оператор глобального присваивания,
то переменная будет определена в любой части документа (листинг 3.27).

Листинг 3.27. Действие операторов присваивания и глобального присваивания

Рис. 3.10. Кнопка глобального присваивания на панели Evaluation

Рис. 3.11. Обычное присваивание сказывается только на нижеследующей
части документа

Как видно из листинга 3.27, обычное, или локальное, присваивание
переменной х действует от момента х:=10 до момента глобального присваивания
х = 5. Вообще говоря, Mathcad анализирует документы на предмет присваивания
переменных в два прохода: сначала распознаются все операторы глобального присваивания,
и все выражения в документе сверху вниз и слева направо вычисляются в соответствии
с ними, а при втором проходе в том же порядке анализируются операторы локального
присваивания, и все выражения вычисляются с поправкой на них. Приведем важный
пример взаимодействия глобального и локального присваивания (листинг 3.28).

Листинг 3.28. Взаимодействие глобального и локального присваивания

Обратите внимание, что, несмотря на локальное присваивание переменной
x:=10 в третьей строке листинга, значение переменной у вычисляется все-таки
в соответствии с глобальным значением х = 5, поскольку сама переменная y глобальным
образом определена через переменную х.

Аккуратнее относитесь к определению глобальных переменных и, во избежание
путаницы, старайтесь не переопределять их локально. Применяйте глобальное присваивание
только для определения констант и, по возможности, избегайте случаев, когда
оператор вывода предшествует оператору глобального присваивания для улучшения
читаемости документов.

Точно так же как Вы глобально присваиваете значение переменной, допускается глобально определять функции (листинг 3.29).

Листинг 3.29. Глобальное определение функции пользователя

Оператор глобального присваивания можно отображать не только в виде тождественного
равенства, но и как обычный знак равенства. Для этого вызовите на операторе
контекстное меню и в подменю пункта View Definition As выберите пункт Equal
(Равенство).

3.2.6. Создание оператора пользователя

Запросы взыскательного пользователя могут отнюдь не исчерпываться набором
встроенных операторов Mathcad. Для вставки в документы заранее созданных операторов
пользователя применяется панель Evaluation (Выражения).

Выбор имени оператора

Оператор пользователя может иметь абсолютно любое имя (см. ранее раздел «Имена, содержащие операторы и специальные символы» этой главы). Однако, исходя из смысла операторов, логично давать им имена в виде символов. Это удобно делать с помощью коллекции символов, находящейся в справочной информации Mathcad. Выберите в верхнем меню Help / QuickSheets (Справка / Быстрые шпаргалки) и войдите затем в самый последний раздел Extra Math Symbols (Дополнительные символы) открывшегося содержания Шпаргалок. Там Вы увидите целую коллекцию символов, любой из которых можно просто перетащить указателем мыши в нужное место документа.

Присваивать оператору некоторое действие следует точно так же, как функции пользователя.

Создание бинарного оператора

Чтобы создать бинарный оператор, например реализующий действие х у 2:

  • Введите имя оператора, например, bin.
  • Наберите знак скобки <(>, затем список из двух операндов
    через запятую, <х>, <,>, <у>, затем закрывающую скобку <)>.
  • Введите оператор присваивания <: >.
  • Введите выражение, зависящее от операндов, действие которого
    необходимо присвоить оператору (х-у 2).

Создание унарного оператора

Унарный оператор создается точно так же, только вместо двух операндов, отделенных запятой, Вам следует ввести лишь один операнд. Например, чтобы создать оператор с именем %, реализующий перевод доли числа в проценты и сводящийся к умножению его на 100 (листинг 3.30):

  • Введите имя оператора. Для этого нажмите клавиши <а>,
    + ++,<%>, затем снова ++,
    потом сотрите в имени букву «а».
  • После знака % наберите скобку «(«, далее «х11,
    затем еще одну скобку «)».
  • <:>.
  • Введите выражение х100.

Листинг 3.30. Создание унарного оператора пользователя

Использование бинарного оператора

Возможны два вида вставки пользовательского бинарного оператора в документ, отличающиеся только отображением в документе. Чтобы вставить оператор в форме графа (или дерева):

  • Нажмите кнопку Tree Operator (Оператор дерево) на панели
    Evaluation (Выражения) (рис. 3.12, справа).
  • В появившиеся местозаполнители введите имя оператора (на
    вершине графа) и значения операндов (в ответвления дерева).
  • Введите оператор присваивания, нажав клавишу <=>.

Результат действия оператора показан на рис. 3.12, внизу слева.

Кроме древовидной формы оператора, допускается использование его
в виде последовательности «операнд- имя оператора- другой операнд»
(рис. 3.12, вторая строка слева). Чтобы ввести такую форму оператора, следует
нажать соседнюю кнопку Infix Operator (Оператор внутри) с изображением xfy.

Рис. 3.12. Применение пользовательского бинарного оператора

Использование унарного оператора

Вставка унарного оператора совершенно аналогична, только вместо
двух операндов требуется ввести один (рис. 3.13). Унарный оператор вставляется
нажатием кнопки Prefix Operator (Оператор перед) на панели Evaluation (Выражения)
либо кнопки Postfix Operator (Оператор после). Первый путь проиллюстрирован
правой частью рис. 3.13 (в момент вставки) и результатом действия оператора
(слева), а результат вставки оператора по второму пути — левой нижней строкой
того же рисунка

Рис. 3.13. Применение пользовательского унарного оператора

3.3. Управление вычислениями

Документ Mathcad — это в полном смысле этого слова компьютерная
программа, а сама система Mathcad — настоящая система программирования, правда
ориентированная на математика, а не на профессионального программиста. Большинство
других сред программирования (знакомых читателю по реализации таких языков,
как Си, Фортран, Бейсик и т. п.) разделяют редактирование кода программ и их
выполнение, которое можно вызвать предназначенными для этого командами. В Mathcad
и код программы, и результат их выполнения объединены в одном документе. Тем
не менее, функции редактирования формул и их расчеты выполняются раздельно,
и пользователь имеет возможность управлять всеми важнейшими опциями вычислений.

3.3.1. Режимы вычислений

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

  • автоматический режим (automatic mode) — все вычисления проводятся
    автоматически по мере ввода формул;
  • ручной режим (manual mode) — начало вычислений каждой формулы
    или всего документа производится пользователем.

Режим вычислений можно выбрать с помощью команды Tools / Calculate / Automatic Calculation (Сервис / Пересчитать / Считать автоматически), как показано на рис. 3.14. Если в этой строке меню установлен флажок проверки, значит, включен автоматический режим, если флажка нет, то редактируется документ в ручном режиме вычислений. Чтобы сменить режим, просто выберите этот пункт меню (например, нажав кнопку мыши в ситуации, показанной на рис 3.14, включите ручной режим).

Режим вычислений устанавливается независимо для каждого документа Одновременно
могут быть открыты несколько документов, вычисляемых в различных режимах

Преимущества и недостатки каждого режима очевидны. С одной стороны, автоматические
вычисления упрощают работу с документом, поскольку результаты расчетов появляются
в реальном времени, и пользователь имеет возможность анализировать их сразу.
С другой стороны, если вычисления сложные, то они могут отнимать много времени
(что особенно заметно на компьютерах с не слишком мощным процессором и небольшим
объемом оперативной памяти). Поэтому зачастую, чтобы продолжить редактирование
документа, требуется довольно длительное ожидание завершения расчетов В частности,
если поменять какое-либо выражение в начале большого документа, которое влияет
на последующие вычисления, то все они пересчитываются заново. В таких случаях
часто удобнее редактировать текст в ручном режиме, а вычисления включать по
мере необходимости.

Рис. 3.14. Выбор режима вычислений

3.3.2. Прерывание вычислений

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

Чтобы прервать затянувшийся процесс вычислений, нажмите клавишу
Появится диалоговое окно, показанное на рис. 3.16, в котором нужно
подтвердить прерывание вычислений (ОК). В этом случае выражения, которые Mathcad
не успел вычислить, будут помечены в документы красным цветом. Прерванные вычисления
возобновляются нажатием клавиши или командой Tools / Calculate /
Calculate Now (Математика / Пересчитать / Пересчитать)

Рис. 3.15. Процесс вычисления выражения

Рис. 3.16. Диалоговое окно прерывания вычислений

3.3.3. Вычисления в ручном режиме

Если флажок в строке команды Tools / Calculate / Automatic Calculation
(Сервис / Пересчитать / Считать автоматически) снят, пользователь должен запускать
вычисления самостоятельно

  • Для того чтобы вычислить все формулы во всем документе, выполните
    команду Tools / Calculate / Calculate Worksheet (Математика / Пересчитать
    / Пересчитать все).
  • Для вычисления всех формул в видимой части документа выберите
    пункт Tools / Calculate / Calculate Now (Сервис / Пересчитать / Пересчитать)
    либо нажмите клавишу , либо щелкните на кнопке с изображением знака
    равенства (Calculate) на стандартной панели инструментов
  • Прервать вычисления можно обычным образом, нажав клавишу
    .

Управлять размером видимой части документа можно при помощи изменения масштаба
отображения документа

При редактировании текста в ручном режиме не выполняются ни вычисления,
ни построение графиков, а соответствующие места в выражениях формально отмечаются
местозаполнителями (рис. 3.17.)

Рис. 3.17. Чтобы запустить вычисления в ручном режиме,
нажмите кнопку Calculate

3.3.4. Отключение вычисления отдельных формул

Mathcad позволяет отключить вычисление какой-либо формулы. При этом она не будет влиять на последующие вычисления. Чтобы не вычислять определенную формулу в документе:

  • Щелкните правой кнопкой мыши на формуле.
  • Выберите в контекстном меню пункт Disable Evaluations (Выключить
    вычисления), как показано на рис. 3.18.

Эквивалентный способ выключения вычисления отдельной формулы заключается в вызове диалогового окна Properties (Свойства) через одноименный пункт контекстного меню (см. рис. 3.18) или главного меню Format (Формат). В диалоге Properties следует перейти на вкладку Calculation (Вычисления) и установить там флажок Disable Evaluations (Выключить вычисления).

Результат выключения формулы из процесса вычислений проиллюстрирован листингом 3.31. На нем выключен второй из операторов присваивания, о чем можно судить по наличию черного квадрата сразу за формулой. Соответственно, в последней строке выведенное значение переменной х «не чувствует» выключенного присваивания и остается равным 3.

Листинг 3.31. Вычисление второго оператора присваивания выключено

Рис. 3.18. Отключение вычисления формулы с помощью контекстного
меню

3.3.5. Оптимизация вычислений

Отличительная черта новых версий Mathcad — улучшенные возможности
ускорения численных вычислений за счет применения элементов символьной математики.
Непосредственно перед численным расчетом Mathcad автематически пытается упростить
выражение, используя символьный процессор. Это называется оптимизацией. За счет
того что от версии к версии качество работы символьного процессора улучшается,
символьное преобразование зачастую существенно ускоряет расчеты. Режим оптимизации
включается либо в документе целиком, либо для отдельных формул.

Чтобы включить или отключить режим оптимизации всех выражений в активном документе, выберите команду Tools / Optimize / Worksheet (Сервис / Оптимизация / Документ), как показано на рис. 3.19. Содержание документа, изображенного на этом же рисунке, помогает понять математический смысл режима оптимизации: для ускорения вычисления нижнего (определенного) интеграла выгодно использовать его аналитическое решение, определенное символьным процессором.

Чтобы изменить режим оптимизации для отдельной формулы, не меняя
выбранного режима для остальных выражений документа, выделите эту формулу линиями
ввода и выберите в верхнем меню Tools / Optimize / Equation (Сервис / Оптимизация
/ Уравнение).

Рис. 3.19. Режим оптимизации вычислений

3.3.6. Диалоговое окно Worksheet Options

Наравне с изложенными способами установки режимов вычислений,
их также удобно устанавливать для всего документа на вкладке Calculations (Вычисления)
диалогового окна Worksheet Options (Опции документа), вызываемого с помощью
команды Tools / Worksheet Options (Сервис / Опции документа). Три флажка задают
включение соответствующего режима вычислений (рис. 3.20).

  • Recalculate automatically (Пересчитать автоматически) — включение
    режима автоматических вычислений.
  • Use strict singularity checking for matrices (Использовать
    проверку матриц на сингулярность) — опция, появившаяся в версии Mathcad 2001,
    которая важна при некоторых операциях с матрицами. Она означает проведение
    дополнительной проверки на сингулярность матрицы перед использованием численных
    алгоритмов, что позволяет, во избежание неправильного применения численного
    метода, выдать заранее сообщение об ошибке, если матрица сингулярная.
  • Optimize expressions before calculating (Оптимизировать выражения
    перед вычислением) — включение режима оптимизации.
  • Use exact equality for Boolean comparisons (Использовать
    точное равенство для логического сравнения) — когда флажок выбран, применяется
    жесткий критерий точного равенства чисел (точнее, числа при сравнении считаются
    равными, если отличаются по модулю менее чем на 10 -307). Если флажок
    снят, используется более мягкий критерий (относительное различие чисел по
    модулю менее чем на 10 -12).

Рис. 3.20. Управление режимом вычислений в диалоговом
окне Worksheet Options

Помимо флажков проверки, имеется также пара переключателей, которая
позволяет реализовать новый режим ускоренных вычислений (higher speed calculation).
Он включается выбором переключателя Higher speed calculation (Ускоренные вычисления),
изображенного на рис. 3.20. Чтобы отключить режим ускоренных вычислений, выберите
переключатель Backward compatibility (Обратная совместимость). В этом случае
вычисления будут проводиться без дополнительной оптимизации по скорости, в точности
так же, как в предыдущих версиях (Matvcsd 2000 и ниже) Необходимость таких расчетов
может возникнуть, если вдруг Вы столкнулись с сообщениями об ошибках в документах,
созданных в предыдущих версиях Mathcad и корректно в них работающих.

3.4. Сообщения об ошибках

Когда процессор Mathcad по тем или иным причинам не может вычислить
выражение, он вместо ответа выдает сообщение об ошибке (рис. 3.21). Если курсор
находится вне формулы с ошибкой, то в ней имя функции или переменной, которая
вызвала ошибку, отмечается красным цветом (сверху на рис. 3.21). При щелчке
на такой формуле под ней появляется текстовое сообщение о типе ошибки, обрамленное
черным прямоугольником (рис. 3.21, снизу).

Рис. 3.21. Сообщение об ошибке

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

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

MathCad 7.0 Professional – универсальный инструмент для работы с формулами, графиками и текстами. Он обладает мощными вычислительными функциями и возможностью аналитических преобразований.

Инструкция

  • MathCad обрабатывает документ слева направо и сверху вниз. Поэтому, задав значение переменной, можно будет использовать ее во всех дальнейших вычислениях. Чтобы определить переменную, введите ее имя. Символом присваивания является знак «двоеточия». После него укажите конкретное значение, которое вы хотите присвоить переменной.
  • К переменной можно приравнивать определенное число, числовое выражение, формулу из других переменных, заданных ранее. Пусть, например, необходимо определить переменную quantity, равную 50. Введите с клавиатуры текст: «quantity:50». На экране отобразится «quantity:=50». В арифметическом меню программы есть специальная кнопка присваивания:= .
  • Если вы хотите изменить значение quantity, сотрите клавишей BackSpace 50 и введите нужное выражение или число. Нажмите Enter и переменная примет новое значение. Изменятся также значения всех переменных, каким-либо образом зависящих от quantity. Если MathCad обнаружит некорректную операцию (к примеру, деление на ноль), выражение окрасится в красный цвет, рядом с оператором появится сообщение-подсказка.
  • Пусть теперь нужно вычислить значение функции для переменной function. При этом сама функция зависит от переменной quantity: function=sin(1/2*quantity). Присвойте function данное выражение: function:=sin(1/2*quantity). После запуска программы на экране появится результат.
  • Все вычисления в MathCad можно сопровождать комментариями и пояснениями. Щелкните в свободном месте экрана мышкой, нажмите Insert и выберите Text Region в строке меню. В появившейся текстовой рамке начните ввод текста. Для ввода второй строки нажмите Enter и продолжите набирать текст. Так, операцию присваивания вы можете сопроводить комментарием типа «x равно 6». Комментировать можно любой шаг программы. В некоторых случаях это очень помогает человеку, работающему с кодом, понять суть происходящего и не запутаться в алгоритме.
  • Это приложение является алфавитным списком диагностических сообщений об ошибках в математических выражениях. Они появляются при попытке ввода, обработки или вычисления выражения, в котором Mathcad обнаруживает ошибку. Для описания диагностических сообщений по работе символьного процессора см. главу «Символьные вычисления».

    Если Mathcad находит ошибку при попытке вычисления функции, определенной пользователем, он помечает сообщением об ошибке имя функции, а не ее определение. В этом случае проверьте определение функции, чтобы понять, что вызвало ошибку.

    Вложенные блоки
    — ключевое слово Given
    использовано дважды в строке без последующих Find
    или Minerr.
    Mathcad не разрешает вложенные блоки решения уравнений, хотя можно определить функции через блоки решения уравнений и затем использовать их в других блоках решения уравнений. См. главу «Решение уравнений»;

    Диапазон недопустим
    — попытка использования дискретного аргумента внутри блока решения уравнений. Чтобы решать систему уравнений для многих значений параметров, см. раздел «Как лучше искать корни» на стр.353;

    Дисбаланс скобок (unmatched
    parenthesis) —
    вы ввели или пытались вычислить выражение, содержащее левую скобку без соответствующей ей правой. Исправьте выражение, удалив левую скобку или поставив в нужном месте правую;

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

    Длинный входной список (list
    too
    long) —
    введено слишком много элементов в списке, разделенном запятыми. Это может произойти при попытке вывести на график больше выражений, чем допускается Mathcad, или при попытке создать таблицу с более чем пятьюдесятью элементами;

    Должен быть диапазон (must
    be
    range) —
    что-либо, не являющееся дискретным аргументом, использовано в месте, где он требуется, например, в качестве индекса для суммирования. Индекс для суммирования располагается под знаком суммы и должен быть предварительно определен как дискретный аргумент;

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

    Должно быть безразмерным (must
    be
    dimensionless) —
    указанное выражение имеет размерность, хотя ситуация требует, чтобы оно было безразмерным. Единицы измерения нельзя использовать для аргументов некоторых функций (например, cos
    и In)
    или в показателе степени. Например, выражение co5 (lL) является недопустимым;

    Должно быть вектором (must
    be
    vector) —
    это сообщение отмечает скаляр или матрицу в операции, требующей векторный аргумент;

    Должно быть вещественным (must
    be
    real) —
    мнимое или комплекснозначное выражение использовано там, где Mathcad требует вещественнозначное выражение. Например, Mathcad требует вещественнозначные аргументы для некоторых встроенных функций и вещественнозначные индексы;

    Должно быть возрастающим (must
    be
    increasing) —
    вектор, элементы которого не расположены в порядке строгого возрастания, использован в качестве аргумента одной из функций Ispline, pspline, cspline, interp, linterp
    и hist.
    Первый аргумент этих функций должен быть вектором со строго возрастающими элементами. (При этом следует помнить о том, что, если ORIGIN есть О, Mathcad включает в число элементов вектора элемент с нулевым индексом, и если он не определен явно, его значение полагается равным нулю);

    Должно быть массивом (must
    be
    array) —
    попытка выполнить операцию, которую можно выполнять только на массиве, со скаляром. Например, можно увидеть это сообщение об ошибке при попытке транспонировать число, поскольку в таком контексте операция транспонирования не имеет смысла;

    Должно быть многомерным массивом
    — следует использовать матрицу, имеющую более чем одну строку либо более чем один столбец;

    Должно быть ненулевым (must
    be
    nonzero) —
    попытка вычислить встроенную функцию от нуля, хотя для нуля она не определена;

    Должно быть положительным (must
    be
    positive) —
    это сообщение отмечает чертеж, в котором одна из границ по оси, использующей логарифмический масштаб, равна нулю или отрицательна. Mathcad может выводить на график вдоль логарифмической оси только положительные значения;

    Должно быть скаляром (must
    be
    scalar) —
    векторное или матричное выражение использовано там, где требуется скаляр, например в качестве аргумента функции identity;

    Должно быть трехмерным вектором (must
    be 3-vector) —
    попытка найти векторное произведение от операндов, не являющихся трехмерными векторами. Векторное произведение определено только для векторов с тремя элементами;

    Должно быть целым (must
    be
    integer) —
    использовано нецелое выражение там, где требуется целое, например как аргумент функции identity
    или как индекс, нижний или верхний. (Хотя можно определять дискретные аргументы с дробными значениями, например х: =1, 1.1 .10 — их нельзя использовать как нижние индексы);

    Допустим только один массив (only
    one
    array
    allowed) —
    попытка ввести более чем один массив в поле ввода для карты линий уровня. Mathcad в этом случае допускает не более чем один массив, поскольку карта линий уровня может представлять не более чем одну функцию одновременно;

    Дублирование (duplicate) —
    попытка определить одну переменную дважды в одном определении. Это сообщение появляется, когда вы создаете вектор по левую сторону определения и используете одно имя в этом векторе дважды;

    Индекс вне границ (index
    out
    of
    bounds) —
    это сообщение помечает индекс, ссылающийся на несуществующее значение массива. Такое сообщение можно видеть при использовании отрицательного верхнего или нижнего индекса (или индекса, меньшего, чем ORIGIN, если ORIGIN > 0) либо при использовании верхнего или нижнего индекса для ссылки на элемент массива с номером, большим, чем возможно согласно определению в документе;

    Мало нижних индексов (too
    few
    subscripts) —
    для матрицы использован один нижний индекс. Указание на элементы матрицы возможно при помощи двух нижних индексов, разделяемых запятой;

    Не может быть определено (cannot
    be
    denned) —
    слева от символа определения (: =) помещено неопределяемое выражение. Mathcad допускает следующие виды выражений слева от символа определения:

    Простое имя переменной: х

    Имя переменной с нижним индексом: х;

    Имя переменной с верхним индексом: x

    Матрица имен переменных, порожденная нажатием M. Матрица может содержать лишь простые имена переменных или имена переменных с нижними индексами

    Имя функции с аргументами: j (x, у)

    Использование других видов выражений некорректно. Если нужно вычислить результат вместо определения переменной, следует поставить знак равенства (=) вместо нажатия двоеточия;

    Не содержит верхних индексов (cannot
    take
    subscript) —
    верхний индекс использован не для матрицы, а для чего-то другого;

    Не содержит нижних индексов (cannot
    take
    subscript) —
    нижний индекс использован не для вектора или матрицы, а для чего-то другого;

    Не является именем (not
    a
    name) —
    число или другая комбинация символов использованы там, где Mathcad требует имя, например как второй аргумент функции root.
    Примеры того, что не является именем: / (X)) (функция), 3 (число), х + 2
    (выражение);

    Неверная операция с массивом (illegal
    array
    operation) —
    «попытка применить к вектору или матрице функцию или оператор, которые требуют скалярные аргументы. Например, это сообщение можно видеть при попытке применения функции синус к квадратному корню из матрицы Если же нужно применить оператор или функцию к каждому элементу матрицы, используйте оператор векторизации, как описано в главе «Векторы и матрицы»;

    Неверное имя функции (illegal
    function
    name) —
    использовано выражение, которое Mathcad интерпретирует как функцию, но имя функции неверно. Это сообщение появится, например, в случае использования числа как имени функции: 6 (х).
    Чаще всего оно возникает, если пропущен оператор типа *, что заставляет Mathcad интерпретировать скобки в выражении как признак функции, а не как группирование операций;

    Неверное употребление ORIGIN (illegal
    ORIGIN) —
    ORIGIN определен через нецелое значение или значение с величиной, большей 16 000 000. Это сообщение отмечает первое использование индекса после неверного употребления ORIGIN;

    Неверный контекст (illegal
    context) —
    оператор или функция использованы в контексте, запрещаемом Mathcad. Например, это сообщение можно видеть в следующих случаях:

    точка с запятой использована где-либо вне корректного определения диапазона. (Точка с запятой в этом случае выводится на экран как многоточие)
    Можно использовать точку с запятой только в определении диапазона для дискретного аргумента функции WRITE
    или APPEND
    использованы где-либо вне левой стороны определения. Эти функции не могут применяться в выражениях или в правой части определения имя существующей функции использовано как имя переменной или имя существующей переменной использовано как имя функции;

    Неверный множитель (illegal
    factor) —
    в поле ввода единиц в конце выражения, возвращающего численный результат, введено неверное выражение. Допустимы вещественные ненулевые скалярные значения;

    Неверный порядок (invalid
    order) —
    отмечает попытку вычислить производную с указанным порядом, который не является целым числом от 0 до 5 включительно;

    Неверный размер вектора (wrong
    size
    vector) —
    это сообщение указывает на функцию преобразования Фурье, аргумент которой имеет число элементов, отличное от допустимого, fft
    требует в качестве аргумента вектор с количеством элементов 2°, где п —
    целое число, большее 1. ifft требует вектор с 1+2″ элементами, где n — целое число, большее 0. Если ORIGIN равен нулю, Mathcad автоматически включает элемент с нулевым индексом как компоненту вектора-аргумента;

    Некорректная точность аппроксимации (illegal
    tolerance) —
    это сообщение отмечает выражение, использующее TOL интеграл, или вхождения Root, Find
    или Minerr,
    для которых TOL 3> 1 или TOL <^ 0. Для устранения этой ошибки нужно где-либо выше отмеченного выражения установить значение TOL между нулем и единицей;

    Неопределенная размерность
    — выражение с единицами измерения возводится в степень, включающую дискретный аргумент или вектор. Mathcad не может определить размерность результата, который будет изменяться в зависимости от показателя степени. Если выражение имеет размерность, его можно возводить только в степень с фиксированным вещественным показателем;

    Не определено (undefindet) —
    показанное в негативном изображении имя функции или переменной не определено. Чтобы его определить, введите имя переменной с последующим двоеточием (:) и выражение или число, ее определяющее. Это сообщение часто означает, что для определения переменной использован знак равенства (=) вместо двоеточия. Для создания определения следует использовать двоеточие. Если используется знак равенства, Mathcad считает, что нужно вычислить
    значение переменной. Это сообщение также появляется при некорректном использовании переменной в глобальном определении. Если переменная используется в правой части глобального определения, она должна быть определена глобально выше
    него. Если используется локально определенная переменная или переменная, глобальное определение которой находится ниже места ее использования, Mathcad отмечает, что переменная не определена. Сообщение «не определено»
    часто указывает на то, что где-то выше в рабочем документе содержится ошибка. Если определение некорректно, то ниже в документе любые выражения, зависящие от этого определения, показываются в негативном изображении;

    Неправильный диапазон (illegal
    range) —
    дискретный аргумент определен неправильно. При определении диапазона следует использовать одну из следующих форм записи:

    Rval: =nl. п2 Rval: =nl, n2. п2

    Это набирается нажатием клавиш Rval: nl; n2 и Rval: nl,n2; n2 соответственно. В определении диапазона допустимо использовать максимум одну запятую и одну точку с запятой. Если используется вторая форма записи, величина п2
    должна лежать между значениями п
    и п3, но не равняться п;

    Нескалярная величина (no
    scalar
    value) —
    вектор или выражение, содержащее дискретный аргумент, используются там, где требуется скалярная величина. Например, можно увидеть это сообщение при попытке ввести равенство вида х
    : = /, если / — дискретный аргумент. Нельзя определить один дискретный аргумент через другой непосредственно, для этого следует использовать выражения, подобные xi.
    Данная ошибка часто возникает при построении графиков, если ввести в поле ввода имя вектора х
    вместо xi;

    Несовместимые единицы (incompatible
    units) —
    отмечает выражение, в котором складываются, вычитаются или выполняются иные операции с выражениями, имеющими различную размерность. Например, это сообщение об ошибке можно видеть при попытке:

    сложить или вычесть два выражения, имеющие различную размерность, например 3 кг + 5 сек

    создать вектор, матрицу или таблицу, в которой не все элементы имеют одинаковую размерность

    создать чертеж, в котором два выражения, имеющие различную размерность, откладываются по одной оси;

    Несовпадение размеров массивов (array
    size
    mismatch) —
    попытка произвести операцию с векторами или матрицами, размеры которых не подходят для этой операции. Многие операции требуют, чтобы их векторные аргументы были одного размера, например произведение или функции linterp
    и со/г. Сложение и вычитание векторов и матриц тоже требуют соответствия размерности. Умножение матриц требует, чтобы количество столбцов первой матрицы совпадало с количеством строк второй;

    Нет соответствующего Given (no
    matching
    Given) —
    это сообщение указывает на функции Find
    или Minerr
    без соответствующего им слова Given.
    Каждый блок решения уравнений, начинающийся со слова Given,
    должен оканчиваться словом Find
    или Minerr;

    Неуместная запятая (misplased
    comma) —
    запятая использована там, где ее не должно быть. Можно использовать запятую в одном из следующих случаев:

    для разделения аргументов функций

    для разделения первых двух элементов диапазона в определении дискретного аргумента

    для разделения величин, откладываемых на чертеже вдоль одной оси

    для разделения элементов в таблице ввода

    для разделения нижних индексов элемента матрицы.

    Использование запятой для любых других целей в Mathcad недопустимо;

    Особенность
    — попытка вычислить функцию или выполнить операцию с недопустимым значением. Например, это сообщение можно видеть при делении на ноль или попытке обратить вырожденную матрицу (с нулевым определителем);

    Отсутствует сходимость
    — Mathcad не способен вычислить результат интегрирования, дифференцирования, функции root, Find
    или Minerr
    с требуемой точностью. Для дополнительной информации см. описания соответствующих операторов и функций;

    Ошибка в блоке (error
    in
    solve
    block) —
    можно видеть это сообщение при вычислении пользовательской функции, выражаемой через блок решения уравнений, содержащий ошибку. Для устранения данной ошибки устраните ошибку в блоке решения уравнений. (Если использовать блок решения уравнений непосредственно, не определяя через него функцию, можно получить детализированное диагностическое сообщение);

    Ошибка в константе (error
    in
    constant) —
    Mathcad интерпретирует указанное выражение как некорректную константу. Mathcad воспринимает все начинающееся с цифры как константу. Если ввести цифру и непосредственно за ней несколько букв, Mathcad интерпретирует это как некорректную константу. Полный список всех возможных корректных форм констант приведен в разделе «Окончания чисел» приложения;

    Ошибка в списке (error
    in
    list) —
    указанная функция содержит некорректный список аргументов. Правильное определение функции начинается таким образом:

    цх, у, z. .): =

    Список аргументов в скобках может состоять из одного или нескольких имен, разделенных запятой. Любой другой вид списка неправилен. Это сообщение об ошибках появляется также, если создан недопустимый список в другом контексте, например в списке выражений для оси ординат графика;

    Ошибка области определения (domain
    error) —
    попытка вычислить значение функции, имеющей аргумент, выходящий за область определения. Например, попытка вычислить 1п (0).

    Ошибка файла (file
    error) —
    система столкнулась с ошибкой при чтении файла с помощью функции READ
    или READPRN.
    См. главу «Файлы данных», где описаны допустимые форматы файлов данных;

    Переполнение стека определений (definition stack overflow) — использовано слишком мнот о вложенных функций;

    Переполнение стека (stack
    overflow^
    — вычисление выражения привело к переполнение внутреннего стека Mathcad. Это может быть результа «ом слишком сложного выражения или рекурсивного с пределения функции;

    Переполнение (overflow) —
    попытка вычислить выражение, которое превосходит наибольшее число, которое может быть представлено Mathcad (примерно 10 307). Это может случиться не только когда велик сам по себе конечный результат, но и в случае превышения этого предела любым промежуточным результатом;

    Потеряны значащие цифры (significance
    lost) —
    это сообщение отмечает попытку вывести функцию от величины, которая лежит за пределами диапазона, где зна чение функции может быть вычислено точно. Например, оно появится при попытке вычислить sin (10 100). Поскольку величина sin (IQi 00) зависит от совершенно определенных цифр числа IQi 00 , то любое значение, которое Mathcad сможет вернуть, не будет иметь значащих цифр. Вместо возвращения результата, точность которого не обоснована, Mathcad выдает данное сообщение;

    Прервано (interrupted) —
    вы прервали Mathcad нажатием клавиши при выполнении вычислений. Для пересчета помеченного выражения щелкните мышью на выражении и нажмите ;

    Пропущенный знак операции (missing
    operator) —
    в выражении или уравнении пропущен один из знаков операции;

    Пропущенный операнд (missing
    operand) —
    в выражении пропущен один из операндов. Например, это сообщение можно видеть при вводе знака плюс без ввода слагаемых и последующем нажатии знака равенства. Mathcad показывает поле ввода (маленький прямоугольник) на месте пропущенного операнда;

    Размерность в невещественной степени
    — выражение с единицами измерений возведено в комплекснознач-ную или мнимую степень. Если выражение имеет размерность, оно может быть возведено только в вещест-веннозначную степень, иначе Mathcad не может определить единицы, в которых выражен результат;

    Решение не найдено (did
    not
    find
    solution) —
    Mathcad не нашел решения системы уравнений. Чтобы блок решения уравнений выдал в качестве решения приближающий результат, используйте функцию Minerr
    вместо функции Find.
    Подробнее см. главу «Решение уравнений»;

    Слишком большое выражение (equation
    too
    large) —
    для вычисления в Mathcad введено слишком большое выражение. Разделите выражение на два или более подвыражений;

    Слишком большой нижний индекс (subscript
    too
    large) —
    попытка использовать нижний индекс, превышающий пределы, допускаемые Mathcad;

    Слишком велико, чтобы отобразить (too large to display) — попытка вывести вектор или матрицу размера больше, чем допускается Mathcad;

    Слишком мало аргументов (too
    few
    arguments) —

    Слишком мало ограничений (too
    few
    constraints) —
    это сообщение указывает на Find
    или Given
    с количеством ограничений, меньшим числа переменных. Добавьте несущественные ограничения или уменьшите число переменных, относительно которых ищется решение. Подробнее см. главу «Решение уравнений»;

    Слишком мало элементов (too
    few
    elements) —
    это сообщение указывает на преобразование Фурье, кубический сплайн или функцию линейной интерполяции, применяемую для вектора со слишком малым количеством компонентов. Преобразование Фурье и обратное к нему требуют как минимум четыре элемента вектора;

    Слишком много аргументов (too
    many
    arguments) —
    указанное выражение содержит функцию со слишком малым количеством аргументов. Для встроенных функций число аргументов фиксировано; см. главу «Встроенные функции». Для функций пользователя число параметров зависит от определения, сделанного в рабочем документе;

    Слишком много индексов (too
    many
    subscripts) —
    использовано два или более нижних индекса для вектора либо три или более индекса для матрицы;

    Слишком много ограничений (too
    many
    constraints) — в
    блоке решения уравнений используются более пятидесяти ограничений;

    Слишком много точек (too
    many
    points) —
    попытка вывести на график точек больше, чем Mathcad может обработать для одного графика;

    Слишком много файлов
    — открыто слишком много файлов с использованием таких функций доступа к файлам, как WRITEPRN, READPRN,
    или других функций этого типа. Одновременно таким образом может быть открыто не более 30 файлов. Выберите команду Присоединить к файлу
    из меню Файл,
    введите имя од ной из используемых файловых переменных и нажмите «Отсоединить»;

    Только символьный оператор —
    попытка получить численный результат у выражения, которое должно быть вычислено только символьно. Некоторые операторы должны вычисляться только символьно, как описано в главе 17 «Символьные вычисления»;

    Файл не найден (file
    not
    found) —
    система не нашла файла данных, указанного в качестве параметра для функции READ
    или READPRN,
    либо для импорта в графическую область.

    2. Элементы языка MathCAD

    К основным элементам математических выражений MathCAD относятся операторы, константы, переменные, массивы и функции.

    2.1

    Операторы

    Операторы


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

    Оператор определяет:

    а) действие, которое должно выполняться при наличии тех или иных значений операндов;

    б) сколько, где и какие операнды должны быть введены в оператор.

    Операнд


    — число или выражение, на которое действует оператор. Например, в выражении 5!+3 числа 5! и 3 — операнды оператора «+» (плюс), а число 5 — операнд факториала (!).

    Любой оператор в MathCAD можно ввести двумя способами:

    · нажав клавишу (сочетание клавиш) на клавиатуре;

    · используя математическую панель.

    Для присвоения или вывода содержимого ячейки памяти, связанной с переменной, используются следующие операторы:



    знак присвоения (вводится нажатием клавиши :

    на клавиатуре (двоеточие в английской раскладке клавиатуры) или нажатием соответствующей кнопки на панели Калькулятор

    );

    Такое присвоение называется локальным

    . До этого присваивания переменная не определена и ее нельзя использовать.

    — глобальный оператор присвоения. Это присвоение может производиться в любом месте документа. К примеру, если переменной присвоено таким образом значение в самом конце документа, то она будет иметь это же значение и в начале документа.
    — оператор приближенного равенства (x1). Используется при решении систем уравнений. Вводится нажатием клавиши;

    на клавиатуре (точка с запятой в английской раскладке клавиатуры) или нажатием соответствующей кнопки на Булевой панели.

    Оператор (простое равно), отведенный для вывода значения константы или переменной.

    Простейшие вычисления

    Процесс вычисления осуществляется при помощи:

    Панели Калькулятора, Панели Исчислений и Панели Оценки.

    Внимание.

    Если необходимо поделить все выражение в числителе, то его нужно первоначально выделить, нажав пробел на клавиатуре или поместив в скобки.

    2.2 Константы

    Константы




    поименованные объекты, хранящие некоторые значения, которые не могут быть изменены.

    Например, p = 3.14.

    Размерные константы


    — это общепринятые единицы измерения. Например, метры, секунды и т.д.

    Чтобы записать размерную константу, необходимо после числа ввести знак * (умножить), выбрать пункт меню Вставка

    подпункт Юнит

    . В измерениях наиболее известные вам категории: Length — длина (м, км, см); Mass — вес (гр, кг, т); Time — время (мин, сек, час).

    2.3 Переменные

    Переменные


    являются поименованными объектами, имеющими некоторое значение, которое может изменяться по ходу выполнения программы. Переменные могут быть числовыми, строковыми, символьными и т.д. Значения переменным задаются с помощью знака присвоить (: =).

    Внимание.


    MathCAD прописные и строчные буквы воспринимает как разные идентификаторы.

    Системные переменные

    В MathCAD

    содержится небольшая группа особых объектов, которые нельзя отнести ни к классу констант, ни к классу переменных, значения которых определены сразу после запуска программы. Их правильнее считать системными переменными.

    Это, например, TOL — погрешность числовых расчетов, ORIGIN — нижняя граница значения индекса индексации векторов, матриц и др. Значения этим переменным при необходимости можно задать другие.

    Ранжированные переменные

    Эти переменные имеют ряд фиксированных значений, либо целочисленных, либо изменяющихся с определенным шагом от начального значения до конечного.

    Для создания ранжированной переменной используется выражение:

    Name =N begin
    ,(N begin
    +Step)..N end
    ,

    где Name — имя переменной;

    N begin
    — начальное значение;

    Step — заданный шаг изменения переменной;

    N end
    — конечное значение.

    Ранжированные переменные широко применяются при построении графиков. Например, для построения графика некоторой функции f

    (
    x
    ) прежде всего необходимо создать ряд значений переменной x

    — для этого она должна быть ранжированной переменной.

    Внимание.

    Если в диапазоне изменения переменной не указывать шаг, то программа автоматически примет его равным 1.

    Пример

    . Переменная x

    изменяется в диапазоне от –16 до +16 с шагом 0.1

    Чтобы записать ранжированную переменную, нужно ввести:

    Имя переменной (x
    );

    Знак присвоения (:=)

    Первое значение диапазона (–16);

    Запятую;

    Второе значение диапазона, которое является суммой первого значения и шага (–16+0.1);

    Многоточие (..
    ) — изменение переменной в заданных пределах (многоточие вводится нажатием точки с запятой в английской раскладке клавиатуры);

    Последнее значение диапазона (16).

    В результате у вас получится: x

    := –16,–16+0.1..16.

    Таблицы вывода

    Любое выражение с ранжированными переменными после знака равенства инициирует таблицу вывода.

    В таблицы вывода можно и вставлять числовые значения и корректировать их.

    Переменная с индексом

    Переменная с индексом

    — это переменная, которой присвоен набор не связанных друг с другом чисел, каждое из которых имеет свой номер (индекс).

    Ввод индекса осуществляется нажатием левой квадратной скобки на клавиатуре или при помощи кнопки x n

    на панели Калькулятор

    .

    В качестве индекса можно использовать как константу, так и выражение. Для инициализации переменной с индексом необходимо ввести элементы массива, разделяя их запятыми.

    Пример.

    Ввод индексных переменных.

    — ввод числовых значений в таблицу производится через запятую;
    — вывод значения первого элемента вектора S;
    — вывод значения нулевого элемента вектора S.

    Эта глава посвящена основам вычислений в Mathcad. Она содержит все необходимые сведения о применении переменных и функций, операторов Присваивания, численного вывода и символьного вывода (см. разд. 3.1), а также других операторов (см. разд. 3.2). В заключение описываются основные средства управления процессом вычислений в Mathcad (см. разд. 3.3) и уверится несколько слов о том, каким образом происходит выдача сообщений об ошибках при вычислениях (см. разд. 3.4).

    3.1. Переменные и функции

    Основные инструменты математика — это операции с переменными величинами и функциями. В Mathcad переменные, операторы и функции реализованы в интуитивной форме, т. е. выражения в редакторе вводятся и вычисляются так, как они были бы написаны на листе бумаги. Порядок вычислений в документе Mathcad также очевиден: математические выражения и действия воспринимаются процессором слева направо и сверху вниз.

    Перечислим основные действия, которые пользователь может совершать для определения и вывода переменных и функций.

    3.1.1. Определение переменных

    Чтобы определить переменную, достаточно ввести ее имя и присвоить ей неко-topoe значение, для чего служит оператор присваивания (см. следующий раздел).

    3.1.2. Присваивание переменным значений

    Чтобы присвоить переменной новое значение, например переменную х сделать равной 10:

    Рис. 3.1. Результат ввода оператора присваивания

    Результат перечисленных действий показан в листинге 3.1.

    Кнопка оператора присваивания для удобства помещена сразу на две панели Calculator (Калькулятор) и Evaluation (Выражения).

    Листинг 3.1. Присваивание переменной численного значения

    Ввести новое значение переменной возможно как в виде числа, так и в виде математического выражения, содержащего другие переменные (листинг 3.2) и функции (см. следующие разделы), а также в виде строкового выражения (листинг 3.3.). В последнем случае будет создана переменная s не численного, а строкового типа.

    Листинг 3.2. Присваивание переменной вычисленного значения выражения

    Листинг 3.3. Присваивание переменной строкового значения

    Если переменная с некоторым именем создается в данном документе впервые, то для ввода оператора присваивания, вместо двоеточия, допускается использовать символ равенства » :=» на символ равенства. Это делается для конкретного оператора присваивания с помощью пункта View Definition As контекстного меню (рис. 3.2) либо для всего документа с помощью команды Tools / Worksheet Options / Display)(Сервис / Опции документа / Отображение) (см. разд. «Управление отображением некоторых операторов»гл. 2).

    Рис. 3.2. Различное отображение оператора присваивания

    Помимо разобранного оператора присваивания (а он применяется наиболее часто), существует также возможность глобального присваивания.

  • f (х, . ) — функция;
    • f — имя функции;
    • х. — список переменных.

    Легче всего ввести написание функции в документ при помощи клавиатуры.

    В Mathcad формально можно разделить функции на два типа:

    • встроенные функции;
    • функции, определенные пользователем.

    Применение функций обоих типов в расчетах совершенно одинаково, с тем исключением, что любую встроенную функцию можно сразу использовать в любом месте документа (о вставке встроенных функций в документ читайте в разд. «Знакомство с Mathcad» гл. 1), а пользовательскую функцию необходимо предварительно определить в документе до момента вычисления ее значения.

    3.1.4. Определение функции пользователя

    Для того чтобы определить функцию пользователя, например f(x,y) = x2-cos (x+y):

    • Введите в желаемом месте документа имя функции (f).
    • Введите левую скобку «(«, имена переменных через запятую х, у и правую скобку «)». При вводе левой скобки и запятой автоматически будут появляться соответствующие местозаполнители.
    • Введите оператор присваивания с панели инструментов или нажатием клавиши .
    • Введите в появившийся местозаполнитель выражение, определяющее функцию x 2 -cos(x+y), пользуясь клавиатурой или панелями инструментов.

    Результат ввода иллюстрируется листингом 3.4.

    Листинг 3.4. Определение функции пользователя

    Все переменные, присутствующие справа в выражении определения функции, либо должны входить в список аргументов функции (в скобках, слева после имени функции), либо должны быть определены ранее. В противном случае будет выведено сообщение об ошибке, причем имя неопределенной переменной будет выделено красным цветом (рис. 3.3).

    Рис. 3.3. Сообщение об ошибке («Эта переменная или функция ранее не определена»)

    3.1.5. Вывод значений переменных и функций

    Чтобы вычислить в документе некоторое математическое выражение, которое может состоять из переменных, операторов и функций (встроенных и определенных пользователем):

    • Введите это выражение, например х у.
    • Нажмите клавишу .

    В результате справа от введенного знака равенства появится вычисленное значение выражения (листинг 3.5, предпоследняя строка). Нельзя изменять содержимое выражения справа от знака равенства, поскольку оно есть результат работы вычислительного процессора Mathcad, совершенно скрытой от глаз пользователя. Подчас (когда выражение содержит функции, реализующие разные численные методы, часто в сложных комбинациях) алгоритмы расчета бывают очень затейливыми и занимают существенное время. О том, что некоторое выражение документа находится в стадии вычисления, свидетельствует обрамляющая его зеленая рамка и невозможность предпринять какое-либо действие с программой Mathcad.

    Листинг 3.5. Вычисление выражения.

    Заметьте, что, перед тем как вычислить значение математического выражения, Вы обязаны определить значение каждой входящей в него переменной (две первых строки листинга 3.5). Вычисляемое выражение может содержать любое количество переменных, операторов и функций. Вывод текущего значения той или иной переменной приведен в последней строке листинга 3.5, а значения функции — в листингах 3.6 и 3.7.

    Листинг 3.6. Вывод значения функции.

    Листинг 3.7. Вывод значения функции (продолжение листинга 3.6)

    При определении функций пользователя через различные переменные важную роль играет присутствие имен этих переменных в списке аргументов или определение их выше в тексте документа. Например, результаты вывода значения функции f (х,у) в листинге 3.6 остались бы точно такими же, если до или после определения функции присвоить переменным х и у некоторые значения. Так происходит потому, что значения аргумента заданы непосредственно в строке вычисления функции. Если же определить функцию f (х) так, как это сделано в листинге 3 8, то она будет зависеть от значения переменной у в момент определения f (х) (т. е. у=5), поскольку у не входит в список аргументов f (х). Фактически f (x) =x 2 -cos (х+5). Даже если где-нибудь ниже в программе пользователь переопределит значение у, Mathcad все равно будет помнить функцию f (х) как выражение x2-cos (х+5) (листинг 3.9).

    Листинг 3.8. К определению функций пользователя

    Листинг 3.9. К определению функций пользователя (продолжение листинга 3.8)

    Внимательнее относитесь к обязательному требованию совпадения количества аргументов при определении и выводе значения функций. Сравните, например, листинги 3.6 и 3.8, в которых, несмотря на одинаковое выражение в правой части определения функции f, создаются две существенно разные функции f (х, у) и f (х), соответственно

    Вводя знак равенства для вычисления математических выражений в Math-cad, Вы фактически применяете оператор вычисления или численного вывода (numerical evaluation). Его можно ввести также нажатием кнопки со знаком равенства на одной из панелей инструментов: Calculator (Калькулятор) или Evaluation (Выражения) (см. рис. 3.1). Оператор численного вывода означает, что все вычисления проводятся с числами, а различные встроенные алгоритмы реализуются соответствующими численными методами.

    3.1.6. Символьный вывод

    Наряду с численным выводом, в Mathcad имеется возможность символьного, или аналитического, вычисления значения выражения. Для символьных вычислений имеется ряд специальных средств, которые будут детально рассмотрены позднее (см. гл. 5), самое простое из них — это оператор символьного вывода (symbolic evaluation). Он обозначается символом -» и в большинстве случаев применяется точно так же, как оператор численного вывода, однако внутреннее различие между действием этих двух операторов огромно. Если численный вывод — это в обычном смысле этого слова «запрограммированный» расчет по формулам и численным методам, скрытый от глаза пользователя, то символьный вывод — результат работы системы искусственного интеллекта, встроенной в Mathcad и называемой символьным процессором. Работа символьного процессора также невидима (и, чаще всего, даже трудно представима) пользователю и заключается в анализе самого текста математических выражений. Конечно, гораздо более узкий круг формул можно рассчитать символьно, хотя бы потому, что, вообще говоря, относительно не такая большая часть математических задач допускает аналитическое решение.

    Чтобы попытаться вычислить символьно математическое выражение, например В sin(arcsin(С Х)), где В,С,Х — некоторые переменные:

    • Введите это выражение: В sin(asin(С Х)).
    • Введите оператор символьного вывода сочетанием клавиш +, либо нажатием соответствующей кнопки (рис. 3.4) на панели Symbolic (Символика) или Evaluation (Выражения).

    Рис. 3.4. Кнопка вставки оператора символьного вывода

    После этого справа от символа оператора символьного вывода появится определенное аналитически значение выражения (листинг. 3.10) либо сообщение об ошибке «No answer found» (Ответ не найден). Если символьному процессору Mathcad не удается аналитически упростить выражение, то оно будет выдано справа от знака -» в том же виде, что и слева.

    Листинг 3.10. Символьный вывод выражения

    Листинг 3.11. Символьный вывод выражений, которое не удалось упростить

    Присмотритесь внимательнее к листингам 3.10 и 3.11: для символьного вывода не требуется предварительно определять переменные, входящие в левую часть выражения! Если же переменным были все-таки присвоены ранее некоторые значения, символьный процессор просто подставит их в упрощенную формулу и выдаст результат с учетом этих значений (см. в качестве примера два следующих листинга — 3.12 и 3.13).

    Точно так же, как рассчитываются численно значения функций, можно вычислять их и с помощью символьного процессора. Сравните соответствующие результаты, которые представлены в листинге 3.12 (конечно, символьный и численный ответы равны: 9 cos(8)=-1.31). Аналогично можно «символьно выводить значения переменных. Например, присвоить некоторой переменной значение функции или сложного выражения (листинг 3.13, вторая строка) и затем вывести значение переменной в символьном виде.

    Листинг 3.12. Численный и символьный вывод значения функции

    Листинг 3.13. ЧислвйныЙ и символьный вывод

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

    3.1.7. Допустимые имена переменных и функций

    В заключение перечислим, какие символы можно, а какие нельзя применять в именах, которые пользователь дает переменным и функциям, и перечислим ряд ограничений на присваивание имен. Допустимые символы:

    • большие и маленькие буквы — Mathcad различает регистр: так, имена х и х определяют разные переменные. Кроме того, Mathcad различает и шрифт, например имена х и х воспринимаются как разные;
    • числа от 0 до 9;
    • символ бесконечности (клавиши + + );
    • штрих (клавиши + );
    • греческие буквы — они вставляются с помощью панели Greek (Греческие символы);
    • символ подчеркивания;
    • символ процента;
    • нижний индекс.

    С осторожностью используйте нижний индекс в определении имен переменных и функций, не путая его с индексом векторной переменной. Чтобы ввести имя с нижним индексом, например, K max: введите букву «K», затем точку «.», после чего линии ввода опустятся чуть ниже, и только затем сам нижний индекс max.

    Теперь рассмотрим ограничения на имена переменных и функций:

    • имя не может начинаться с цифры, символа подчеркивания, штриха или процента;
    • символ бесконечности должен быть только первым в имени;
    • все буквы в имени должны иметь один стиль и шрифт;
    • имена не могут совпадать с именами встроенных функций, констант и размерностей, например sin или TOL. Тем не менее, допускается их переопределение, но тогда одноименная встроенная функция больше не будет использоваться по первоначальному назначению;
    • Mathcad не различает имен переменных и функций: если сначала определить функцию f (х), а потом переменную f, то в оставшейся части документа будет утеря* доступ к функции f (x).

    В некоторых случаях желательно использовать имена переменных и функций, содержащие символы операторов Mathcad или другие символы, которые нельзя вставлять в имена непосредственно. Для этого существуют две возможности.

    Во-первых, имя, составленное из любых символов и заключенное в квадратные скобки, Mathcad будет воспринимать корректно (рис. 3.5, сверху). Например, чтобы ввести имя :

    • Нажмите клавиши + + — появится пара квадратных скобок с местозаполнигелем внутри.
    • Введите в местозаполяитель последовательность любых символов, например a+b.

    Рис. 3.5. Специальные символы в именах переменных

    Во-вторых, если Вас не устраивает наличие квадратных скобок в имени, то вставить в него специальные символы можно чуть более сложным способом. Например, для ввода имени a+b:

    • Введите первый символ (а), который должен быть допустимым для имен Mathcad.
    • Нажмите клавиши + + для перехода в специальный «текстовый» режим редактирования.
    • Введите последовательность любых символов (+).
    • Еще раз нажмите клавиши + + , чтобы вернуться в обычный режим редактирования. Теперь можно продолжать ввод допустимых символов в имя (b).

    Результат этих действий показан в нижней строке рис. 3.5. Если требуется, чтобы имя начиналось со специального символа (средняя строка рис. 3.5), то необходимо выполнить все пункты 1-4, вводя в начале имени произвольный допустимый символ, а по завершении ввода просто стирая его.

    Каждый оператор в Mathcad обозначает некоторое математическое действие в виде символа. В полном согласии с терминологией, принятой в математике, ряд действий (например, сложение, деление, транспонирование матрицы и т. п.) реализован в Mathcad в виде встроенных операторов, а другие действия (например, sin, erf и т. п.) — в виде встроенных функций. Каждый оператор действует на одно или два числа (переменную или функцию), которые называют операндами. Если в момент вставки оператора одного или обоих операндов не хватает, то недостающие операнды будут отображены в виде местозаполнителей. Символ любого оператора в нужное место документа вводится одним из двух основных способов:

    • нажатием соответствующей клавиши (или сочетания клавиш) на клавиатуре;
    • нажатием указателем мыши соответствующей кнопки на одной из математических панелей инструментов.

    Напомним, что большинство математических панелей содержат сгруппированные по смыслу математические операторы, а вызвать эти панели на экран можно нажатием соответствующей кнопки на панели Math (Математика).

    Везде в этом разделе будем рассматривать только второй способ вставки оператора Те же, кто предпочитает использовать клавиатуру, найдут перечень горячих клавиш в приложении 2.

    Выше мы рассмотрели особенности применения трех операторов: присваивания (см. разд. 3.1.2), численного (см. разд. 3.1.5) и символьного вывода (см. разд. 3.1.6). Разберем в данном разделе действие прочих операторов Mathcad и возможности определения операторов пользователя.

    3.2.1. Арифметические операторы

    Операторы, обозначающие основные арифметические действия, вводятся с панели Calculator (Калькулятор), показанной на рис. 3.6:

    • сложение и вычитание: + — (листинг 3.14);
    • умножение и деление: / + (листинг 3.15);
    • факториал: ! (листинг 3.16);
    • модуль числа: |х| (листинг 3.16);
    • квадратный корень: (листинг 3.17); степени: (листинг 3.17);
    • возведение х в степень у: х y (листинг 3.17);
    • изменение приоритета: скобки (листинг 3.18);
    • численный вывод: = (все листинги).

    Рис. 3.6. Панель Calculator

    Листинг 3.14. Операторы сложения, вычитания и отрицания

    Листинг 3.15. Операторы деления и умножения

    Листинг 3.16. 0ператор факториала и модуля

    Листинг 3.17. Операторы извлечения корня и возведения в степень

    Листинг 3.18. Оператор изменения приоритета ()

    Как видно, с помощью этой панели можно ввести не только перечисленные операторы, но и их часто используемые комбинации, например, возведение экспоненты в степень, смешанное произведение и деление, а также мнимую единицу и число я. Заметим, что допускается запись оператора деления как в одну, так и в две строки, что обеспечивается наличием двух соответствующих кнопок на панели Calculator.

    Напомним, что в редакторе Mathcad можно выбирать отображение оператора умножения (см. разд. «Управление отображением некоторых операторов» гл. 2). Для того чтобы поменять его:

    • Щелкните правой кнопкой мыши на выражении, содержащем оператор умножения.
    • Выберите первый пункт появившегося контекстного меню View Multiplication As (Представление умножения).
    • В подменю выберите пункт, соответствующий стилю представления умножения: в виде обычной точки (Dot), точки с уменьшенным расстоянием от него до сомножителей (Narrow Dot), толстой точки (Large Dot), крестика (X), без символа с небольшим расстоянием между сомножителями (Thin Space), вообще вместе (No Space). Чтобы просмотреть, как будет выглядеть выражение в двух последних представлениях, нужно снять с него выделение. Чтобы вернуть представление по умолчанию, выберите в подменю контекстного меню пункт Default.

    Некоторых операторов, например таких, как оператор комплексного сопряжения, на панелях инструментов нет (листинг 3.19). Его приходится вводить исключительно с клавиатуры нажатием клавиши в пределах математической области.

    Листинг 3.19. Оператор комплексного сопряжения

    3.2.2. Вычислительные операторы

    Вычислительные операторы вставляются в документы при помощи панели инструментов Calculus (Вычисления). При нажатии любой из кнопок в документе появляется символ соответствующего математического действия, снабженный несколькими местозаполнителями. Количество и расположение местозаполнителей определяется типом оператора и в точности соответствует их общепринятой математической записи. Например, при вставке оператора суммы (рис. 3.7) необходимо задать четыре величины: переменную, по которой надо произвести суммирование, нижний и верхний пределы, а также само выражение, которое будет стоять под знаком суммы (пример заполненного оператора суммы см. ниже в листинге 3.22).

    Для того чтобы вычислить неопределенный интеграл, следует заполнить два местозаполнителя: подынтегрального выражения и переменной интегрирования.

    Рис. 3.7. Вставка оператора суммирования

    После ввода какого-либо вычислительного оператора имеется возможность вычислить его значение либо численно, нажатием клавиши , либо символьно, с помощью оператора символьного вывода.

    Перечислим основные вычислительные операторы и приведем простейшие примеры их применения:

    • дифференцирование и интегрирование;
      • производная (листинг 3.20);
      • N-Я производная (листинг 3.20);
      • определенный интеграл (листинг 3.21);
      • неопределенный интеграл (листинг 3.21).
      • сумма (листинг 3.22);
      • произведение (листинг 3.22);
      • сумма ранжированной переменной (листинг 3.23);
      • произведение ранжированной переменной (листинг 3.23).
      • двусторонний;
      • левый;
      • правый.

      Листинг 3.20. Операторы вычисления производных

      Листинг 3.21. Операторы интегрирования

      Листинг 3.22. Операторы суммирования и вычисления произведения

      Листинг 3.23. Операторы суммировани и вычисления произведения

      О назначении и особенностях использования ранжированных переменных будет рассказано в следующей главе (см. разд. «Ранжированные переменные» гл. 4).

      Листинг З.24. Операторы символьного вычисления пределов

      В отличие от других, операторы поиска предела могут быть вычислены только символьно (см. гл. 5).

      Операторы суммирования и вычисления произведения фактически являются более удобной записью операторов + и х с большим количеством операндов. А вот вычислительные операторы поиска производных и интегралов существенно отличаются от операторов умножения и сложения тем, что реализованы на основе определенных численных методов, которые в скрытой (невидимой для пользователя) форме запускаются вычислительным процессором Mathcad. При численном расчете интегралов и производных необходимо, хотя бы в общих чертах, представлять принцип работы соответствующих алгоритмов, чтобы избежать ошибок и неожиданностей при получении результатов (численным методам интегрирования и дифференцирования посвящена гл. 7).

      Рис. 3.8. Поиск бесконечного ряда

      Важно отметить, что имеется возможность вычислять интегралы с одним или обоими бесконечными пределами, а также в символьной форме искать значения бесконечных пределов, сумм (рядов) и произведений. Для удобства ввода кнопка с символом бесконечности помещена на ту же панель инструментов Calculus (Вычисления). Пример вставки символа бесконечности в задаче поиска бесконечного ряда приведен на рис. 3.8.

      3.2.3. Логические операторы

      Результатом действия логических, или булевых, операторов являются только числа 0 (если логическое выражение, записанное с их помощью, истинно) или 1 (если логическое выражение ложно). Чтобы вычислить значение логического выражения, например 1=1 (рис. 3.9):

      • Вставьте с панели Boolean (Булевы операторы) соответствующий оператор =.
      • В появившиеся местозаполнители вставьте операнды (две единицы).
      • Нажмите клавишу , чтобы получить ответ.

      Рис. 3.9. Вставка логического оператора

      Получается абсурдное на первый взгляд выражение i«i=i. Однако на самом деле все правильно. Справа от оператора вывода записано логическое выражение 1*1 (обратите внимание, что логический знак равенства выглядит по-другому, нежели обычный), которое является истинным. Поэтому значение данного выражения равно 1, что и показано справа от знака равенства.

      Перечислим логические операторы:

      • больше (Greater Than);
      • меньше (Less Than);
      • больше или равно (Greater Than or Equal);
      • меньше или равно (Less Than or Equal);
      • равно (Equal);
      • не равно (Not Equal to);
      • и (And);
      • или (Or);
      • исключающее или (Exclusive or);
      • отрицание (Not).

      Операнды в логических выражениях могут быть любыми числами. Однако если оператор по смыслу применим только к 0 и 1, то любое неравное нулю число по умолчанию принимается равным 1. Но в результате все равно может получиться либо 0, либо 1. Например, ¬ (-0.33)=0.

      Примеры действия логических операторов приведены в листингах 3.25 и 3.26.

      Листинг 3.25. Операторы сравнения.

      Листинг 3.26. Булевы операторы.

      Логические операторы чрезвычайно важны при записи подлежащих решению алгебраических уравнений и неравенств в приемлемой для Mathcad форме.

      3.2.4. Матричные операторы

      Матричные операторы предназначены для совершения различных действий над векторами и матрицами. Поскольку большинство из них реализует численные алгоритмы, о них будет подробно рассказано в части III (см. гл. 9).

      3.2.5. Операторы выражения

      Почти все вычислительные операторы были рассмотрены выше (см. разд. 3.1). Они сгруппированы на панели Evaluation (Выражения).

      • Оценить численно (Evaluate Numerically) (см. разд. 3.1.5)
      • Вычислить символьно (Evaluate Symbolically) (см. разд. 3.1.6)
      • Присваивание (Definition) (см. разд. 3.1.2)
      • Глобальное присваивание (Global Definition)

      Рассмотрим различие между операторами обычного присваивания и глобального присваивания (процесс его вставки в документ показан на рис. 3.10). Для того чтобы вычислить выражение, содержащее некоторую переменную или функцию, необходимо, чтобы этой переменной ранее в документе было присвоено какое-либо значение. Иначе будет выдаваться сообщение об ошибке (рис. 3.11). Однако если в любой части документа (например в самом низу) вставить оператор глобального присваивания, то переменная будет определена в любой части документа (листинг 3.27).

      Листинг 3.27. Действие операторов присваивания и глобального присваивания

      Рис. 3.10. Кнопка глобального присваивания на панели Evaluation

      Рис. 3.11. Обычное присваивание сказывается только на нижеследующей части документа

      Как видно из листинга 3.27, обычное, или локальное, присваивание переменной х действует от момента х:=10 до момента глобального присваивания х = 5. Вообще говоря, Mathcad анализирует документы на предмет присваивания переменных в два прохода: сначала распознаются все операторы глобального присваивания, и все выражения в документе сверху вниз и слева направо вычисляются в соответствии с ними, а при втором проходе в том же порядке анализируются операторы локального присваивания, и все выражения вычисляются с поправкой на них. Приведем важный пример взаимодействия глобального и локального присваивания (листинг 3.28).

      Листинг 3.28. Взаимодействие глобального и локального присваивания

      Обратите внимание, что, несмотря на локальное присваивание переменной x:=10 в третьей строке листинга, значение переменной у вычисляется все-таки в соответствии с глобальным значением х = 5, поскольку сама переменная y глобальным образом определена через переменную х.

      Аккуратнее относитесь к определению глобальных переменных и, во избежание путаницы, старайтесь не переопределять их локально. Применяйте глобальное присваивание только для определения констант и, по возможности, избегайте случаев, когда оператор вывода предшествует оператору глобального присваивания для улучшения читаемости документов.

      Точно так же как Вы глобально присваиваете значение переменной, допускается глобально определять функции (листинг 3.29).

      Листинг 3.29. Глобальное определение функции пользователя

      Оператор глобального присваивания можно отображать не только в виде тождественного равенства, но и как обычный знак равенства. Для этого вызовите на операторе контекстное меню и в подменю пункта View Definition As выберите пункт Equal (Равенство).

      3.2.6. Создание оператора пользователя

      Запросы взыскательного пользователя могут отнюдь не исчерпываться набором встроенных операторов Mathcad. Для вставки в документы заранее созданных операторов пользователя применяется панель Evaluation (Выражения).

      Выбор имени оператора

      Оператор пользователя может иметь абсолютно любое имя (см. ранее раздел «Имена, содержащие операторы и специальные символы» этой главы). Однако, исходя из смысла операторов, логично давать им имена в виде символов. Это удобно делать с помощью коллекции символов, находящейся в справочной информации Mathcad. Выберите в верхнем меню Help / QuickSheets (Справка / Быстрые шпаргалки) и войдите затем в самый последний раздел Extra Math Symbols (Дополнительные символы) открывшегося содержания Шпаргалок. Там Вы увидите целую коллекцию символов, любой из которых можно просто перетащить указателем мыши в нужное место документа.

      Присваивать оператору некоторое действие следует точно так же, как функции пользователя.

      Создание бинарного оператора

      Чтобы создать бинарный оператор, например реализующий действие х у 2:

      • Введите имя оператора, например, bin.
      • Наберите знак скобки , затем список из двух операндов через запятую, , , , затем закрывающую скобку .
      • Введите оператор присваивания .
      • Введите выражение, зависящее от операндов, действие которого необходимо присвоить оператору (х-у 2).

      Создание унарного оператора

      Унарный оператор создается точно так же, только вместо двух операндов, отделенных запятой, Вам следует ввести лишь один операнд. Например, чтобы создать оператор с именем %, реализующий перевод доли числа в проценты и сводящийся к умножению его на 100 (листинг 3.30):

      • Введите имя оператора. Для этого нажмите клавиши , + + + , , затем снова + + , потом сотрите в имени букву «а».
      • После знака % наберите скобку «(«, далее «х11, затем еще одну скобку «)».
      • .
      • Введите выражение х100.

      Листинг 3.30. Создание унарного оператора пользователя

      Использование бинарного оператора

      Возможны два вида вставки пользовательского бинарного оператора в документ, отличающиеся только отображением в документе. Чтобы вставить оператор в форме графа (или дерева):

      • Нажмите кнопку Tree Operator (Оператор дерево) на панели Evaluation (Выражения) (рис. 3.12, справа).
      • В появившиеся местозаполнители введите имя оператора (на вершине графа) и значения операндов (в ответвления дерева).
      • Введите оператор присваивания, нажав клавишу .

      Результат действия оператора показан на рис. 3.12, внизу слева.

      Кроме древовидной формы оператора, допускается использование его в виде последовательности «операнд- имя оператора- другой операнд» (рис. 3.12, вторая строка слева). Чтобы ввести такую форму оператора, следует нажать соседнюю кнопку Infix Operator (Оператор внутри) с изображением xfy.

      Рис. 3.12. Применение пользовательского бинарного оператора

      Использование унарного оператора

      Вставка унарного оператора совершенно аналогична, только вместо двух операндов требуется ввести один (рис. 3.13). Унарный оператор вставляется нажатием кнопки Prefix Operator (Оператор перед) на панели Evaluation (Выражения) либо кнопки Postfix Operator (Оператор после). Первый путь проиллюстрирован правой частью рис. 3.13 (в момент вставки) и результатом действия оператора (слева), а результат вставки оператора по второму пути — левой нижней строкой того же рисунка

      Рис. 3.13. Применение пользовательского унарного оператора

      3.3. Управление вычислениями

      Документ Mathcad — это в полном смысле этого слова компьютерная программа, а сама система Mathcad — настоящая система программирования, правда ориентированная на математика, а не на профессионального программиста. Большинство других сред программирования (знакомых читателю по реализации таких языков, как Си, Фортран, Бейсик и т. п.) разделяют редактирование кода программ и их выполнение, которое можно вызвать предназначенными для этого командами. В Mathcad и код программы, и результат их выполнения объединены в одном документе. Тем не менее, функции редактирования формул и их расчеты выполняются раздельно, и пользователь имеет возможность управлять всеми важнейшими опциями вычислений.

      3.3.1. Режимы вычислений

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

      • автоматический режим (automatic mode) — все вычисления проводятся автоматически по мере ввода формул;
      • ручной режим (manual mode) — начало вычислений каждой формулы или всего документа производится пользователем.

      Режим вычислений можно выбрать с помощью команды Tools / Calculate / Automatic Calculation (Сервис / Пересчитать / Считать автоматически), как показано на рис. 3.14. Если в этой строке меню установлен флажок проверки, значит, включен автоматический режим, если флажка нет, то редактируется документ в ручном режиме вычислений. Чтобы сменить режим, просто выберите этот пункт меню (например, нажав кнопку мыши в ситуации, показанной на рис 3.14, включите ручной режим).

      Режим вычислений устанавливается независимо для каждого документа Одновременно могут быть открыты несколько документов, вычисляемых в различных режимах

      Преимущества и недостатки каждого режима очевидны. С одной стороны, автоматические вычисления упрощают работу с документом, поскольку результаты расчетов появляются в реальном времени, и пользователь имеет возможность анализировать их сразу. С другой стороны, если вычисления сложные, то они могут отнимать много времени (что особенно заметно на компьютерах с не слишком мощным процессором и небольшим объемом оперативной памяти). Поэтому зачастую, чтобы продолжить редактирование документа, требуется довольно длительное ожидание завершения расчетов В частности, если поменять какое-либо выражение в начале большого документа, которое влияет на последующие вычисления, то все они пересчитываются заново. В таких случаях часто удобнее редактировать текст в ручном режиме, а вычисления включать по мере необходимости.

      Рис. 3.14. Выбор режима вычислений

      3.3.2. Прерывание вычислений

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

      Чтобы прервать затянувшийся процесс вычислений, нажмите клавишу Появится диалоговое окно, показанное на рис. 3.16, в котором нужно подтвердить прерывание вычислений (ОК). В этом случае выражения, которые Mathcad не успел вычислить, будут помечены в документы красным цветом. Прерванные вычисления возобновляются нажатием клавиши или командой Tools / Calculate / Calculate Now (Математика / Пересчитать / Пересчитать)

      Рис. 3.15. Процесс вычисления выражения

      Рис. 3.16. Диалоговое окно прерывания вычислений

      3.3.3. Вычисления в ручном режиме

      Если флажок в строке команды Tools / Calculate / Automatic Calculation (Сервис / Пересчитать / Считать автоматически) снят, пользователь должен запускать вычисления самостоятельно

      • Для того чтобы вычислить все формулы во всем документе, выполните команду Tools / Calculate / Calculate Worksheet (Математика / Пересчитать / Пересчитать все).
      • Для вычисления всех формул в видимой части документа выберите пункт Tools / Calculate / Calculate Now (Сервис / Пересчитать / Пересчитать) либо нажмите клавишу , либо щелкните на кнопке с изображением знака равенства (Calculate) на стандартной панели инструментов
      • Прервать вычисления можно обычным образом, нажав клавишу .

      Управлять размером видимой части документа можно при помощи изменения масштаба отображения документа

      При редактировании текста в ручном режиме не выполняются ни вычисления, ни построение графиков, а соответствующие места в выражениях формально отмечаются местозаполнителями (рис. 3.17.)

      Рис. 3.17. Чтобы запустить вычисления в ручном режиме, нажмите кнопку Calculate

      3.3.4. Отключение вычисления отдельных формул

      Mathcad позволяет отключить вычисление какой-либо формулы. При этом она не будет влиять на последующие вычисления. Чтобы не вычислять определенную формулу в документе:

      • Щелкните правой кнопкой мыши на формуле.
      • Выберите в контекстном меню пункт Disable Evaluations (Выключить вычисления), как показано на рис. 3.18.

      Эквивалентный способ выключения вычисления отдельной формулы заключается в вызове диалогового окна Properties (Свойства) через одноименный пункт контекстного меню (см. рис. 3.18) или главного меню Format (Формат). В диалоге Properties следует перейти на вкладку Calculation (Вычисления) и установить там флажок Disable Evaluations (Выключить вычисления).

      Результат выключения формулы из процесса вычислений проиллюстрирован листингом 3.31. На нем выключен второй из операторов присваивания, о чем можно судить по наличию черного квадрата сразу за формулой. Соответственно, в последней строке выведенное значение переменной х «не чувствует» выключенного присваивания и остается равным 3.

      Листинг 3.31. Вычисление второго оператора присваивания выключено

      Рис. 3.18. Отключение вычисления формулы с помощью контекстного меню

      3.3.5. Оптимизация вычислений

      Отличительная черта новых версий Mathcad — улучшенные возможности ускорения численных вычислений за счет применения элементов символьной математики. Непосредственно перед численным расчетом Mathcad автематически пытается упростить выражение, используя символьный процессор. Это называется оптимизацией. За счет того что от версии к версии качество работы символьного процессора улучшается, символьное преобразование зачастую существенно ускоряет расчеты. Режим оптимизации включается либо в документе целиком, либо для отдельных формул.

      Чтобы включить или отключить режим оптимизации всех выражений в активном документе, выберите команду Tools / Optimize / Worksheet (Сервис / Оптимизация / Документ), как показано на рис. 3.19. Содержание документа, изображенного на этом же рисунке, помогает понять математический смысл режима оптимизации: для ускорения вычисления нижнего (определенного) интеграла выгодно использовать его аналитическое решение, определенное символьным процессором.

      Чтобы изменить режим оптимизации для отдельной формулы, не меняя выбранного режима для остальных выражений документа, выделите эту формулу линиями ввода и выберите в верхнем меню Tools / Optimize / Equation (Сервис / Оптимизация / Уравнение).

      Рис. 3.19. Режим оптимизации вычислений

      3.3.6. Диалоговое окно Worksheet Options

      Наравне с изложенными способами установки режимов вычислений, их также удобно устанавливать для всего документа на вкладке Calculations (Вычисления) диалогового окна Worksheet Options (Опции документа), вызываемого с помощью команды Tools / Worksheet Options (Сервис / Опции документа). Три флажка задают включение соответствующего режима вычислений (рис. 3.20).

      • Recalculate automatically (Пересчитать автоматически) — включение режима автоматических вычислений.
      • Use strict singularity checking for matrices (Использовать проверку матриц на сингулярность) — опция, появившаяся в версии Mathcad 2001, которая важна при некоторых операциях с матрицами. Она означает проведение дополнительной проверки на сингулярность матрицы перед использованием численных алгоритмов, что позволяет, во избежание неправильного применения численного метода, выдать заранее сообщение об ошибке, если матрица сингулярная.
      • Optimize expressions before calculating (Оптимизировать выражения перед вычислением) — включение режима оптимизации.
      • Use exact equality for Boolean comparisons (Использовать точное равенство для логического сравнения) — когда флажок выбран, применяется жесткий критерий точного равенства чисел (точнее, числа при сравнении считаются равными, если отличаются по модулю менее чем на 10 -307). Если флажок снят, используется более мягкий критерий (относительное различие чисел по модулю менее чем на 10 -12).

      Рис. 3.20. Управление режимом вычислений в диалоговом окне Worksheet Options

      Помимо флажков проверки, имеется также пара переключателей, которая позволяет реализовать новый режим ускоренных вычислений (higher speed calculation). Он включается выбором переключателя Higher speed calculation (Ускоренные вычисления), изображенного на рис. 3.20. Чтобы отключить режим ускоренных вычислений, выберите переключатель Backward compatibility (Обратная совместимость). В этом случае вычисления будут проводиться без дополнительной оптимизации по скорости, в точности так же, как в предыдущих версиях (Matvcsd 2000 и ниже) Необходимость таких расчетов может возникнуть, если вдруг Вы столкнулись с сообщениями об ошибках в документах, созданных в предыдущих версиях Mathcad и корректно в них работающих.

      3.4. Сообщения об ошибках

      Когда процессор Mathcad по тем или иным причинам не может вычислить выражение, он вместо ответа выдает сообщение об ошибке (рис. 3.21). Если курсор находится вне формулы с ошибкой, то в ней имя функции или переменной, которая вызвала ошибку, отмечается красным цветом (сверху на рис. 3.21). При щелчке на такой формуле под ней появляется текстовое сообщение о типе ошибки, обрамленное черным прямоугольником (рис. 3.21, снизу).

      Рис. 3.21. Сообщение об ошибке

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

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

      Возможности Mathcad можно в полной мере оценить только при использовании переменных и функций.

      Два знака равенства

      В выражениях Вам необходимо использовать числа (константы), переменные, операторы и знаки равенства. В повседневной жизни мы используем знак равенства = для различных операций. Mathcad, однако, различает эти операции. Наиболее важные из них:

      • определение (присвоить значение) – вводится через двоеточие [:]
      • вычисление – вводится через знак равенства [=]

      Оператор определения не менее важен, чем оператор вычисления. Значение выражения y можно отобразить только после присвоения ему какого-либо значения. x и y здесь являются переменными .

      Введите следующие выражения:

      Эти два знака равенства принципиально различны, поэтому их не следует путать.

      Поместите курсор перед числом 4 в первом выражении:

      Удалите число 4 с помощью клавиши и введите 5. Щелкните по пустой области и убедитесь, что результат третьего выражения изменился на 25:

      Попробуйте удалить число 25. Вы увидите, что при первом нажатии число станет красным, а при повторном нажатии удалится 25 и знак равенства:

      Использование переменных

      Введите следующие выражения:

      Попробуйте изменить значение x на 100, 0.5, -4 и 0:

      Первые два случая дадут в результате число. При -4 получится мнимое число. Да, Mathcadможет работать и с такими числами. При нуле программа выдаст ошибку, а результат будет обведен красным. Если Вы щелкните по неправильному выражению, то получите описание, что может быть не так:

      Теперь о том, какие имена можно и нельзя использовать для переменных. Есть несколько правил: имя переменной не может начинаться с цифры и в имени переменной нельзя использовать пробелы и знаки операторов. Имена переменных могут начинаться:

      • с любой строчной или прописной буквы
      • другие символы, если они не являются операторами
      • символы с вкладки Математика –> Операторы и символы –> Символы
      • символы из Таблицы символов Windows

      Вот несколько примеров:

      Переменные можно использовать, только если они были определены ранее. «Ранее» означает, что объявление переменной должно располагать выше или левее выражения, где она используется. Если переменная не объявлена, появится сообщение об ошибке:

      Подстрочные индексы

      В Mathcad есть два различных вида подстрочных индекса для переменных:

      1. Описательный подстрочный индекс.
      2. Индекс массива (матрицы).

      Чтобы набрать описательный подстрочный индекс, введите имя переменной, нажмите и наберите подстрочный индекс:

      Переменная с описательным подстрочным индексом – это обычная переменная, со своим именем. Индекс массива существенно отличается от него. Этот индекс можно ввести, нажав открывающую квадратную скобку [ после имени переменной. У переменной может быть один или два индекса массива:

      Индекс массива должен быть числом. При этом не следует путать виды подстрочных индексов, т.к. они выглядят практически идентично:

      Разница видна при щелчке мышью по выражению:

      У переменной может быть сразу описательный индекс и индекс массива. Сначала всегда идет описательный индекс:

      Функции

      Переменные можно использовать, только если они были определены ранее. Однако есть одно важное исключение – определение функции. Можно определить собственную функцию, как на примере ниже:

      Переменная a является локальной для функции. Она не определена за пределами функции:

      Если Вы определили a до определения функции, значение a не будет изменено в процессе вычисления значения функции.

      Внимание: если Вы дали переменной такое же имя, как и функции, Вы больше не сможете использовать эту функцию. У переменной и функции должны быть разные имена:

      Этой проблемы можно избежать, задав для переменной и функции разные обозначения. Об этом мы поговорим в уроке 10 «Обозначения и единицы измерения».

      Функции могут содержать две и более переменной:

      Здесь значения переменных x и y также не изменяются при вычислении функции.

      Встроенные функции

      В Mathcad есть большое число встроенных функций. Зайдите на вкладку Функции:

      Список всех функций можно увидеть, щелкнув по кнопке Все функции.

      Заметьте, что тригонометрические функции принимаю в качестве аргумента угол в радианах, а не в градусах. Для использования градусов используйте символ с вкладки Математика –> Операторы и символы –> Символы:

      Математика в тексте

      В текст можно вставить математическую область. Таким образом, можно использовать над- и подстрочные символы в тексте. Для этого при редактировании текстовой области нажмите кнопку Математика с вкладки Математика –> Области:

      Резюме

      1. В Mathcadесть два различных знака равенства: определить:= и вычислить =.
      2. Имя переменной обычно начинается с буквы; цифры нельзя использовать в начале переменной. Также можно использовать символы с клавиатуры, с панели Математика –> Операторы и символы –> Символы, с Таблицы символов Windows.
      3. Чтобы определить переменную и задать ей значение:
      • щелкните мышью на пустую область;
      • введите имя переменной;
      • нажмите [:] для ввода оператора определения;
      • введите значение, которое Вы хотите присвоить.
      1. Чтобы дать переменной описательный подстрочный индекс:
      • нажмите ;
      • введите подстрочный индекс.
      1. Чтобы дать переменной индекс массива:
      • щелкните мышью в конце имени переменной;
      • нажмите открывающую квадратную скобку [;
      • введите число – подстрочный индекс.
      1. Переменную можно использовать ниже или правее места, где она определена.
      2. Имя функции следует набирать по тем же правилам, что и имя переменной, но ввод имени функции заканчивается вводом [(]. В скобках содержатся аргументы функции.
      3. Переменные в функциях – локальные, т.е. они определены только при использовании функции.
      4. Математическую область можно встроить в текст. Эту возможность следует использовать, если необходимо вставить над- и подстрочные символы в текст.

      MathCad является мощной системой для работы с формулами, числами, текстами и графиками и предоставляет пользователю возможности электронной таблицы и интерфейс WYSIWYG текстового процессора. Ввод уравнений в MathCad полностью совпадает с привычной типографской математической записью.

      Как и в электронных таблицах, любое изменение содержимого рабочего документа вызывает обновление всех зависимых результатов и перерисовку графиков. MathCad позволяет легко читать данные из файлов и подвергать их любой математической обработке: от сложения до вычисления интегралов и производных, обращения матриц и т.д.

      С помощью формул MathCad можно решить почти любую математическую задачу аналитически (символьно) либо численно. Объединяя в одном документе текст, графику и математические выкладки, MathCad облегчает понимание самых сложных вычислений.

      Ниже приведен краткий список основных характеристик MathCad.

      Свободная форма записи, подобная классной доске;

      Возможность комбинирования текста, математических выкладок, графиков и рисунков в любом месте документа;

      Вырезка и вставка уравнений, текста, графики;

      Контекстная интерактивная система справок.

      Точность представления чисел — 15 верных десятичных цифр;

      Двоичные, восьмеричные, десятичные, шестнадцатеричные числа;

      Основные встроенные алгоритмы:

      решения систем уравнений и неравенств;

      работы с комплексными числами, переменными, функциями;

      вычисления сумм, произведений, производных, интегралов;

      интерполяции и аппроксимации (линейная, кубическими сплайнами);

      быстрых преобразований Фурье;

      решения дифференциальных уравнений;

      работы с матрицами.

      Основные встроенные функции:

      теории чисел и комбинаторика;

      регрессии и сглаживания;

      Символьное дифференцирование и интегрирование;

      Обращение, транспонирование матриц;

      Разложение выражений на множители;

      Многообразие типов графиков (декартовы, полярные координаты; построение поверхностей, линий уровня; картины векторных полей; гистограммы; точечные графики);

      Оси графиков могут иметь линейный или логарифмический масштаб;

      Возможность выбора типа, толщины и цвета линии, используемой для построения графика;

      Построение графиков поверхностей в трех измерениях с различными ракурсами просмотра и в разных масштабах.

      ХАРАКТЕРИСТИКА ТЕКСТА И РАБОЧЕГО ДОКУМЕНТА

      Размещение текста в любом месте рабочего документа;

      Возможность использования шрифтов различных стилей в любой текстовой области;

      1.2 Отличия MathCad 2000 от предыдущих версий

      Кардинально переработанный и приближенный к интерфейсу MS Office пользовательский интерфейс;

      Возможность выделения частей математических выражений буксировкой мышью;

      Быстрое построение (QvickPlot) двумерных и трехмерных графиков;

      Новая палитра символьной математики с расширенными операторами;

      Более удобный и наглядный синтаксис символьных операций;

      Новые операторы программирования on error, continue, return;

      Возможность применения в программах операторов символьных операций;

      Новый тип данных – строковые;

      Появление оперативного центра ресурсов (Resource Center) вместо быстрых “шпаргалок” QuiekSheet;

      Около 50 новых математических функций, из которых следует особо отметить функции нахождения максимумов и минимумов maximize, minimize, а также функцию odesolve решения дифференциальных уравнений;

      улучшенный блок решения систем нелинейных уравнений (теперь их число может достигать 200);

      Возможность выбора численного метода решения некоторых задач (например, численного интегрирования);

      Улучшенные средства форматирования текста;

      Функции редактирования Find и Replace (найти и заменить);

      Возможность записи документов в формате HTML;

      Существенно улучшенные средства для работы с трехмерными графиками.

      Все это дает пользователю новые возможности и новые удобства в работе с системой MathCad, подтверждая её репутацию как одной из самых массовых и удобных в работе математических систем.

      Определение переменных в Mathcad

      Чтобы определить переменную, достаточно ввести её имя и присвоить ей некоторое значение, для чего служит оператор присваивания.

      1. Введите в желаемом месте документа имя переменной.

      2. Введите оператор присваивания с помощью клавиши или нажатием соответствующей кнопки Definition (Присваивание) на панели инструментов Calculator (Арифметика) или Evaluation (Выражения).

      3. Введите в появившийся фрейм требуемое значение переменной.

      Кнопка оператора присваивания для удобства помещена сразу на две панели Calculator и Evaluation .

      Ввести новое значение переменной возможно как в виде числа, так и в виде математического выражения, содержащего другие переменные и функции, а также в виде строкового выражения (листинг 3.1). В последнем случае будет создана переменная s не численного, а строкового типа.

      Функции в Mathcad записываются в обычной для математика форме, например,

      f (x )=sin (x ),

      где f (х ) — функция;

      f — имя функции;

      х — список переменных.

      Легче всего ввести написание функции в документ при помощи клавиатуры.

      В Mathcad формально можно разделить функции на два типа˸

      1. встроенные функции;
      2. функции, определенные пользователем.

      Применение функций обоих типов в расчетах совершенно одинаково, с тем исключением, что любую встроенную функцию можно сразу использовать в любом месте документа, а пользовательскую функцию необходимо предварительно определить в документе до момента вычисления её значения.

      Определение переменных в Mathcad — понятие и виды. Классификация и особенности категории «Определение переменных в Mathcad» 2015, 2017-2018.

      Текстовую область можно разместить в любом незанятом месте документа Mathcad. Чтобы до начала ввода указать программе, что требуется создать не формульный, а текстовый регион, достаточно, перед тем как ввести первый символ, нажать клавишу » (двойная кавычка). В результате на. .

      Для выполнения программы-функции необходимо обратиться к имени программы-функции с указанием списка фактических параметров (если в описании программы присутствует список формальных параметров), т. е. (список фактических параметров) Фактические. .

      Для набора выражения используются клавиатура и панели инструментов, которые доступны с помощью меню ПросмотрПанели. Например, для расчёта выражения необходимо набрать 1/, затем найти знак корня в панели «Калькулятор». В знаменателе выражения появится шаблон который. .

      Основными инструментами работы в Mathcad являются математические выражения, переменные и функции. Нередко записать формулу, использующую ту или иную внутреннюю логику (например, возвращение различных значений в зависимости от условий), в одну строку не удается. Назначение. .

      Для проведения измерений осциллограф нужно настроить, для чего следует задать: расположение осей, по которым откладывается сигнал; нужный масштаб развертки по осям; смещение начала координат по осям, режим работы по входу: закрытый или открытый; режим. .

      Для написания программ в среде MathCad существует специальная панель Programmіng (Программирование) (рис.16, а), она относится к панели Math (Математические) (рис.16, б). Язык программирования MathCad имеет предельно малое количество операторов (рис. 16, а). Чтобы написать программу. [читать подробнее] .

      Известно, что экспериментальные данные, как правило, задаются дискретно в виде массива данных из двух пар чисел (хі, уі). В связи с этим возникает задача аппроксимации дискретных данных непрерывной функцией f(x). В MathCad для обработки экспериментальных данных существуют. .

      MathCad 7.0 Professional – универсальный инструмент для работы с формулами, графиками и текстами. Он обладает мощными вычислительными функциями и возможностью аналитических преобразований.

      1. Не создавайте несколько одинаковых тем, ибо модератор может расценить их, как спам и удалить все.
      2. Для решения задач по GPSS есть отдельная тема. Все задачи по GPSS опубликовывать в этой теме! Перед опубликовыванием вашей задачи просмотрите всю тему, возможно вы сразу найдете решение.
      3. Давайте вашим темам ОСМЫСЛЕННЫЕ названия, а также указывайте язык программирования. Пример: [Pascal]:Работа с файлами и записями.
      4. Использования тега CODE обязательно при публикации текста программы.

      Темы, оформленные с явным игнорированием правил и отсутствием смысла, будут закрыты/удалены!
      Вам помогли? Напишите об этом здесь (в портфолио фрилансера)

      Фрилансерам:
      5. Демпинг цен запрещен (даже если Вы готовы работать бесплатно). Цены обсуждаются в приватном общении. Если вы готовы рещить задачу бесплатно, просто решите ее быстрее, чем возникнет предложение сделать это за деньги.
      6. Пользователям, входящим в группу Newbie, запрещается предлагать свои услуги (завуалированно в т.ч.)
      7. В посте с предложением выполнить работу, обязательно указывать ссылку на свое портфолио в Отзывы, Благодарности, Портфолио Это правило работает и в том случае, если вы выполняете работу бесплатно.
      8. Реклама (даже завуалированная) своих фриланских сайтов запрещена

      This variable is undefined mathcad что делать

      Пример 2.2. Определение переменной через значение функции

      Чтобы присвоить переменной значение матрицы или вектора, последние должны быть просто введены в правый маркер оператора «:-*. О том, как это сделать, мы поговорим в гл. 3. К определениям переменной данного типа можно также отнести и задание вектора значений с помощью оператора ранжированной переменной

      Пример 2.3. Присваивание переменной матричного значения

      И, Наконец, переменная может быть определена как строка. При этом ее значение обязательно должно быть взято в кавычки.

      Пример 2.4. Определение переменной как строки

      Значение переменной в Mathcad можно и переопределить: для этого операцию нового присваивания нужно провести правее или ниже старого присваивания.

      Человека, впервые столкнувшегося с выполнением расчетов с помощью компьютера, вид оператора Гфисваквания может несколько смутить. Это связано с тем, что в традиционном математическом синтаксисе функции, которые он выполняет, возложены на обычный знак «—*. Ситуация эта, вообще говоря, не совсем характерна для системы Macbcad, разработчики которой стремились максимально близко следовать общепринятым традициям оформлений «бумажной» математики, и связана она с попыткой найти компромисс между этими традициями и нормами программирования. Почему же нельзя использовать один оператор и для присваивания, и для вывода значения, и для указания равенства двух объектив данных или выражений? Дело в том, что программа лишена лотки — поэтому понять из контекста, какие функции в каждом конкретном случае выполнял бы оператор «=», она не смогла бы. По причине этого для каждой операции, которая на бумаге обозначается обычным *—*, в Mathcad имеется индивидуальный оператор. Знак же довольно традицнонен: он является оператором присваивания, например, в языке программирования Pascal. Однако в том случае, если вам нужно подготовить отчет или традиционный вид оператора присваивания для вас более удобен, тип его отображения можно изменить. Сделать это можно двумя способами.

      Если вы хотите изменить вид оператора в конкретной формуле, то выполните по нему щелчок правой кнопкой мыши. При этом откроется контекстное меню формулы, в котором следует выбрать всплывающее меню View Definition As

      В том случае, если все присваивания В документе должны быть отображены с помощью простого равенства, выполните команду Tools ► Worksheet Options ► Display (Инструменты ► Параметры документа ► Отображение). Здесь в списке Definition (Определение) выберите строку Equal (Равенство). При этом вы измените принятые поумолча-

      нию установки документа, и все вводимые в дальнейшем определения будут отображаться как

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

      Присвоить переменной значение в виде какого-то буквенного выражения можно только в том случае, если все символы или их сочетания, которые в нем используются, определены выше как конкретные числа, матрицы или строки (или же являются системными переменными). Иначе неопределенный символ будет выделен красным цветом и система выдаст сообщение об ошибке: This variable is undefined (Эта переменная не определена).

      Функции в Mathcad делятся на две группы:

      Техника использования функций обоих типов абсолютно идентична, а вот задание отличается принципиально.

      Задание функций пользователя

      Счгобенности определения функций пользователя (проще говоря,функций произвольного вила) в Mathcad полностью совпадают с принятыми в математике правилами. Для этого необходимо выполнить следующую последовательность действий.

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

      2.После имени функции следует ввести пару круглых скобок, в которых через запятую нужно прописать все переменные, от которых зависит функция. Задать функцию с параметром можно только в том случае, если ему выше присвоено конкретное числовое значение. Иначе система выдаст уже знакомое нам сообщение об ошибке: This variable is undefined.

      3.Введите оператор присваивания «:-►,

      4.На месте черного маркера справа от введенного оператора присваивания задайте вид вашей функции. В выражение определяемой функции могут входить как непосредственно переменные, так и другие встроенные и пользовательские функции.

      Пример 2.5. Задание функции пользователя

      <я,у, у- + a-f(x, у) + b-cos (FUNCTION (z))

      Встроенные функции — это функции, заданные в Mathcad изначально. Поэтому, чтобы их и си ольэовать. достаточно просто корректно набрать имена функций с клавиатуры. Впрочем, существуют и другие способы вставки нужной встроенной функции. Наиболее распространенные из них можно ввести с панели Calculator (Калькулятор), К таким функциям относятся синус, косинус, тангенс, натуральный и десятичный логарифмы, экспонента. Для того же, чтобы задать вес остальные встроенные функции Mathcad, нужно открыть специальное окно Insert Function (Вставить функцию). Проще всего это можно сделать нажатием одноименной кнопки панели Standard (Стандартные) с изображением стилизованного знака функции (рис. 2.1).

      Рио. 2,1. Кнопка Insert Function (Вставить функцию> меню Standard (Стандартные)

      Также, для того чтобы вызвать дан нос окно (рис. 2.2), можно использовать сочетание клавиш Ctrt+Shtft+F или Ctrt+E. И. наконец, ссылка на нею имеется в меню Insert (Вставка).

      Рис. 2.2. Окно Insert Function (Вставить функцию)

      Так как число встроенных функций Mathcad весьма значительно (несколько сотен), для удобства они распределены по тематическим группам. Их список, организованный в алфавитном порядке, расположен в окне Function Category (Категория функций). Всего в Mathcad 32 тематические группы функций.

      При выборе определенной категории функций ее содержание отоб1азится в окне Function Name (Имя Функции). Чтобы ввести нужную функцию, выделите ее в списке с помощью мыши или клавиш управления курсором н нажмите ОК (или лучше дважды щелкните на ней мышью).

      По умолчанию в окне Function Name (Имя функции) отображается полный список всех встроенных функций, что соответствует категории АИ(Всс). Производить поиск в полном списке несколько быстрее н удобнее, если вы приблизительно знаете написание имени нужной вам функции

      На окне Insert Function (Вставить функцию) имеется специальная зона, в которой отображается текст описания выбранной функции. Так, для первой функции списка

  • Сообщения об ошибках в Mathcad

    Таблица П4.1. Сообщения об ошибках

    Возможные пути устранения

    Сообщения об ошибках в численных вычислениях

    A «Find» or «Minerr» must be preceded by a matching «Given»

    Find или Minerr должны предваряться ключевым словом Given

    Эта ошибка выделяет функцию Find или Minerr при их несогласо-
    ванности с Given

    Каждый вычислите-
    льный блок,
    который заканчивается функцией Find или Minerr, должен начинаться с ключевого слова Given

    All evaluations resulted in either an error or a complex result

    Вычисления приводят к ошибке или комплексно-
    му результату

    Mathcad не может начертить некоторые точки, потому что не существует действительных значений для их нанесения на график

    Это сообщение может появиться, если имеется ошибка или все значения комплексные

    Arguments in function definitions must be names

    Аргументы в определениях функции должны быть именами

    Выделенное определение функции содержит неправильный перечень аргументов

    В списке аргументов должны быть правильно поименованы переменные, или список имен необходимо отделить запятыми

    At least one limit must be infinity

    По крайней мере один предел должен быть бесконечным

    Когда для интегриро-
    вания выбран алгоритм бесконечного предела, то по крайней мере один из пределов интеграла должен быть бесконечным

    Тип бесконечности вводится нажатием сочетания клавиш + + .

    Для изменения алгоритма, использующего бесконечный предел, или для вычисления какого-либо другого интеграла щелкните на интеграле правой кнопкой мыши и измените алгоритм с помощью контекстного меню

    Can only evaluate an n-th order derivative when n=0,1..5.

    Можно вычислить n-й порядок производной, только когда п=0,1..5

    Порядок производной должен быть одним из следующих чисел: 0, 1, 2,. ..5.

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

    Can’t evaluate this function when its argument less than or equal to zero

    Невозможно вычислить эту функцию, когда ее аргумент меньше или равен нулю

    Такое сообщение может касаться XY- или полярных графиков, имеющих логарифмические оси, на которых или пределы, или некоторые из значений, не положительны

    Отрицательные числа и ноль не могут быть расположены нигде на логарифмических осях. Смените тип осей графика или постройте его для других значений

    Can’t converge to a solution

    Не сходится к решению

    Численный метод расходится (не может найти решения)

    Убедитесь, что операция не применяется к функции в области непосредственной близости точки ее сингулярности (деления на ноль). Попробуйте поменять параметры численного метода (например начальное приближение).

    Попробуйте увеличить константу TOL, т. е. осуществить поиск решения с худшей погрешностью.

    Попробуйте поменять численный алгоритм, если это возможно (вызвав контекстное меню нажатием на месте ошибки правой кнопки мыши)

    Can’t define the same variable more than once in the same expression

    Невозможно определить ту же самую переменную более одного раза в одном и том же выражении

    Вы пытаетесь вычислить одну и ту же переменную дважды в одном выражении

    Пример подобной ошибки: если Вы создаете вектор с левой стороной а := и используете это же имя справа, то получите ошибку

    Can’t determine what units the result of this operation should have

    Невозможно определить, в каких единицах следует быть результату этой операции

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

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

    Cant divide by zero

    Деление на ноль невозможно

    Где-то в программе или внутри численного метода возникло деление на ноль

    Найдите место деления на ноль и устраните его

    Попробуйте поменять параметры численного метода, константы точности или сам численный алгоритм

    Could not find a solution

    Невозможно найти решение

    Численный метод расходится (не может найти решения)

    См. «Can’t converge to a solution»

    Can’t find the data file you’re trying to use

    Невозможно найти файл, который Вы пытаетесь использовать

    Невозможно найти файл данных или другой тип файла, к которому Вы обращаетесь

    Удостоверьтесь, что такой файл существует в указанном месте

    Can’t have anything with units or dimensions here

    Здесь нет ничего в единицах измерений или в размерностях

    Это выражение использует единицы измерений где-то, где они не разрешены

    Единицы измерений не разрешены:

    — в аргументах большинства функций;

    — в экспонентах; — в верхних и нижних индексах.

    Для того чтобы использовать выражения с единицами измерений, вначале переведите это выражение в UnitsOf (выражение)

    Can’t have more than one array in a contour plot

    Нельзя иметь более одного массива в контурном графике

    Вы вводите более одного массива в местозаполнитель контурного или поверхностного графика

    Можно иметь только один массив в данном местозаполнителе, т. к. графики могут выдавать лишь одну поверхность в один момент времени

    Can’t perform this operation on the entire array at once. Try using «vectorize» to perform it element by element

    Невозможно представить эту операцию в целом массиве сразу. Попытайтесь использовать векторизацию, чтобы представить элемент за элементом

    Например, можно увидеть это сообщение при попытке разделить один вектор на другой

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

    Can’t plot this many points

    Невозможно начертить график с таким большим количеством точек

    Попытка построения графика с числом точек, превосходящим возможное

    Попробуйте сделать число точек меньше, чем 150 000

    Can’t put a «:=» inside a solve block

    Нельзя помещать «:=» внутрь вычислительного блока

    Внутри вычислительного блока не должно быть формулировки присваивания. Он должен содержать только булевы выражения

    Используйте панель с булевыми операторами

    Can’t raise an expression having units to a complex power

    Нельзя возводить в комплексную степень ыражение, имеющее единицы измерений

    Это выражение содержит единицы измерений, а Вы возводите его в комплексную степень

    Выражение с единицами измерений можно возводить только в действительную степень. Для того чтобы возводить в комплексную степень выражение с единицами измерений, вначале переведите это выражение в UnitsOf (выражение) — единицы измерений будут отменены

    Can’t solve a system having this many equations

    Невозможно решить систему, имеющую так много уравнений

    Mathcad не способен решить систему

    См. определение термина «вычислительный блок » (гл. 8)

    Can’t understand something in this data file

    Невозможно что-то понять в файле данных

    Файл, к которому Вы пытаетесь получить доступ при помощи READ или READ*, имеет дефект

    Файл должен быть ASCII-текстом

    Все строки файла должны иметь тот же номер значений, что используется в READ*

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

    Can’t understand the name of this function

    Невозможно понять имя этой функции

    Такое сообщение может появиться, если в качестве имени функции используется, например, число 6(х)

    Выражение должно соответствовать требованиям, предъявляемым в Mathcad к написанию имен функций

    Can’t understand the way this range variable is defined

    Невозможно понять определение ранжированной переменной

    Определение ранжированной переменной неверно

    Вводя область определения ранжированной переменной, необходимо использовать один из следующих видов:

    Rvar := nl . .n2 Rvar := nl,n2 . .пЗ

    Cant understand this number

    Невозможно понять это число

    Это выражение содержит символ или десятичную точку там, где это непозволительно

    Вы увидите эту ошибку, например, если случайно запишете число так: .452.

    Cant use a range variable in a solve block

    Невозможно использовать ранжированную переменную в вычислительном блоке

    Эта ошибка появится, если использовать область определения переменной в неподходящем месте

    Придумайте алгоритм, не допускающий применения ранжированной переменной в вычислительном блоке

    Cannot evaluate this accurately at one or more of the values you specified

    Невозможно точно вычислить одно или более значений

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

    Проверьте область определения функции

    Cross product is defined only for vectors having exactly three elements

    Векторное произведение определяется только для векторов, имеющих точно три элемента

    Векторное произведение определяется только для векторов, имеющих точно три элемента

    См. определение векторного произведения (гл. 9)

    Can’t evaluate this expression. It may have resulted in an overflow or an infinite loop

    Невозможно вычислить это выражение. Это может быть результатом переполнения или бесконечных циклов

    Это функциональное определение может содержать слишком много вложенных функций. Или функция может быть константой в бесконечных циклах

    Проверьте несколько итераций цикла

    Degree of the polynomial must be between 1 and 99.

    Степень полинома должна находиться в пределах между 1 и 99

    Вектор, пропущенный через функцию поиска корней полинома, должен содержать по крайней мере 2 и не более 99 элементов

    Dimensions must be >4

    Размерность должна быть >4

    Эта матрица должна иметь по крайней мере 4 ряда и 4 столбца

    Исправление ошибок

    Определив выражение, вызвавшее ошибку, нужно его отредактировать с целью устранения ошибки или исправить определение переменной, приведшей к ошибке. После щелчка по выражению и начала редактирования MathCAD удаляет сообщение об ошибке. После щелчка вне уравнения (или нажатия клавиши [F9]), MathCAD повторно вычисляет выражение. Если ошибка устранена, то MathCAD затем повторно вычисляет другие выражения, зависящие от измененного.

    Выражение, отмеченное сообщением об ошибке, не обязательно содержит ее причину. Причиной ошибки могут быть функции или переменные, определенные в рабочем документе значительно ранее. Для устранения ошибки придется отредактировать именно ее.

    Рассмотрим допустимые в MathCAD имена переменных и функций. Имена в MathCAD могут содержать любые из следующих символов:

    · прописные и строчные латинские буквы;

    · цифры от 0 до 9

    · знак подчеркивания _

    · штрих ` Это не апостроф. Находится на одной клавише с тильдой

    · греческие буквы. Есть два способа набрать греческую букву: напечатать римский эквивалент и нажать [Ctrl]+Gили щелкнуть по соответствующему символу на палитре греческих символов

    · символ бесконечности, который можно задать как комбинацию клавиш[Ctrl]+[Shift]+Z.

    · Имена переменных и функций не могут включать пробелы или любые другие символы, не перечисленные выше.

    MathCAD не делает различий между именами переменных и именами функций. Если определить вначале f(x), а затем переменную f, окажется невозможным использовать f(x) где-либо ниже определения f некоторые имена уже используются MathCAD для встроенных констант, единиц измерения и функций. Хотя эти имена можно переопределить, этот уничтожит их встроенные значения.

    MathCAD различает в именах символы верхнего и нижнего регистра, а также различные шрифты.

    Кроме того, среда MathCAD включает так называемые предопределенные переменные. MathCAD содержит 8 переменных, значения которых определены сразу после запуска программы. Они называются встроенными или предопределенными. Эти переменные имеют или общепринятое значение (например, пи или е), или используются как внутренние переменные, управляющие работой MathCAD. Эти переменные можно переопределять, например, определим е:= 2. Ниже этого определения переменная е примет в рабочем документе новое значение.

    Приведем примеры некоторых встроенных переменных:

    е=2.71828 – основание натурального логарифма;

    Е=10^307 – машинная бесконечность;

    MathCAD интерпретирует все, начинающееся цифрой, как число. Цифра может сопровождаться:

    · цифрами после десятичной точки;

    · символами h или o для шеснадцатеричных и восьмеричных чисел; символами i или j для комплексных чисел. Комплексные числа MathCAD воспринимает в форме a+bi (или a+bj). Специальные функции и операторы для работы с комплексными числами:

    · Re(z) – вещественная часть числа z;

    · Im(z) – мнимая часть числа z;

    · Arg(z) – аргумент числа z (угол в комплексной плоскости между вещественной осью и радиус-вектором, определяемым числом z);

    · |z| – модуль числа z.

    Одиночное число в MathCAD называют скаляром. Столбец чисел называется вектором, а прямоугольная таблица чисел — матрицей. Способы создания массива:

    · заполнить массив пустых полей

    · использовать дискретный аргумент

    Можно различать имена векторов, матриц и скаляров, используя различный шрифт для их описания.

    Эта переменная не определена mathcad ошибка

    MathCAD — это просто! Часть 27. Программирование и ошибки: вместе веселее!

    Что ж, хотя мы уже немало всего успели обсудить насчет программирования в такой замечательной математической среде, как MathCAD, еще немало весьма существенных тем осталось за кадром. И, пожалуй, самая существенная из них — это взаимодействие начинающего программиста, пишущего программы в MathCAD’е, и ошибок в его программах. Именно на ней мы с вами сейчас и остановимся.

    В общем-то, если сказать, что ошибки никто не любит, это будет не так уж далеко от истины. Точнее, никто не любит собственные ошибки. Чужие любят все, а не только экзаменаторы и разнообразные инспекторы. Однако, к сожалению, при программировании (а написание небольших вспомогательных программок в MathCAD’е, как я уже когда-то давно тому назад говорил, это тоже программирование) ошибки попросту неизбежны. Даже самые лучшие программисты совершают ежедневно множество ошибок, и никто, в общем-то, за это не применяет к ним особых санкций. Существует даже такое мнение, что программа без ошибок совершенно бесполезна — если в ней нет ошибок, значит, в ней нет и никакой полезной функциональности, потому что не ошибается только тот, кто ничего не делает. Так что ошибки в программах — это вполне естественные спутники каждого, кто пишет даже самые маленькие программки, а потому и бояться их не следует. Тем не менее, с ошибками в программах можно и нужно бороться. И для этого существуют специальные средства, некоторые из которых доступны и тем, кто пишет программы в MathCAD’е. Однако, прежде чем рассказывать о том, что это за средства, и как ими нужно пользоваться, нужно, как мне лично кажется, поговорить еще немного о том, вокруг чего будет сосредоточена наша борьба — то есть о самих ошибках.

    Поскольку, как я уже говорил, ошибки довольно многочисленны, их имеет смысл классифицировать. Сделать это стоит, в общем-то, уже хотя бы попросту потому, что разные виды ошибок требуют различных к себе подходов, и их устранение требует вложения различного количества труда того, кто писал программу.

    Самые простые ошибки — синтаксические. Как вы уже имели возможность воочию убедиться, при программировании очень важно придерживаться определенных правил в записи конструкций. Например, если вы вместо имени функции rkfixed напишете в программе tkfixed, ошибившись при вводе на одну букву и нажав на соседнюю с r клавишу t, то как раз и получите в свое распоряжение самую что ни на есть классическую синтаксическую ошибку. Ни к каким особенно страшным последствиям она (как, впрочем, и все другие ошибки аналогичного класса) не приведет: программа просто не сможет быть выполнена по той причине, что MathCAD не сможет найти функцию, которую вы ему указали. Искать такие ошибки тоже совсем не сложно — они всегда хорошо видны, поскольку даже сама среда подсвечивает их, чтобы можно было найти особенно быстро. Исправлять, соответственно, тоже очень просто: достаточно записать идентификатор правильно, и все в программе станет на положенные места. MathCAD, кстати, избавляет пользователя от множества таких ошибок благодаря необходимости вводить все операторы, управляющие ходом программы, с помощью специальных горячих клавиш или соответствующих кнопок на панели инструментов Программирование. Если бы их нужно было, напротив, набирать вручную с клавиатуры, то и возможности сделать синтаксическую ошибку были бы несравнимо шире.

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

    Третий тип — это ошибки мистические. Да-да, именно мистические, я не оговорился. Какие именно это ошибки? Это ошибки, имеющие совершенно непонятную природу и столь же непонятный способ лечения — как правило, это проявления ошибок не в вашей программе, а в каком-то из внутренних компонентов MathCAD’а. К сожалению, эти ошибки, в «большом» программировании встречающиеся не так уж, в общем-то, и часто, в MathCAD’е не такие уж редкие гости. Отчасти это объясняется тем, что MathCAD — это все-таки средство расчетов, а не программирования, которое играет в этой среде второстепенную и вспомогательную роль, но, конечно, когда реально сталкиваешься с такими вот мистическими ошибками, это все не слишком успокаивает. Хотя поначалу почти все ошибки в программах кажутся мистическими, на самом деле большая их часть все-таки имеет рациональную природу. Если же природа появившейся ошибки вам совершенно непонятна, то вам следует коренным образом перестроить структуру программы или хотя бы тот ее фрагмент, в котором локализовалось проявление этой ошибки. Практически во всех случаях этот не слишком хитрый прием позволяет полностью избавить программу от досадной непонятной ошибки.

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

    Отладка в MathCAD’е

    Процесс поиска и устранения алгоритмических ошибок называется по-русски отладкой. По-английски этот же самый процесс называется debugging, то есть, если дословно, «избавление от жучков». В общем-то, и по-русски довольно часто можно услышать термины «дебагинг» или «баг», однако во избежание путаницы мы будем использовать слово «отладка» (если, конечно, не возражаете). Кстати, история возникновения английского термина весьма любопытна, и, вполне возможно, вы ее слышали. Первые компьютеры были машинами весьма громоздкими и дорогостоящими, а потому и всевозможные поломки для них были делом далеко не просто устранимым. Когда выяснилось, что причиной очередной поломки стал жучок, забравшийся внутрь компьютера и вызвавший замыкание, в счете за ремонт записали: «debugging». Рука шутника оказалась легкой — термин, как видите, прижился и используется на протяжении уже многих десятилетий.

    В чем же заключается процесс отладки? На самом деле ничего особенно таинственного и трудного для понимания здесь нет. Просто во время отладки у вас есть возможность выполнять программу не сразу «залпом», как это происходит обычно, а пошагово, то есть выполнять последовательно друг за другом каждую строчку программы, делая, когда нужно, паузы для осмысления работы программы и просмотра промежуточных значений каждой из переменных. Отладка используется при разработке любых программ, а потому и создатели MathCAD включили поддержку этого удобного и, в общем-то, достаточно универсального средства выявления ошибок в свой программный продукт. Доступ к инструментам, используемым при отладке программ в MathCAD’е, осуществляется через подпункт Debug меню Tools в главном рабочем окне MathCAD’а (см. соответствующий скриншот).

    Стоит отметить, что, поскольку MathCAD — это среда, ориентированная не на программирование, а на различные вычислительные действия, то отладка в ней имеет более широкое применение, чем только отладка программ, которые пишет пользователь. Отлаживать можно и все вычисления даже в том случае, если они выполняются без применения какого-либо программирования с вашей стороны. В общем-то, поскольку такая возможность будет весьма полезной для большинства читателей не столько при программировании в MathCAD’е, сколько при обычных вычислениях, то именно с такой позиции мы с вами и станем рассматривать отладку в этой мощной математической среде. Нам также понадобится панель отладки. Ее включают так же, как все остальные панели инструментов, в меню View -> Toolbars. Конечно, эта панель, как вы могли уже заметить, дублирует отладочное меню в Tools -> Debug, однако, думаю, нажать на кнопку, расположенную на этой панели, будет все-таки проще и быстрее, чем искать соответствующий пункт в надежно спрятанном от пользователя меню.

    При переходе в отладочный режим (кнопка либо пункт меню Toggle Debug Mode) внешний вид главного окна MathCAD’а меняется (см. скриншот): внизу появляется специальное окно, используемое для просмотра промежуточной отладочной информации. Оно называется Trace Window.

    Однако о том, что именно отображается в этом самом окне, а также о том, что от нас требуется сделать с документом перед тем, как его можно будет уже полноценно отлаживать, мы с вами поговорим, пожалуй, в следующий раз, чтобы не перегружать вас разнообразной полезной информацией. Сейчас же подведем итоги разговора про ошибки, возникающие в процессе написания программ в математической среде MathCAD.

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

    Эта переменная не определена mathcad ошибка

    Mathcad раскрывается в полной мере при использовании переменных и функций.

    Два знака равенства

    В математических вычислениях мы используем множество различных констант, переменных, операторов и знаков равенства. Обычно в жизни мы используем знак равенства для многих разных операций, но Mathcad отличает их. Наиболее важными операциями являются:

    • определение (присвоение значения) — используется двоеточие;
    • вычисление — используется знак равенства.

    Важность оператора определения не меньше, чем важность оператора вычисления. В приведенном ниже примере значение y можно вычислить лишь после присвоения ему определенного значения. х и у здесь являются переменными.

    Два знака равенства, которые изображены выше, имеют совершенно разные значения, поэтому нужно очень внимательно относится к ним.

    Поставьте курсор перед числом 4 в примере выше.

    Удалите число 4 клавишей [Delete], и введите 5. Нажмите на пустой области, чтобы выйти из области вычисления и увидите, что результат вычислений поменялся на 25:

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

    Использование переменных

    Введите такие выражения в область вычисления

    Проведите операции замены значения х на такие: 100, 0.5, -4 и 0.

    В первых двух случаях вы получите число в качестве результата. В третьем случае у вас будет мнимое число. При значении х ноль программа выведет ошибку и обведет результат красным. Если вы нажмете на красное выделение, то увидите описание проблемы:

    Дальше мы поговорим о том, какие имена можно использовать для переменных, а какие нельзя. Существуют такие правила: имя переменной не может начинаться с цифры и в ней нельзя использовать пробелы или знаки операторов. Имена могут начинаться:

    • с любой буквы как большой, так и маленькой;
    • с других символов, которые не являются операторами;
    • с символов из вкладки Математика -> Операторы и символы -> Символы;
    • с символов из таблицы символов ОС Windows.

    Использование переменных доступно, только если вы определите их заранее. Термин «заранее» обозначает, что присвоение значения переменной должно производиться выше или левее выражения, где эта переменная используется. Если вы не объявили переменную заранее, то появится сообщение об ошибке:

    Подстрочные индексы

    Mathcad существует два типа подстрочных индексов:

    1. Описательный подстрочный индекс.
    2. Индекс массива (матрицы).

    Для ввода описательного индекса сначала введите желаемое имя переменной, а потом нажмите комбинацию [Ctrl+-], далее вводите подстрочный индекс.

    Переменная, которая имеет описательный индекс — это простая переменная, которой присвоено имя. Индекс массива сильно отличается от него. Такой индекс можно присвоить, если ввести квадратную скобку [ после имени переменной. Переменная может иметь один или два индекса массива:

    Индекс массива может иметь только числовое значение. При этом не путайте разные типы индексов, так как они довольно схожи визуально.

    Более четко разницу видно, если нажать мышкой на выражение

    Любая переменная может иметь оба индекса одновременно: описательный и индекс массива. Сначала всегда будет прописан описательный.

    Функции

    Использование переменных возможно только при определении их заранее. Но есть исключение из этого правила — определение функции. Можно произвести определение своей функции. Пример ниже.

    Переменная а имеет для функции локальное значение. Она не несет определения за пределами этой функции.

    Если вы присвоили значение переменной а до определения функции, то значение этой переменной не будет меняться в процессе вычисления функции. Внимание: Если вы присвоили переменной такое же имя, как и функции, вы не сможете использовать эту функцию. Переменная и функции должны иметь разные имена.

    Вы не будете сталкиваться с такой проблемой, если будете задавать переменной и функции различные имена. Об обозначениях мы поговорим в уроке 10.

    Функции могут иметь более одной переменной.

    Значения переменных х и у не изменяются и в этой функции.

    Встроенные функции

    Mathcad имеет очень много встроенных функций. Перейдите во вкладку Функции.

    Все функции вы можете увидеть, если нажмете на кнопку Все функции.

    Обратите внимание, что все тригонометрические функции в качестве аргумента получают угол не в градусах, а в радианах. Чтобы использовать градусы нужно выбрать их во вкладке Математика -> Операторы и символы -> Символы.

    Математика в тексте

    В текстовую область можно поместить область вычислений. Так вы сможете использовать в тексте подстрочные и надстрочные символы. Чтобы сделать это, при редактировании текстовой области нужно нажать на кнопку Математика во вкладке Математика -> Области.

    Резюме

    1. Mathcad использует два знака равенства отдельно для определения := и для вычисления =.

    2. Имя переменной нельзя начинать с цифры. Можно использовать для этого только буквы или символы, отличные от символов операторов. Символы можно вводить с панели Математика -> Операторы и символы -> Символы, а также брать из панели символов Windows.

    3. Для определения значения переменной нужно:

    • щелкнуть на пустую область;
    • ввести имя переменной;
    • ввести оператор определения [:=];
    • ввести значение переменной.

    4. Для присвоения переменной подстрочного описательного индекса нужно:

    • нажать мышкой в конце имени переменной;
    • нажать [Ctrl+-];
    • ввести подстрочный индекс.

    5. Для присвоения переменной индекса массива:

    • нажмите мышкой в конце имени переменной;
    • нажмите на клавиатуре на открывающуюся квадратную скобку [;
    • ввести нужный подстрочный индекс.

    6. Определять переменную нужно только выше или левее места использования ее в вычислениях.

    7. Имя функции вводится с теме же правилами, что и имя переменной, с той лишь разницей, что заканчивать имя функции нужно вводом открывающейся скобки [(]. В них будут размещаться аргументы функции.

    8. Переменные в функциях имеют определение только в рамках этой функции.

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

    Глобальное определение в PTC Mathcad 15 и PTC Mathcad Prime 3.0

    Оператор глобального определения позволяет определить выражение (переменную, функцию) в любом месте документа.

    a)

    Рис. 1. Оператор глобального определения в Mathcad 15 (а) и Mathcad Prime 3.0 (б).
    Если выражение определено глобально, то его можно использовать в других операциях независимо от того, выше или ниже эти операции находятся в документе:

    Рис. 2. Выполнение вычислений с глобальным и локальным определением в Mathcad 15 (а) и Mathcad Prime 3.0 (б).

    При необходимости, в Mathcad 15 внешний вид оператора глобального определения можно поменять на символ обычный символ равенства «=». Для это щелкните правой кнопкой мыши по оператору, в контекстном меню выберите View Definition As -> Equal.


    Рис. 3. Изменение внешнего вида оператора глобального определения.
    В Mathcad 15 возможно переопределение переменных, заданных глобально. В Mathcad Prime 3.0 подобное переопределение выдаст ошибку.

    б)
    Рис. 4. Переопределение переменной, заданной глобально, в Mathcad 15 (а) и Mathcad Prime 3.0 (б).

    Чтобы учесть все определения, Mathcad работает по следующему алгоритму:
    1. Первый проход документа сверху вниз – распознавание только операторов глобального определения и вычисление выражений.
    2. Второй проход документа – распознавание операторов локального определения и вычисление выражений с поправкой на выражения, которые определенны локально.
    Это важно учитывать, если Вы переопределяете выражения, заданные глобально. Демонстрация этого алгоритма приведена на рисунке 5.


    Рис. 5. Документ с переопределенными выражениями.
    Однако в Mathcad Prime 3.0 выражения, определенные глобально, переопределить уже нельзя (ни локально, ни глобально) – Mathcad выдаст ошибку (рис. 6).


    Рис. 6. Попытка переопределить переменную, заданную глобально в Mathcad Prime 3.0.

    Другой важный момент при использовании глобального определения: если Вы используете переменные для определения выражений, заданных глобально (т.е. используете переменную справа от символа ?), то эта переменная также должна быть определена глобально, причем выше того выражения, в котором она используется. Иначе переменная не будет определена (рис. 7).

    б)
    Рис. 7. Неправильное использование переменных в выражениях, заданных глобально, в Mathcad 15 (а) и Mathcad Prime 3.0 (б).

    Содержание

    1. Ошибка «Здесь необходимо указать имя»
    2. Ошибка «Здесь необходимо указать имя»
    3. Что значит здесь нужно указать имя маткад
    4. Ошибка «Здесь необходимо указать имя» — MathCAD — Ответ 9806907
    5. Здесь необходимо указать имя mathcad

    Ошибка «Здесь необходимо указать имя»

    Ошибка «Здесь необходимо указать имя»
    При написании функции маткад не хочет её воспринимать, выводя, что нужно указать имя. В чём может.

    Ошибка «здесь необходимо указать имя»
    Построить зависимость критической толщины эпитаксиального слоя от его состава.

    Ошибка — здесь необходимо указать имя
    Здравствуйте. Такая проблема — после того как ставлю знак модуля, пишет ошибку: «здесь необходимо.

    Здесь необходимо указать имя
    Что бы это могло значить?

    Ошибка, дифур, «Эту функцию здесь использовать нельзя»
    Не могу решить нелинейное дифференциальное уравнение, при решении Odesolve выдаёт «Эту функцию.

    Типичная ошибка «Эту функцию здесь использовать нельзя»
    Здравствуйте! Понимаю, что ошибка частая, банальная, но, просмотрев ряд тем на форуме, решить ее не.

    Ошибка «Эту функцию здесь использовать нельзя» (rkfixed)
    Здравствуйте, уважаемые форумчане. Написал небольшой расчет с диффиренциальными уравнениями. Вроде.

    Ошибка «Эту функцию здесь использовать нельзя» (rkfixed)
    Здравствуйте, уважаемые форумчане. Возникла проблема при задании задачи Коши; необходимо, чтобы.

    Источник

    Ошибка «Здесь необходимо указать имя»

    Вложения

    LabProject 1_1.zip (25.2 Кб, 19 просмотров)

    Ошибка «Здесь необходимо указать имя»
    file:///C:/Users/User/Desktop/123123.PNG Выдает ошибку, в чем дело?

    Ошибка «здесь необходимо указать имя»
    Построить зависимость критической толщины эпитаксиального слоя от его состава.

    Ошибка — здесь необходимо указать имя
    Здравствуйте. Такая проблема — после того как ставлю знак модуля, пишет ошибку: «здесь необходимо.

    Здесь необходимо указать имя
    Что бы это могло значить?

    Типичная ошибка «Эту функцию здесь использовать нельзя»
    Здравствуйте! Понимаю, что ошибка частая, банальная, но, просмотрев ряд тем на форуме, решить ее не.

    Ошибка «Эту функцию здесь использовать нельзя» (rkfixed)
    Здравствуйте, уважаемые форумчане. Возникла проблема при задании задачи Коши; необходимо, чтобы.

    Ошибка, дифур, «Эту функцию здесь использовать нельзя»
    Не могу решить нелинейное дифференциальное уравнение, при решении Odesolve выдаёт «Эту функцию.

    Ошибка «Эту функцию здесь использовать нельзя» (rkfixed)
    Здравствуйте, уважаемые форумчане. Написал небольшой расчет с диффиренциальными уравнениями. Вроде.

    Источник

    Что значит здесь нужно указать имя маткад

    Если у встроенных переменных, функций и операторов имена (символы) уже зафиксированы [1] , то новым таким объектам (идентификаторам) пользователь вправе давать любые имена. Ограничения здесь связаны, во-первых, с некими традициями и, во-вторых, со спецификой самого пакета Mathcad.

    На рис. 1.42 показаны символы — греческие буквы и спецсимволы из центра ресурсов Mathcad, которые помимо символов, отображенных на клавиатуре компьютера, можно использовать при формировании имен переменных, функций и операторов.

    В панели греческих букв есть и математические инструменты — константа p , гамма-функция G ( см . рис. 1.37) и две функции-ступеньки Ф и e . Кроме того, Ω — это ом , единица электрического сопротивления. Не следует забывать, что многие спецсимволы вводятся нажатием комбинации клавиш Alt > + код. Знак градуса (º), например, можно ввести с помощью комбинации Alt >+0176.

    Рис. 1.42. Греческие буквы и спецсимволы в Mathcad

    Комбинация клавиш Shift >+ Ctrl >+ k > позволяет вводить в имена переменных, во-первых, символы, которые в традиционном программировании запрещены к использованию (пробел, тире, запятая и др.), и, во-вторых, символы, закрепленные в среде Mathcad за некоторыми операторами ( : , = , $ , @ и др. [2] ). После нажатия этой комбинации клавиш при вводе имени переменной цвет курсора меняется с традиционного синего на красный, что будет признаком некоего аварийного режима работы в среде Mathcad, который блокирует ввод некоторых операторов через прикрепленные к ним символы и вводит в имя сами эти символы. Например, при красном цвете курсора нельзя будет ввести оператор определения переменной или функции нажатием клавиши ( см . разд. 1.1), т. к. этот символ будет просто приписываться к имени переменной, формирование которой по идее уже должно быть закончено, раз набирается символ . Чтобы курсор стал опять синим, необходимо еще раз нажать комбинацию клавиш Shift >+ Ctrl >+ k >. На рис. 1.43 показано, как эта комбинация позволила ввести в расчет нестандартное имя переменной US$ (доллар США). Таким же способом в расчет можно ввести и другие «говорящие» переменные: кг /ч (массовый расход), мм рт . ст. (единица давления) и мг-экв /л (единица концентрации вещества).

    Рис. 1.43. Глушение ввода специальных клавиш

    Точку в имя переменной можно вставить так — ввести переменную с текстовым индексом, у которой до точки стоит невидимый пробел ( см . разд. 1.2.3 ) . Первая точка в имени переменной будет, естественно, невидима (она будет отмечать начало текстового индекса — см . переменную мм рт . ст. на рис. 1.43), зато все последующие видимы. Правда, при этом размер такой переменной будет несколько уменьшен и она будет сдвинута вниз.

    Читатель может заметить пробел [3] , проставленный в начале имени переменной мг-экв /л , формирование которой показано на рис. 1.43. Этот пробел не случаен. Дело в том, что некоторые символы не могут стоять впереди имен переменных. Это касается в первую очередь цифр. И это понятно. Если имя переменной состоит из одного символа, который является цифрой, то это может приводить к курьезам такого рода: 3:=7 7:=3 — переменной с именем 3 присваивается значение, равное семи, а переменной с именем 7 — три и т. д. Иногда (в некоторых версиях Mathcad в сочетании с некоторыми версиями Windows ) не допускается указывать первыми в именах переменных некоторые буквы кириллицы . А на пробел, как это не покажется странным, данное ограничение не распространяется. Поэтому русское имя переменной или имя с сомнительным первым символом желательно предварить пробелом. Пробел или несколько пробелов сами могут быть именем переменной, делая ее невидимой ( см . разд. 1.2.3).

    Более сложные имена переменных можно ввести в Mathcad-документ через вторую «именную» комбинацию клавиш — Shift >+ Ctrl >+ j > (рис. 1.44).

    На рис. 1.44 показано формирование переменной с довольно сложным именем H2PO4 — (одновалентный анион ортофосфорной кислоты — дигидрофосфат-ион ), состоящей фактически из трех переменных — переменной H2 ( H.2 — переменная Н с индексом 2 ), невидимо умноженной на переменную PO4 ( PO.4 ), которая, в свою очередь, возведена в степень переменной, имя которой «минус» ( Shift >+ + Ctrl >+ k >, ). Комбинация клавиш Shift >+ Ctrl >+ j > вводит в документ местозаполнитель , обрамленный квадратными скобками, где можно использовать математические операторы, формирующие сложное имя переменной. У этого способа один недостаток — такие сложносоставные имена переменных, способные включать в себя операторы Mathcad, утяжелены квадратными скобками. Кроме того, в некоторых версиях Mathcad такие переменные дают сбой при приложении к ним инструментов символьной математики.

    Рис. 1.44. Ввод сложносоставных имен

    [1] Хотя и их можно переопределять, возвращая некоторым функциям их более привычное написание:
    arctan ( x ):= atan ( x ) и т. д.

    [2] Это атавизм DOS-версий Mathcad, когда не было кнопок-значков, а график, например, нужно было вводить через нажатие клавиши @> (разработчики решили, что этот символ больше всего похож на график).

    [3] Он виден из-за особой текущей конфигурации курсора, который отделяет первый и второй символы имени переменной.

    Источник

    Ошибка «Здесь необходимо указать имя» — MathCAD — Ответ 9806907

    При написании функции маткад не хочет её воспринимать, выводя, что нужно указать имя. В чём может быть причина донной ошибки?

    Вложения

    LabProject 1_1.zip (25.2 Кб, 19 просмотров)

    Ошибка «Здесь необходимо указать имя»
    file:///C:/Users/User/Desktop/123123.PNG Выдает ошибку, в чем дело?

    Ошибка «здесь необходимо указать имя»
    Построить зависимость критической толщины эпитаксиального слоя от его состава.

    Ошибка — здесь необходимо указать имя
    Здравствуйте. Такая проблема — после того как ставлю знак модуля, пишет ошибку: «здесь необходимо.

    Здесь необходимо указать имя
    Что бы это могло значить?

    Типичная ошибка «Эту функцию здесь использовать нельзя»
    Здравствуйте! Понимаю, что ошибка частая, банальная, но, просмотрев ряд тем на форуме, решить ее не.

    Ошибка «Эту функцию здесь использовать нельзя» (rkfixed)
    Здравствуйте, уважаемые форумчане. Возникла проблема при задании задачи Коши; необходимо, чтобы.

    Ошибка, дифур, «Эту функцию здесь использовать нельзя»
    Не могу решить нелинейное дифференциальное уравнение, при решении Odesolve выдаёт «Эту функцию.

    Ошибка «Эту функцию здесь использовать нельзя» (rkfixed)
    Здравствуйте, уважаемые форумчане. Написал небольшой расчет с диффиренциальными уравнениями. Вроде.

    Источник

    Здесь необходимо указать имя mathcad

    Это приложение является алфавитным списком диагностических сообщений об ошибках в математических выражениях. Они появляются при попытке ввода, обработки или вычисления выражения, в котором Mathcad обнаруживает ошибку. Для описания диагностических сообщений по работе символьного процессора см. главу «Символьные вычисления».

    Если Mathcad находит ошибку при попытке вычисления функции, определенной пользователем, он помечает сообщением об ошибке имя функции, а не ее определение. В этом случае проверьте определение функции, чтобы понять, что вызвало ошибку.

    Вложенные блоки — ключевое слово Given использовано дважды в строке без последующих Find или Minerr. Mathcad не разрешает вложенные блоки решения уравнений, хотя можно определить функции через блоки решения уравнений и затем использовать их в других блоках решения уравнений. См. главу «Решение уравнений»;

    Диапазон недопустим — попытка использования дискретного аргумента внутри блока решения уравнений. Чтобы решать систему уравнений для многих значений параметров, см. раздел «Как лучше искать корни» на стр.353;

    Дисбаланс скобок (unmatched parenthesis) — вы ввели или пытались вычислить выражение, содержащее левую скобку без соответствующей ей правой. Исправьте выражение, удалив левую скобку или поставив в нужном месте правую;

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

    Длинный входной список (list too long) — введено слишком много элементов в списке, разделенном запятыми. Это может произойти при попытке вывести на график больше выражений, чем допускается Mathcad, или при попытке создать таблицу с более чем пятьюдесятью элементами;

    Должен быть диапазон (must be range) — что-либо, не являющееся дискретным аргументом, использовано в месте, где он требуется, например, в качестве индекса для суммирования. Индекс для суммирования располагается под знаком суммы и должен быть предварительно определен как дискретный аргумент;

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

    Должно быть безразмерным (must be dimensionless) — указанное выражение имеет размерность, хотя ситуация требует, чтобы оно было безразмерным. Единицы измерения нельзя использовать для аргументов некоторых функций (например, cos и In) или в показателе степени. Например, выражение co5 (lL) является недопустимым;

    Должно быть вектором (must be vector) — это сообщение отмечает скаляр или матрицу в операции, требующей векторный аргумент;

    Должно быть вещественным (must be real) — мнимое или комплекснозначное выражение использовано там, где Mathcad требует вещественнозначное выражение. Например, Mathcad требует вещественнозначные аргументы для некоторых встроенных функций и вещественнозначные индексы;

    Должно быть возрастающим (must be increasing) — вектор, элементы которого не расположены в порядке строгого возрастания, использован в качестве аргумента одной из функций Ispline, pspline, cspline, interp, linterp и hist. Первый аргумент этих функций должен быть вектором со строго возрастающими элементами. (При этом следует помнить о том, что, если ORIGIN есть О, Mathcad включает в число элементов вектора элемент с нулевым индексом, и если он не определен явно, его значение полагается равным нулю);

    Должно быть массивом (must be array) — попытка выполнить операцию, которую можно выполнять только на массиве, со скаляром. Например, можно увидеть это сообщение об ошибке при попытке транспонировать число, поскольку в таком контексте операция транспонирования не имеет смысла;

    Должно быть многомерным массивом — следует использовать матрицу, имеющую более чем одну строку либо более чем один столбец;

    Должно быть ненулевым (must be nonzero) — попытка вычислить встроенную функцию от нуля, хотя для нуля она не определена;

    Должно быть положительным (must be positive) — это сообщение отмечает чертеж, в котором одна из границ по оси, использующей логарифмический масштаб, равна нулю или отрицательна. Mathcad может выводить на график вдоль логарифмической оси только положительные значения;

    Должно быть скаляром (must be scalar) — векторное или матричное выражение использовано там, где требуется скаляр, например в качестве аргумента функции identity;

    Должно быть трехмерным вектором (must be 3-vector) — попытка найти векторное произведение от операндов, не являющихся трехмерными векторами. Векторное произведение определено только для векторов с тремя элементами;

    Должно быть целым (must be integer) — использовано нецелое выражение там, где требуется целое, например как аргумент функции identity или как индекс, нижний или верхний. (Хотя можно определять дискретные аргументы с дробными значениями, например х: =1, 1.1 .10 — их нельзя использовать как нижние индексы);

    Допустим только один массив (only one array allowed) — попытка ввести более чем один массив в поле ввода для карты линий уровня. Mathcad в этом случае допускает не более чем один массив, поскольку карта линий уровня может представлять не более чем одну функцию одновременно;

    Дублирование (duplicate) — попытка определить одну переменную дважды в одном определении. Это сообщение появляется, когда вы создаете вектор по левую сторону определения и используете одно имя в этом векторе дважды;

    Индекс вне границ (index out of bounds) — это сообщение помечает индекс, ссылающийся на несуществующее значение массива. Такое сообщение можно видеть при использовании отрицательного верхнего или нижнего индекса (или индекса, меньшего, чем ORIGIN, если ORIGIN > 0) либо при использовании верхнего или нижнего индекса для ссылки на элемент массива с номером, большим, чем возможно согласно определению в документе;

    Мало нижних индексов (too few subscripts) — для матрицы использован один нижний индекс. Указание на элементы матрицы возможно при помощи двух нижних индексов, разделяемых запятой;

    Не может быть определено (cannot be denned) — слева от символа определения (: =) помещено неопределяемое выражение. Mathcad допускает следующие виды выражений слева от символа определения:

    Простое имя переменной: х

    Имя переменной с нижним индексом: х;

    Имя переменной с верхним индексом: x

    Матрица имен переменных, порожденная нажатием [Ctri] M. Матрица может содержать лишь простые имена переменных или имена переменных с нижними индексами

    Имя функции с аргументами: j (x, у)

    Использование других видов выражений некорректно. Если нужно вычислить результат вместо определения переменной, следует поставить знак равенства (=) вместо нажатия двоеточия;

    Не содержит верхних индексов (cannot take subscript) — верхний индекс использован не для матрицы, а для чего-то другого;

    Не содержит нижних индексов (cannot take subscript) — нижний индекс использован не для вектора или матрицы, а для чего-то другого;

    Не является именем (not a name) — число или другая комбинация символов использованы там, где Mathcad требует имя, например как второй аргумент функции root. Примеры того, что не является именем: / (X)) (функция), 3 (число), х + 2 (выражение);

    Неверная операция с массивом (illegal array operation) — ‘попытка применить к вектору или матрице функцию или оператор, которые требуют скалярные аргументы. Например, это сообщение можно видеть при попытке применения функции синус к квадратному корню из матрицы Если же нужно применить оператор или функцию к каждому элементу матрицы, используйте оператор векторизации, как описано в главе «Векторы и матрицы»;

    Неверное имя функции (illegal function name) — использовано выражение, которое Mathcad интерпретирует как функцию, но имя функции неверно. Это сообщение появится, например, в случае использования числа как имени функции: 6 (х). Чаще всего оно возникает, если пропущен оператор типа *, что заставляет Mathcad интерпретировать скобки в выражении как признак функции, а не как группирование операций;

    Неверное употребление ORIGIN (illegal ORIGIN) — ORIGIN определен через нецелое значение или значение с величиной, большей 16 000 000. Это сообщение отмечает первое использование индекса после неверного употребления ORIGIN;

    Неверный контекст (illegal context) — оператор или функция использованы в контексте, запрещаемом Mathcad. Например, это сообщение можно видеть в следующих случаях:

    точка с запятой использована где-либо вне корректного определения диапазона. (Точка с запятой в этом случае выводится на экран как многоточие) Можно использовать точку с запятой только в определении диапазона для дискретного аргумента функции WRITE или APPEND использованы где-либо вне левой стороны определения. Эти функции не могут применяться в выражениях или в правой части определения имя существующей функции использовано как имя переменной или имя существующей переменной использовано как имя функции;

    Неверный множитель (illegal factor) — в поле ввода единиц в конце выражения, возвращающего численный результат, введено неверное выражение. Допустимы вещественные ненулевые скалярные значения;

    Неверный порядок (invalid order) — отмечает попытку вычислить производную с указанным порядом, который не является целым числом от 0 до 5 включительно;

    Неверный размер вектора (wrong size vector) — это сообщение указывает на функцию преобразования Фурье, аргумент которой имеет число элементов, отличное от допустимого, fft требует в качестве аргумента вектор с количеством элементов 2°, где п — целое число, большее 1. ifft требует вектор с 1+2″ элементами, где n — целое число, большее 0. Если ORIGIN равен нулю, Mathcad автоматически включает элемент с нулевым индексом как компоненту вектора-аргумента;

    Некорректная точность аппроксимации (illegal tolerance) — это сообщение отмечает выражение, использующее TOL интеграл, или вхождения Root, Find или Minerr, для которых TOL 3> 1 или TOL 307 ). Это может случиться не только когда велик сам по себе конечный результат, но и в случае превышения этого предела любым промежуточным результатом;

    Потеряны значащие цифры (significance lost) — это сообщение отмечает попытку вывести функцию от величины, которая лежит за пределами диапазона, где зна чение функции может быть вычислено точно. Например, оно появится при попытке вычислить sin (10 100 ). Поскольку величина sin (IQi 00 ) зависит от совершенно определенных цифр числа IQi 00 , то любое значение, которое Mathcad сможет вернуть, не будет иметь значащих цифр. Вместо возвращения результата, точность которого не обоснована, Mathcad выдает данное сообщение;

    Прервано (interrupted) — вы прервали Mathcad нажатием клавиши [Esc] при выполнении вычислений. Для пересчета помеченного выражения щелкните мышью на выражении и нажмите [F9] ;

    Пропущенный знак операции (missing operator) — в выражении или уравнении пропущен один из знаков операции;

    Пропущенный операнд (missing operand) — в выражении пропущен один из операндов. Например, это сообщение можно видеть при вводе знака плюс без ввода слагаемых и последующем нажатии знака равенства. Mathcad показывает поле ввода (маленький прямоугольник) на месте пропущенного операнда;

    Размерность в невещественной степени — выражение с единицами измерений возведено в комплекснознач-ную или мнимую степень. Если выражение имеет размерность, оно может быть возведено только в вещест-веннозначную степень, иначе Mathcad не может определить единицы, в которых выражен результат;

    Решение не найдено (did not find solution) — Mathcad не нашел решения системы уравнений. Чтобы блок решения уравнений выдал в качестве решения приближающий результат, используйте функцию Minerr вместо функции Find. Подробнее см. главу «Решение уравнений»;

    Слишком большое выражение (equation too large) — для вычисления в Mathcad введено слишком большое выражение. Разделите выражение на два или более подвыражений;

    Слишком большой нижний индекс (subscript too large) — попытка использовать нижний индекс, превышающий пределы, допускаемые Mathcad;

    Слишком велико, чтобы отобразить (too large to display) — попытка вывести вектор или матрицу размера больше, чем допускается Mathcad;

    Слишком мало аргументов (too few arguments) — указанное выражение содержит функцию со слишком малым количеством аргументов. Для встроенных функций число аргументов фиксировано; см. главу «Встроенные функции». Для функций пользователя число параметров зависит от определения, сделанного в рабочем документе;

    Слишком мало ограничений (too few constraints) — это сообщение указывает на Find или Given с количеством ограничений, меньшим числа переменных. Добавьте несущественные ограничения или уменьшите число переменных, относительно которых ищется решение. Подробнее см. главу «Решение уравнений»;

    Слишком мало элементов (too few elements) — это сообщение указывает на преобразование Фурье, кубический сплайн или функцию линейной интерполяции, применяемую для вектора со слишком малым количеством компонентов. Преобразование Фурье и обратное к нему требуют как минимум четыре элемента вектора;

    Слишком много аргументов (too many arguments) — указанное выражение содержит функцию со слишком малым количеством аргументов. Для встроенных функций число аргументов фиксировано; см. главу «Встроенные функции». Для функций пользователя число параметров зависит от определения, сделанного в рабочем документе;

    Слишком много индексов (too many subscripts) — использовано два или более нижних индекса для вектора либо три или более индекса для матрицы;

    Слишком много ограничений (too many constraints) — в блоке решения уравнений используются более пятидесяти ограничений;

    Слишком много точек (too many points) — попытка вывести на график точек больше, чем Mathcad может обработать для одного графика;

    Слишком много файлов — открыто слишком много файлов с использованием таких функций доступа к файлам, как WRITEPRN, READPRN, или других функций этого типа. Одновременно таким образом может быть открыто не более 30 файлов. Выберите команду Присоединить к файлу из меню Файл, введите имя од ной из используемых файловых переменных и нажмите «Отсоединить»;

    Только символьный оператор — попытка получить численный результат у выражения, которое должно быть вычислено только символьно. Некоторые операторы должны вычисляться только символьно, как описано в главе 17 «Символьные вычисления»;

    Файл не найден (file not found) — система не нашла файла данных, указанного в качестве параметра для функции READ или READPRN, либо для импорта в графическую область.

    Глава 11 Входной язык системы MathCAD 7.

    11.1. Базовые понятия входного языка системы

    Система MathCAD практически избавляет нас от необходимости программировать решение многих задач. Уходит в прошлое подход, когда пользователь, прежде чем вычислить определенный интеграл или производную заданной функции либо просто рассчитать ряд ее значений, был вынужден изучать основы программирования на Фортране, Бейсике или Паскале, а затем составлять свои простенькие и не очень надежные программы или же разыскивать их в статьях и книгах, подобных [2], и самостоятельно загружать эти программы в ПК.

    Впрочем, нельзя не отметить, что такие программы (если они составлены корректно и профессионально) обеспечивают существенно большую скорость проведения вычислений, чем MathCAD. Однако время, необходимое на их создание, намного превышает время на подготовку задач к решению в системе MathCAD.

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

    Поэтому, рассматривая входной язык системы как язык программирования, мы можем выделить в нем типичные понятия и объекты, такие, как идентификаторы, константы, переменные, массивы и другие типы данных, операторы и функции, управляющие структуры и т. д. Четкое представление об их возможностях и правилах применения (синтаксисе) весьма полезно при решении задач умеренной и высокой сложности.

    Ниже описан входной язык системы MathCAD PLUS 7.0. Он содержит все операторы и функции, которые были во всех предшествующих версиях системы — MathCAD 3.0/4.0/5.0/ PLUS 5.0/6.0/PLUS 6.0 PRO, что позволяет использовать материал этой главы пользователям, работающим с любой из указанных версий. Для этого в приведенных ниже изображениях экрана, как правило, удалены элементы интерфейса, характерные для MathCAD 7.0 PRO. Функции, имеющиеся только в профессиональных версиях (с приставкой PRO в названии), выделены символом Ф.

    Алфавит MathCAD 7.0 PRO

    Алфавит входного языка системы определяет совокупность символов и слов, которые используются при задании команд, необходимых для решения интересующего пользователя класса задач. Алфавит системы MathCAD содержит:

    • строчные и прописные латинские буквы;

    • строчные и прописные греческие буквы;

    арабские цифры от 0 до 9;

    имена встроенных функций;

    строчные и прописные буквы кириллицы (при работе с русифицированными документами).

    К укрупненным элементам языка относятся типы данных, операторы, функции пользователя и управляющие структуры. Все эти элементы присущи и любому другому языку программирования.

    К типам данных относятся числовые константы, обычные и системные переменные, массивы (векторы и матрицы) и данные файлового типа. По числу типов данных система MathCAD несколько уступает современным языкам программирования (к примеру, в ней нет данных типа записей, множеств и др.). Это связано с определенной специализацией языка, направленной на математические расчеты общего характера. Впрочем, тенденция расширения типов данных в MathCAD налицо; в конце этой главы описан новый тип данных (строковые), которые появились в MathCAD 7.0 PRO.

    Константами называют поименованные объекты, хранящие некоторые значения, которые не могут быть изменены. В качестве имени числовых констант используются их числовые значения (к примеру, значения констант 0 и 1 есть соответственно ноль и единица). В системе MathCAD используются и числовые константы, значениями которых являются числа с разной системой исчисления: десятичные, восьмеричные или шестнадцатеричные.

    Числовые константы задаются с помощью арабских цифр, десятичной точки (а не запятой) и знака — (минус). Например:

    123 — целочисленная десятичная константа;

    12.3 — десятичная константа с дробной частью;

    12.3*10-5 —десятичная константа с мантиссой (12.3) и порядком-5.

    Эти формы представления числовых констант естественны, и их не стоит обсуждать, за исключением двух важных аспектов. Порядок числа вводится умножением мантиссы на 10 в степени, определяющей порядок. Во многих языках программирования принят ввод чисел в виде 12.3е-5, где разделительный символ е указывает на порядок. Этот не вполне естественный для математики ввод числа в системе MathCAD устранен.

    Далее надо отметить, что знак умножения* при выводе числа на экран меняется на привычную математикам точку, а операция возведения в степень (с применением спецзнака ^) отображается путем представления порядка в виде надстрочного элемента. Десятичные числа имеют основание 10. Диапазон их возможных значений лежит в пределах от 10^07 до 10^307 (это машинная бесконечность и машинный ноль).

    Восьмеричные и шестнадцатеричные числа

    Система MathCAD может работать с восьмеричными и шестнадцатеричными числами. Восьмеричные числа имеют основание 8, так что один их разряд может иметь значения от 0 до 7. Такие числа в конце отмечаются латинской буквой О (от слова octal — восьмеричное).

    Шестнадцатеричные числа имеют основание 16, и их разряд может иметь значения:

    HEX 0123456789ABCDEF DEC О 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

    Шестнадцатеричные числа имеют в конце отличительный признак в виде буквы h или Н (от слова hexagonal — шестнадцатеричное). Под сокращенным названием этих чисел HEX приведены их десятичные значения DEC (от decimal — десятичное).

    Применение восьмеричных и шестнадцатеричных чисел в обычной математике ограничено, и в дальнейшем мы эти числа (а также константы на их основе) использовать не будем. Однако отметим, что если шестнадцатеричное число начинается с буквы (например, АВС0), то система будет путать его с возможным именем переменной. Для устранения потенциальных ошибок такие числа надо начинать с цифры 0 (ноль). В математических выражениях можно комбинировать числа различного типа (например, 10+ 0eh = 18H).

    Большинство вычислений система выполняет как с действительными, так и с комплексными числами, которые обычно представляются в алгебраическом виде:

    Здесь ReZ — действительная часть комплексного числа Z, ImZ — его мнимая часть, а символы i или j обозначают мнимую единицу, т. е. корень квадратный из -1. Такое представление характерно и для системы MathCAD (за исключением того, что знак равенства не есть знак присваивания). Итак, если ReZ = 2, а ImZ = 3, то комплексная числовая константа в системе MathCAD должна быть задана в виде 2+ г*3 или 2+j*3.

    Однако система не всегда знает, какой символ применить для обозначения мнимой единицы. Поэтому перед использованием любых операций с комплексными числами полезно вначале определить i или,/’ как мнимую единицу (т. е. присвоить им значение квадратного корня из -1).

    В системе может применяться особый вид констант — единицы измерения размерных величин. Помимо своего числового значения они характеризуются еще и указанием на то, к какой физической величине они относятся. Для этого указания используется символ умножения. В системе MathCAD заданы следующие основные типы физических величин: time (время), length (длина), mass (масса) charge (заряд) и др. При необходимости их можно изменить на другие.

    В описываемую версию MathCAD включены данные строкового типа. Как обычно, строковая константа — это строка, заключенная в кавычки, например:

    «My_name» или «My first example». В строковую константу могут входить один или несколько символов либо слов.

    Переменные являются поименованными объектами, имеющими некоторое значение, которое может изменяться по ходу выполнения программы. Имена констант, переменных и иных объектов называют идентификаторами. Тип переменной определяется ее значением; переменные могут быть числовыми, строковыми, символьными и т. д.

    Идентификаторы в системе MathCAD могут иметь практически любую длину, и в них могут входить любые латинские и греческие буквы, а также цифры. Однако начинаться идентификатор может только с буквы, например:

    х, xl, alfa, X_coordinate. Кроме того, идентификатор не должен содержать пробелов. Некоторые спецсимволы (например, знак объединения _) могут входить в состав идентификаторов, другие (например, знаки операторов арифметических действии) — недопустимы. Нельзя использовать для идентификаторов буквы русского языка. Строчные и прописные буквы в идентификаторах различаются. Идентификаторы должны быть уникальными, т. е. они не могут совпадать с именами встроенных или определенных пользователем функций.

    Переменные могут также быть строкового типа, например N:=»My_name». Для обработки строковых констант и переменных в MathCAD 7.0 PRO введен ряд строковых функций, которые мы рассмотрим в дальнейшем. Заметим, что этот вид данных в прежних версиях системы MathCAD отсутствовал.

    В MathCAD содержится небольшая группа особых объектов, которые нельзя отнести ни к классу констант, ни к классу переменных. Их правильнее считать системными переменными, имеющими предопределенные системой начальные значения. Ниже указаны эти объекты и приведены их начальные значения (в скобках):

    Объект Ввод Назначение

    л Ctrl+P Число «пи» (3.14..)

    е е Основание натурального

    Ctrl+Z Системная бесконечность (1(^307)

    TOL Погрешность численных методов (0.001)

    ORIGIN Нижняя граница индексации массивов (0)

    PRNCOLWIDTH Число столбцов оператора WRITEPRN (8)

    PRNPRECISSION Число десятичных знаков, используемых оператором WRITEPRN (4)

    FRAME Переменная счетчика кадров при работе с анимационными рисунками (0)

    Пять последних переменных вводятся набором их имен. Значения системных переменных, как и обычных, могут быть в дальнейшем изменены путем присваивания им новых значений. К примеру, значение е можно изменить так, что эта переменная будет означать заряд электрона, а вовсе не основание натурального логарифма. Однако рекомендуется этого не делать во избежание двойного истолкования таких переменных.

    Операторы представляют собой элементы языка, с помощью которых можно создавать математические выражения. К ним, например, относятся символы арифметических операций, знаки вычисления сумм, произведений, производной и интеграла и т. д. После указания операндов (параметров операторов) операторы становятся исполняемыми по программе блоками. MathCAD позволяет задавать и свои новые операторы.

    Функции встроенные и задаваемые пользователем

    MathCAD имеет множество встроенных функций, которые обладают особым свойством: в ответ на обращение к ним по имени с указанием аргумента (или списка аргументов) они возвращают некоторое значение — символьное, числовое, вектор или матрицу. В систему встроен ряд функций, например функция вычисления синуса sin(x) аргумента х, логарифма п(х) и т. д. Наряду со встроенными функциями могут задаваться и функции пользователя, отсутствующие в MathCAD. Благодаря встроенным функциям обеспечивается расширение входного языка системы и его адаптация к задачам пользователя.

    Функции (наряду с операторами) могут входить в математические выражения. Например, в выражении

    Y — переменная, 1 и 2 — числовые константы,* и+ — операторы, ln(x) — встроенная функция с аргументом х. Напоминаем, что встроенные функции в данной книге выделяются полужирным шрифтом (за исключением примеров их записей в документах, где специальных выделений нет).

    При выполнении символьных операций переменные р и е используются только в символьном виде. Это значит, что их числовые значения не вычисляются при выводе результатов вычислений. К примеру, число 2л=6.141. выводится как 2п, а не как приближенное численное значение.

    Присваивание переменным значений

    Обычные переменные отличаются от системных тем, что они должны быть предварительно определены пользователем, т. е. им необходимо хотя бы однажды присвоить значение. В качестве оператора присваивания используется знак:=, тогда как знак = отведен для вывода значения константы или переменной. Попытка использовать неопределенную переменную ведет к выводу сообщения об ошибке — переменная окрашивается в ярко-красный цвет. Существует также жирный знак равенства, который используется либо как признак неравенства в операциях сравнения, либо как оператор приближенного равенства (в прежних версиях этот знак имел вид =).

    В версии MathCAD 7.0 допустимо при первом присваивании вводить знак = (например, х=123). Система сама заменит его на знак:=. Эта возможность скорее исключение, чем правило; знаком присваивания все же является знак:=.

    Если переменной присваивается начальное значение с помощью оператора:=, такое присваивание называется локальным. До этого присваивания переменная не определена и ее нельзя использовать. Однако с помощью знака = (три горизонтальные черточки) можно обеспечить глобальное присваивание, т. е. оно может производиться в любом месте документа. К примеру, если переменной присвоено таким образом значение в самом конце документа, то она будет иметь это же значение и в начале документа. Разумеется, в дальнейшем значение можно изменить и с помощью операции локального присваивания (см. рис. 11.1).

    Рис. 11.1 Особенности локального и глобального присваивания переменным их числовых значений

    Переменные могут использоваться в математических выражениях, быть аргументами функций или операндом операторов. Далее мы рассмотрим особые виды переменных, в частности индексированные (элементы векторов и матриц), а также переменные с заданными пределами их изменения (ранжированные переменные).

    Статус присваивания не следует путать со статусом самих переменных. Все переменные, описанные выше, являются глобальными, поскольку можно определять их в любом месте документа и также в любом месте изменять их значение. Локальные переменные в системе MathCAD содержатся в телах функций пользователя. Эти функции будут рассмотрены ниже.

    Переменные могут быть и размерными, т. е. характеризоваться не только своим значением, но и указанием физической величины, значение которой они хранят. Для присваивания значений таким переменным используется знак =. На рис. 11.2 представлены примеры работы с размерными переменными.

    Проведение расчетов с размерными величинами и переменными особенно удобно при решении различных физических задач. При этом правильная

    Рис. 11.2 Примеры задания и применения размерных переменных

    размерность результата является дополнительным фактором, свидетельствующим о корректности таких расчетов

    Использование незаданной переменной ошибочно Такая переменная отмечается красным цветом (в предшествующих версиях MathCAD — черным фоном) Использование несуществующих переменных в математических выражениях может привести к различным ошибкам Все они диагностируются и требуют исправления для продолжения вычислений

    11.2. Ранжированные переменные и таблицы вывода

    Задание ранжированных переменных

    Ранжированные переменные — особый класс переменных, который в системе MathCAD зачастую заменяет управляющие структуры, называемые циклами (однако полноценной такая замена не является) Эти переменные имеют ряд фиксированных значений (либо целочисленных, либо в виде чисел), с определенным шагом меняющихся от начального значения до конечного.

    Ранжированные переменные характеризуются именем и индексом каждого своего элемента Для создания ранжированной переменной целочисленного типа используется выражение

    где Name — имя переменной, Nbegin — ее начальное значение, Nend — конечное значение, — символ, указывающий на изменение переменной в заданных пределах (он вводится знаком точки с запятой,). Если Nbegin

    MathCAD – это система, ориентированная на пользователя, который не обязан знать абсолютно ничего о программировании. Создатели MathCAD изначально поставили перед собой такую задачу, чтобы дать возможность профессионалам – математикам, физикам и инженерам самостоятельно проводить сложные расчеты, не обращаясь за помощью к программистам. Несмотря на блестящее воплощение этих замыслов, выяснилось, что совсем без программирования MathCAD серьезно теряет в своей силе, в основном, из-за недовольства пользователей, знакомых с техникой создания программ.

    В очень ранних версиях MathCAD встроенного языка программирования не было. Чтобы применять привычные операции проверки условий и организовывать циклы, приходилось изобретать причудливую смесь из встроенных функций if и until, а также комбинаций ранжированных переменных. Но надо отметить, что использование ранжированных переменных – мощный аппарат MathCAD, похожий на применение циклов в программировании. В подавляющем большинстве случаев намного удобнее организовать циклы с помощью ранжированных, чем заниматься для этого программированием.

    И тем не менее встроенный язык программирования MathCADпозволяет решать самые различные, в том числе и довольно сложные, задачи и является серьезным подспорьем для расчетов. Поэтому последние версии MathCAD имеют не очень мощный, но весьма элегантный собственный язык программирования.

    Для вставки программного кода в документы MathCAD имеется специальная панель инструментов. Большинство кнопок этой панели выполнено в виде текстового представления операторов программирования, поэтому их смысл легко понятен. Операторы программирования могут быть введены только с этой панели, но никак не с клавиатуры (можно еще их вводить с помощью сочетаний клавиш, которые приведены в тексте всплывающей подсказки).

    Создание программного блока начинается с команды . Нажатие этой клавиши приведет к тому, что в рабочей области документа появится вертикальная черта, а справа от нее – два пустые поля ввода . Вертикальная черта означает, что строки, находящиеся справа от нее, образуют линейную программную последовательность операций. Эта черта является особенностью программ MathCAD. В полях ввода можно ввести две первые строки программы, а если требуется большее число строк, то необходимо нажимать клавишу столько раз, сколько необходимо строк. Не стоит забывать, что программа является полноценным выражением MathCAD. Это выражение может быть использовано для присвоения значения скалярной или векторной переменной или определения функции, или даже в составе другого выражения, в том числе и другой программы.

    Для определения функции это будет выглядеть следующим образом:

    Внутри программы можно использовать глобальные переменные документа, но изменить их значение внутри программы никак нельзя. Можно создать в программе другие переменные, доступ к которым может осуществляться только из самой программы. Эти переменные называются локальными переменными. Локальные переменные «не видны» извне. Локальная переменная создается с помощью знака локального присвоения с панели Programming. Для оператора локального присваивания, так же как и для операторов обычного и глобального присваивания, можно изменить внешний вид так, чтобы он выглядел как обычный знак равенства. Для этого достаточно вызвать контекстное меню этого оператора и в нем выбрать команду View Definition As/Equal.

    Последняя строка любой программы не должна содержать никаких управляющих операторов. Эта строка задает значение, возвращаемое программой. В качестве этого значения может быть скаляр (число или переменная), вектор или матрица. Таким образом, последняя строка программы может содержать имя локальной переменной либо некоторое математическое выражение, куда входят как локальные, так и глобальные переменные, либо вектор или матрицу.

    Вставить строку программного кода в уже созданную программу можно в любой момент с помощью той же самой кнопки Add Line. Для этого следует поместить на нужное место внутри программы линии ввода.

    Если вертикальная линия ввода находится в начале текущей строки, то нажатие кнопки приведет к появлению новой строки перед текущей строкой, если вертикальная линия ввода находится в конце строки, то нажатие кнопки приведет к появлению новой строки после текущей. Можно выделить только часть текущей строки, что повлияет на положение новой строки в программе (например, если необходимо для некоторого условия выполнить не одно действие, а несколько). Таким образом, основной принцип создания программных модулей заключается в правильном расположении строк кода. Ориентироваться в их действии довольно легко, т.к. фрагменты кода одного уровня сгруппированы в программе с помощью вертикальных черт.

    Проверка условий в программах .

    Программы в MathCAD могут быть не только линейными, но и разветвленными. Одним из вариантов ветвления в программах является проверка условия. Условия могут проверять значения как локальных, так и глобальных переменных, а также выражений, содержащих эти переменные.

    Для проверки условий в программах MathCAD служит оператор if . В поле ввода справа нужно ввести условие. Для ввода условий служит панель Boolean. На этой панели есть кнопки, предназначенные для проверки условий , а также кнопки, предназначенные для вставки логических операций (логическое отрицание, операция «и», операция «или», операция «исключающее или»). Вторые позволяют создавать сложные условия. В поле ввода слева нужно ввести строку программы, которая должна выполняться, если введенное условие истинно.

    Если для условия «истинно» необходимо выполнение нескольких строк программы, надо воспользоваться кнопкой .

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

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

    Другим очень важным элементом при создании нелинейных программ являются циклы. Циклы позволяют повторять несколько раз выполнение одного и того же программного блока. Для создания циклов в MathCAD предусмотрено два оператора for и while.

    В таких циклах создается некоторая переменная-счетчик, значение которой изменяется после каждого выполнения тела цикла. Выход из цикла происходит при достижении этой переменной заданного значения. Этот оператор вводится с панели Programming клавишей for . В поле ввода после слова for следует указать имя переменной – счетчика. Это может быть любое имя, которое не использовалось ранее в программе. Внутри цикла можно использовать эту переменную в любых выражениях, нельзя только присваивать ей никакого значения. В поле ввода после знака следует указать диапазон значений переменной-счетчика. Вводить диапазон в данном случае следует так же, как и при создании ранжированной переменной. Вместо диапазона в данном поле ввода можно указать имя некоторого массива (вектора или матрицы). В этом случае переменная-счетчик будет последовательно принимать значения всех элементов этого массива. Возможность перебора элементов массива не может быть реализована с помощью цикла while, поэтому именно в таких случаях цикл for и является незаменимым. В поле ввода под словом for следует ввести тело цикла.

    Пример: Заполнить вектор числами от xнач до xкон с шагом h. Затем определить сумму элементов этого вектора и найти их среднее арифметическое значение.

    Цикл while – цикл, который выполняется до тех пор, пока выполняется определенное условие.

    В поле ввода справа от слова while следует ввести условие. Это условие строится по тем же правилам, что и в операторе if. Оно будет проверяться после каждого выполнения тела цикла и в тот момент, когда условие перестанет выполняться, повторение тела цикла прекратится. В поле ввода ниже слова while следует ввести тело цикла (напомним, что для ввода нескольких строк в теле цикла надо воспользоваться кнопкой Add Line).

    Пример1: Вычислить сумму с точностью е.

    Пример2: Найти первый элемент, превышающий определенный порог.

    Использование операторов break и continue .

    Иногда возникает необходимость повлиять на выполнение цикла некоторым образом, например, прервать его выполнение по какому-либо условию или выполнять некоторые итерации не так, как другие. Для этого и служат операторы break и continue.

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

    Пример: Выделить из массива все элементы от начала и до первого вхождения в него заданного числа.

    Оператор continue используется для того, чтобы немедленно перейти в начало цикла и начать следующую итерацию. Этот оператор также обычно используется в составе конструкции вида continue if (условие). Оператор continue используется в случаях, когда необходимо чтобы некоторые вычисления производились для одних итераций и не производились для других.

    Пример: Требуется заполнить элементы квадратной матрицы в шахматном порядке.

    Оператор return (возврат значения) .

    Как мы уже указывали, результат выполнения программного модуля помещается, как правило, в последней его строке. Но можно прервать выполнение программы в любой ее точке (например, с помощью условного оператора) и выдать некоторое значение, применив оператор return. В этом случае при выполнении указанного условия значение, введенное в поле ввода после return, возвращается в качестве результата, и никакой другой код больше не выполняется. Вставляется в программу оператор return с помощью одноименной кнопки панели Programming . Пример:

    Система MathCAD предоставляет пользователю некоторый контроль над ошибками, которые могут возникнуть при вычислении выражений или при выполнении программ. Для этой цели служит оператор on error, который можно вставить с помощью одноименной кнопки панели Programming . В поле ввода справа следует ввести выражение или программу, которые необходимо вычислить (известно, что это выражение может содержать ошибку при определенных значениях входных параметров). В поле ввода слева следует ввести выражение, которое будет выполнено вместо правого выражения, если при выполнении последнего возникнет ошибка. Пример: Если аргументу функции присвоено нулевое значение, то в программе возникает ошибка – деление на нуль. Но за счет оператора on error сообщение не выводится, а функции в этой точке присваивается значение, указанное слева от оператора on error – значение машинной бесконечности.

    В поле ввода слева может быть введено текстовое выражение, сообщающее об ошибке

    Конечно, если программа содержит только простейшие математические операции, то никаких ошибок, кроме деления на нуль или превышения наибольшего допустимого числа в ней возникнуть не может. В таких программах оператор on error используется редко. Но для более сложных программ, которые содержат функции решения дифференциальных уравнений, аппроксимации или другие сложные функции MathCAD, использование on error может избавить от многих трудностей.

    Иногда может возникнуть ситуация обратная той, которая была описана выше, т.е. необходимо, чтобы при определенных условиях результатом выражения было сообщение об ошибке, хотя в действительности при этом не возникает ни одной стандартной ошибки MathCAD. Для таких случаев в MathCAD предусмотрена встроенная функция error. В качестве аргумента этой функции нужно в кавычках указать текст сообщения об ошибке, который должен быть выведен. Таким образом, если необходимо, чтобы программа возвращала ошибку при определенном условии, то следует использовать конструкцию вида: error («текст ошибки») if (условие).

    Для того, чтобы иметь возможность нормально вводить текст на русском языке в аргумент функции error (а также во все другие функции со строками), следует изменить шрифт, который используется во встроенном стиле Constant. Для того чтобы этот стиль правильно отображал русские буквы, установите курсор на любом числе или строковом выражении в формульном блоке. При этом в поле на панели инструментов Formatting, отображающем текущий стиль, должно быть написано – Constant. Теперь выберите из раскрывающегося списка шрифтов шрифт, поддерживающий кириллицу.

    1. Вычислить функцию sin(x) с точностью е.

    2. Даны массивы А(5) и В(5). Получить массив С, в который записаны сначала элементы

    массива А в порядке возрастания, а затем элементы массива В порядке убывания

    3. По введенным значениям коэффициентов А, В, С определить корни квадратного уравнения

    4. Дан массив натуральных чисел В(10). Определить, есть ли в нем 4 последовательных числа (например, 1, 2, 3, 4, и т.п.). Напечатать такие группы чисел.

    Источник

    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии

    А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Эта фраза была подхвачена дворянским светом ошибка
  • Этика судьи дилемма права судьи на ошибку