Ошибка маткад недопустимый параметр

0 / 0 / 0

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

Сообщений: 10

1

Ошибка при сохранении файла

07.06.2014, 22:08. Показов 8154. Ответов 6


Студворк — интернет-сервис помощи студентам

Хотел сохранить файл. Маткад сказал, что сохранить не может, но есть резервная копия.
Вышел из маткада. Вхожу — файла нет, всплывает такая вот ошибка

Что делать?

Миниатюры

Ошибка при сохранении файла
 



0



6688 / 4779 / 1999

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

Сообщений: 12,800

07.06.2014, 22:21

2

poarol, версия маткада?



1



0 / 0 / 0

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

Сообщений: 10

07.06.2014, 22:34

 [ТС]

3

MathCad 15

Добавлено через 39 секунд
MathCad 15

Добавлено через 3 минуты
MathCad 15



0



6688 / 4779 / 1999

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

Сообщений: 12,800

07.06.2014, 22:38

4

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



1



0 / 0 / 0

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

Сообщений: 10

07.06.2014, 22:43

 [ТС]

5

До этого много раз сохранял-пересохранял, может быть эти файлы где-то хранятся?



0



6688 / 4779 / 1999

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

Сообщений: 12,800

07.06.2014, 22:47

6

Лучший ответ Сообщение было отмечено poarol как решение

Решение

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



0



0 / 0 / 0

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

Сообщений: 10

07.06.2014, 22:50

 [ТС]

7

хреново



0



0 / 0 / 0

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

Сообщений: 10

1

Ошибка при сохранении файла

07.06.2014, 22:08. Показов 7750. Ответов 6


Студворк — интернет-сервис помощи студентам

Хотел сохранить файл. Маткад сказал, что сохранить не может, но есть резервная копия.
Вышел из маткада. Вхожу — файла нет, всплывает такая вот ошибка

Что делать?

Миниатюры

Ошибка при сохранении файла
 

0

6585 / 4698 / 1957

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

Сообщений: 12,594

07.06.2014, 22:21

2

poarol, версия маткада?

1

0 / 0 / 0

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

Сообщений: 10

07.06.2014, 22:34

 [ТС]

3

MathCad 15

Добавлено через 39 секунд
MathCad 15

Добавлено через 3 минуты
MathCad 15

0

6585 / 4698 / 1957

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

Сообщений: 12,594

07.06.2014, 22:38

4

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

1

0 / 0 / 0

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

Сообщений: 10

07.06.2014, 22:43

 [ТС]

5

До этого много раз сохранял-пересохранял, может быть эти файлы где-то хранятся?

0

6585 / 4698 / 1957

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

Сообщений: 12,594

07.06.2014, 22:47

6

Лучший ответ Сообщение было отмечено poarol как решение

Решение

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

0

0 / 0 / 0

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

Сообщений: 10

07.06.2014, 22:50

 [ТС]

7

хреново

0

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

  • Информация об
    ошибках пользователя.

array size mismatch

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

cannot be defined

указано недопустимое выражение слева
от оператора присваивания.

cannot take subscript

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

cannot take superscript

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

definition stack overflow

переполнение стека определений.

did not find solution

при решении блока MathCAD не может найти
решение для конструкций, указанных в
теле блока. Чтобы увидеть любой результат
(даже не правильный), замените функцию
Find на Minerr.

dimension to nonreal power

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

domain error

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

duplicate

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

equation too large

задано очень длинное равенство для
оценки. Разбейте его на два или более.

error in constant

MathCAD интерпретирует указанное выражение
как недопустимую константу. MathCAD пытается
интерпретировать все, начинающееся с
цифры, как константу. Например, 2x.

error in list

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

file error

MathCAD обнаруживает ошибку при попытке
чтения данных из файла, связанного с
файловой переменной. Используйте команду
FILEName, чтобы
узнать, какой файл связан с указанной
пере менной. Просмотрите содержимое
файла с помощью команды DOS.

file not found

MathCAD не находит файл данных, связанный
с указанной переменной.

illegal array operation

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

illegal context

попытка использовать оператор или
функцию в недопустимом MathCADом контексте.
Вы увидите это сообщение, например, если

  ввели символ «;» не при задании
диапазона,

  использовали функции WRITEилиAPPENDне с
левой стороны равенства,

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

  использовали конструкции с «=»
(вместо ««)
при решении блока.

illegal factor

введено недопустимое выражение в
«знакоместо» в конце равенства.
Если вы ввели выражение на этом
«знакоместе», то оно должно быть
вещественной скалярной величиной.

illegal function name

использовано выражение, которое MathCAD
интерпретирует как функцию с недопустимым
именем. Вы увидите это сообщение, если
будете использовать число в качестве
имени, например 6(x).
Вы также увидите эту ошибку, если опустите
оператор, например +, побуждая тем самым
MathCAD интерпретировать скобки в вашем
равенстве как определение функции
вместо операции группировки.

illegal origin

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

illegal range

неправильно задан диапазон изменения
переменной.

illegal TOLERANCE

это сообщение появится при вычислении
интеграла, производной, использовании
функции root,
если значение параметра точностиTOLбольше1или
меньше0. Укажите
значение встроенной переменной в
пределах от0до1.

incompatible units

вы ввели выражение с операциями сложения
и вычитания членов с несопоставимыми
единицами измерения. Например, при
сложении единицы длины 1Lс единицей массы1M.

indeterminate dimension

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

index out of bound

это сообщение появляется тогда, когда
возникает обращение к несуществующему
элементу массива.

index too large

попытка использовать значение индекса,
превышающее предельное значение для
индекса в MathCADе 8000.

interrupted

вы прервали вычисления до их завершения
с помощью клавиш [Ctrl+A]или [Ctrl+Break]. В
строке сообщения появляется запрос на
подтверждение прерывания:Iterrupt
calculation ?

list too long

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

misplaced comma

недопустимое использование знака «запятая». Например,

missing operand

в выражении отсутствует операнд. MathCAD
показывает «знакоместо» на месте
отсутствующего операнда.

missing operator

отсутствует оператор.

must be 3-vector

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

must be array

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

must be dimensionless

указанное выражение использует единицы
измерения, что в данном контексте не
допустимо. Единицы измерения не допустимы
для аргументов некоторых функций
(например, sin, cos,
ln) или в показателе степени.

must be increasing

нарушено условие возрастания значений
элементов вектора.

must be integer

нарушено условие целочисленности
параметра в выражении.

must be nonzero

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

must be positiv

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

must be range

попытка использовать не индексную
переменную (например, при заполнении
«знакоместа» для индекса в операторе
суммирования).

must be real

операнд должен принимать вещественные
значения.

must be scalar

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

must be square

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

must be vector

использована матрица или скалярная
величина там, где требуется вектор в
качестве операнда.

nested solve block

вы указали два раза ключевое слово
начала блока Given,
не закончив первый блок применением
функцийFindилиMinerr.

no matching Given

используются функции FindилиMinerrбез
указания начала блока.

non-scalar value

попытка использовать нескалярное
выражение. Например,

not enough memory

не достаточно памяти.

not a name

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

not converging

MаthCAD не может дать ответ при вычислении
интеграла, производной, корня, при
решении блока в пределах требуемой
точности. Попытайтесь изменить значение
встроенной переменной TOLили начальное приближение для переменных,
для которых ищется решение с помощью
функцийroot, FindилиMinerr.

overflow

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

significance lost и
significance reduced

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

singularity

попытка оценить значение выражения для
недопустимого значения. Например, при
делении на 0.

stack overflow

переполнен внутренний стек MathCADа.
Упростите выражение, разбив его на два
или более.

too close to a region

между двумя областями новая область не
может быть создана.

too few arguments

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

too few constraints

в блоке Given указано меньше ограничений,
чем число переменных, используемых при
обращении к функциям FindилиMinerr.

too few elements

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

too few subscripts

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

too large to display

размеры вектора или матрицы превышают
максимально допустимые при выводе
MathCADом на экран.

too many arguments

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

too many constraints

тело блока содержит более 50ограничений.

too many subscripts

указано слишком много индексов.

too many points

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

undefined

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

underflow

значение оцениваемого выражения по
абсолютной величине меньше минимально
допустимого в MathCADe числа 10-306.

unmatched parenthesis

не соблюдается баланс открывающихся и
закрывающихся скобок.

wrong size vector

aргумент функции преобразования Фурье
имеет неверное число элементов. Функции
fft,cfft,icfftтребуют
в качестве аргумента вектор с числом
элементов2n,
гдеn- целое
число, большее1.
Функцияifftтребует в качестве аргумента вектор с
числом элементов2n+1,
гдеn- целое,
большее0.

Соседние файлы в папке Пособие по MathCAD

  • #
  • #
  • #
  • #
  • #

Содержание

  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 находит ошибку при попытке вычисления функции, определенной пользователем, он помечает сообщением об ошибке имя функции, а не ее определение. В этом случае проверьте определение функции, чтобы понять, что вызвало ошибку.

Вложенные блоки — ключевое слово 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, и т.п.). Напечатать такие группы чисел.

Источник

Может ли кто-нибудь найти ошибку в выложенном мною файле?

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

1. Судя по е(t)=37sin(11t) период колебаний, навязываемых источником — 0,57 секунды.

2. С другой стороны, величины L и C Такие, что резонансная частота должна быть 0,3 МГц при периоде 3*10е-6 секунды.

3. Однако сопротивление R1 = 6,25 кОм — процесс для собственных колебаний явно апериодический.

То есть для расчета хотя бы трех колебаний на частоте е(t) надо брать интервал времени 1,5…2 секунды.

Но из-за переходного процесса в LC цепи вроде бы надо брать интервал 10е-7 секунды.

Формулы посмотрел на бегу — похоже на правду. И второй вариант — не с контурными токами, а с общим током и напряжением на C.

Прикрепляю свои версии файлов с результатими расчета для предложенных данных и еще дополнительно со своими L, C, R1.

Calculation3_modified.zip

Calculation3_modified_2.zip

RTF.zip


Изменено 25 ноября, 2014 пользователем fider

Альтернативным методом
решения ОДУ является использование
встроенных функций rkfixed(
), Rkadapt( ) или Bulstoer(
). Этот метод несколько
проигрывает первому и в простоте, и в
наглядности, однако иногда приходится
решать ОДУ с помощью альтернативного
метода, например, при следующих
обстоятельствах:

— ОДУ решается в контексте с более
сложными задачами, в которые входят
системы дифференциальных уравнений
(для которых вычислительный блок
неприменим) — в этом случае может
потребоваться единый стиль программирования;

— ответ предпочтительнее получить в
виде матрицы, а не функции;

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

Приведем пример использования
функции rkfixed( ) для решения той же самой
задачи Коши для ОДУ первого порядка у’
=у-у2.
Здесь необходимо явно задать начальное
значение y:=0.01,
описать первую производную D(t,y):=y-y2
и указать количество точек интегрирования
m=100.
Результат получаем
в виде матрицы
y
размерностью (m+1)
x
2.
В первом столбце содержатся значения
аргумента t
в интервале от 0
до 10,
во втором столбце — значения искомой
функции y(t),
рис. 5.2.

Рис. 5.2. Решение задачи Коши
для ОДУ первого порядка вторым способом

Это не лучший стиль решения
задачи Коши. В самом деле, сначала
переменной у
присвоено значение скаляра у=0.01,
а затем этой же переменной присвоено
матричное значение (результат решения
ОДУ). Нужно избегать такого стиля, когда
один и тот же идентификатор используется
при разных типах данных. Неплохим
решением было бы назвать результат
по-другому, например u.

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

Оду высшего порядка

Обыкновенное дифференциальное
уравнение с неизвестной функцией y(t),
в которое входят производные этой
функции вплоть до y(n)(t),
называется ОДУ n-го
порядка. Если имеется такое уравнение,
то для корректной постановки задачи
Коши кроме самого уравнения требуется
задать n
начальных условий на саму функцию y(t)
и ее производные от первого до (n
-1) го порядка включительно. В Mathcad’e
можно решать ОДУ высших порядков как с
помощью вычислительного блока
Given-Odesolve(
), так и альтернативным
методом с использованием функций типа
rkfixed().

Внутри вычислительного
блока
Given-Odesolve(
):

— ОДУ должно быть линейно относительно
старшей производной;

— начальные условия должны
иметь форму y(t0)=b
или y(n)(t0)=b;

В остальном, решение ОДУ
высших порядков ничем не отличается от
решения уравнений первого порядка.

На рис. 5.3 показано решение
дифференциального
уравнения второго порядка
затухающего гармонического осциллятора,
которое описывает, например, колебания
маятника. Для модели маятника функция
y(t)
описывает изменения угла его отклонения
от вертикали, y'(t)
— угловую скорость маятника, y»(t)
— ускорение, а начальные условия,
соответственно, начальное отклонение
маятника у
(0) =0.1 (в радианах) и
начальную скорость у'(0)=
0.

Рис. 5.3. Решение дифференциального
уравнения второго порядка

Альтернативный метод решения
ОДУ высшего порядка реализуется с
помощью трех встроенных функций, которые
позволяют решать поставленную задачу
в форме Коши различными численными
методами:

— rkfixed(y,
t0, t1, m,
D) — метод Рунге-Кутта
с фиксированным шагом;

— Rkadapt(y,
t0, t1, m,
D) — метод Рунге-Кутта
с переменным шагом;

— Bulstoer(y,
t0, t1, m, D)
— метод
Bulirsch-Stoer;

— у
— вектор начальных значений в точке t0
размерностью n
x1;

— t0
— начальная точка интервала;

— t1
— конечная точка интервала;

— m
— число шагов, на которых численный метод
находит решение;

— D
— векторная функция
дифференциальных уравнений размером
n
x1
от двух аргументов — скалярного t,
по которому
взяты производные
и векторного у,
элементы которого являются младшими
производными искомой функции.

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

методику формирования
векторной функции D(t,y).
Для этой цели нужно разрешить уравнение
относительно старшей производной

Затем
следует в этом уравнении выполнить
замену производных компонентами вектораy:

Врезультате замены получим:

После этого можно записать
векторную функцию D(t,y):

Векторная
функцияD(t,y)
имеет количество компонентов, равное
порядку дифференциального уравнения.
Поскольку младших производных нет, то
вместо уравнений записываются их
обозначения (y1
и y2).
Вместо старшей производной записывается
правая часть y3.
Начальные условия должны задаваться
для искомой функции и каждой младшей
производной, например:

Каждая из приведенных
функций выдает решение в виде матрицы
размером (m+1)
х
(n+1).
В ее левом столбце находятся значения
аргумента t,
делящие интервал на равномерные шаги,
а в остальных n
столбцах — значения искомых функций
y0(t)
,y1(t),
y2(t)…,
рассчитанные для этих значений аргумента.
Поскольку всего точек (помимо начальной)
m,
то строк в матрице решения будет всего
m+1.

В подавляющем большинстве
случаев достаточно использовать функцию
rkfixed(
), как это показано
на рис. 5.4 на примере решения системы
ОДУ модели осциллятора с затуханием:

Рис. 4.4. Решение системы ОДУ
второго порядка

Система ОДУ на рис. 5.4
задается с помощью векторной функции
D(t,y),
составленной по описанной выше методике.
Такой же размер имеет вектор начальных
значений у.
Число шагов, на которых определяется
решение, задано параметром m=100.
Решение системы ОДУ осуществляется на
интервале (0,
50). Просмотреть все
компоненты матрицы можно с помощью
вертикальной полосы прокрутки.

Решения обыкновенных
дифференциальных уравнений часто
удобнее изображать не в функции от
аргумента t,
а в фазовом пространстве. Фазовый портрет
системы — это кривая на фазовой плоскости,
построенная в координатах y’(t)
и y(t),
рис. 5.5.

Фазовый портрет, как правило,
имеет одну стационарную точку (аттрактор),
на которую «накручивается» решение.
В теории динамических систем аттрактор
такого типа называется фокусом.

В общем случае, если система
состоит из n
ОДУ, то фазовое пространство является
n-мерным.
При n>3
наглядность теряется, и для визуализации
фазового портрета приходится строить
различные его проекции.

Метод Рунге-Кутта четвертого
порядка обеспечивает малую погрешность
для широкого класса систем ОДУ за
исключением жестких систем. Поэтому в
большинстве случаев стоит применять
функцию rkfixed(
). Если по различным причинам время
расчетов становится критичным или
точность неудовлетворительна, стоит
попробовать вместо rkfixed(
) другие функции.

Рис. 5.5. Фазовый портрет
решения системы ОДУ

Функция Rkadapt(
) может быть полезна
в случае, когда известно, что решение
на рассматриваемом интервале меняется
слабо, либо существуют участки медленных
и быстрых его изменений. Метод Рунге-Кутта
с переменным шагом разбивает интервал
не на равномерные шаги, а более оптимальным
способом. Там, где решение меняется
слабо, шаги выбираются более редкими,
а в областях его сильных изменений —
частыми. В результате, для достижения
одинаковой точности требуется меньшее
число шагов, чем для rkfixed(
). Метод Bulirsch-Stoer
часто оказывается более эффективным
для поиска гладких решений.

Соседние файлы в папке Пособие_MathCAD

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Электронный курс по MathCAD

5.2 Решение дифференциальных уравнений и систем.(Задача Коши и граничные задачи).

Решение одиночного дифференциального уравнения.

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

Odesolve(x,b,[step]) — Возвращает функцию, которая является решением дифференциального уравнения. Используется в блоке с оператором Given.
x — переменная интегрирования, действительное число
b — конечная точка отрезка интегрирования
step — величина шага по переменной интегрирования (необязательный аргумент)

Замечания:

  1. Уравнение должно быть линейным относительно старшей производной.
  2. Число заданных начальных или граничных условий внутри блока должно быть равно порядку уравнения.
  3. При записи уравнения для обозначения производных функции используйте специальные кнопки с панели Math или ‘ (штрих) — [Ctrl+F7], для знака равенства = [Ctrl+=] (в том числе и для дополнительных условий).
  4. Конечная точка должна быть больше начальной.
  5. Не допускаются начальные и граничные условия смешанного типа (f ‘(a)+f(a)=5).
  6. Искомая функция в блоке дложна быть обязательно с аргументом ( f(x))

Численное решение задачи Коши для дифференциальных уравнений и систем.

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

rkfixed(y,x1,x2,n,F) — возвращает матрицу решений системы уравнений методом Рунге-Кутта 4-го порядка при фиксированном шаге по x

rkadapt(y,x1,x2,n,F) — ищет решение с переменным шагом ( там, где решение меняется медленнее, шаг увеличивается, а в области быстрого изменения решения шаг функции уменьшается). Возвращается решение с равным шагом. Функция работает быстрее, чем rkfixed

Bulstoer(y,x1,x2,n,F) — дает более точное решение (методом Bulirsch-Stoer)

Агрумкнты вышеуказанных функций:
y — вектор начальных условий
x1,x2 — границы интервала для поиска решения
n — количество точек на интервале
F(x,y) — вектор-функция первых производных

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

В результате работы укзанных функций рассчитывается матрица, количество стобцов которой равно порядку уравнения +1(или сумме порядков уравнений в системе +1), а количество строк равно параметру n. Первый столбец содержит значения независимой переменной, второй — значение функции, третий — для диф. уравнений 2-го порядка — значение производной искомой функции (если решается система двух уравнений 1-го порядка, то третий столбец будет содержать значения второй функции). Для выделения решений (функций или их производных) можно воспользоваться стандартным оператором вывода столбцов матрицы M &lt &gt

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

Stiffb(y,x1,x2,n,F,J) — ищет решение диф. уравнения или системы дифференциальных уравнений методом Bulirsch-Stoer

Stiffr(y,x1,x2,n,F,J) — ищет решение диф. уравнения или системы дифференциальных уравнений методом Rosenbrock

Первые пять аргументов такие же,как и при решении хорошо обусловленных систем дифференциальных уравнений . Дополнительный аргумент — матрица J размером nx(n+1), первый столбец которой содержит частные производные dF/dx, остальные столбцы и строки представляют собой матрицу Якоби dF/dy

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

Для отыскания решения системы диф. уравнений только в конечной точке используются функции bulstoer,rkadapt, stiffb, stiffr (начинаются с прописной буквы).

Набор парамтров для этих функций :
bulstoer(y,x1,x2,acc,F,kmax,save)
rkadapt(y,x1,x2,acc,F,kmax,save)
stiffb(y,x1,x2,acc,F,J,kmax,save)
stiffr(y,x1,x2,acc,F,J,kmax,save)

Первые три параметра и пятый (F) этих функций те же, что идля функции Rkadapt. Дополнительные параметры:
acc — параметр, контролирующий точность решения (реком. асс=0.001)
kmax — максимальное число промежуточных точек в которых ищется решение
save — минимально допустимый интервал между точками, в которых ищется решение

Решение граничных задач для обыкновенных дифференциальных уравнений.

Если для дифференциального уравнения n-го порядка k граничных условий заданы в начальной точке х1, а (n-k) граничных условий — в конечной точке х2, то такая задача называется краевой. В MathCAD реализованы две функции, позволяющие численно найти недостающие условия в точках х1 и х2.

Двухточечная краевая задача

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

sbval(v,x1,x2,F,load,score) — ищет недостающие начальные условия в точке х1
v — вектор началных приближений для искомых начальных значений в точке х1,
х1,х2 — граничные точки интервала
F(x,y) — вектор-столбец из n элементов, содержит правые части дифференциальных уравнений
load(x1,v) — вектор-столбец из n элементов, содержит начальные значения в точке х1; некоторые из значений- константы, другие неизвестны и будут найдены в процессе решения.
score(x2,y) — вектор-столбец размерности вектора v, содержащий разность между начальным условием в точке х2 и значеием искомого решения в этой точке.

Краевая задача с условиями внутри интервала.

На первом этапе используется функция

balfit(V1,V2,x1,x2,xf,F,load1,load2,score) — ищет недостающие начальные условия в точках х1 и х2, сшивая решения, выходящие из этих точек, в точке xf
V1,V2 — вектора началных приближений для искомых начальных значений в точках х1 и х2
х1,х2 — граничные точки интервала
load1(x1,V1) — вектор-столбец из n элементов, содержит начальные значения в точке х1; некоторые из значений- константы, другие неизвестны и будут найдены в процессе решения
load2(x2,V2) — вектор-столбец из n элементов, содержит начальные значения в точке х2; некоторые из значений- константы, другие неизвестны и будут найдены в процессе решения.
score(xf,y) — вектор-столбец размерности n, содержащий разность между решениями, начинающимися в точках х1 и х2, в точке xf

Решение дифференциальных уравнений mathcad rkfixed

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

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

В этом разделе описано, как решить ОДУ, используя функцию rkfixed. Раздел начинается с примера того, как решить простейшее дифференциальное уравнение первого порядка. Затем будет показано, как можно решать дифференциальные уравнения более высокого порядка.

Дифференциальные уравнения первого порядка

Дифференциальное уравнение первого порядка — это уравнение, которое не содержит производных выше первого порядка от неизвестной функции. На Рисунке 1 показан пример того, как решить относительно простое дифференциальное уравнение:

с начальными условиями: y(0) = 4

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

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

Рисунок 1: Решение дифференциального уравнения первого порядка.

Функция rkfixed имеет следующие аргументы:

y = Вектор начальных условий размерности n, где n — порядок дифференциального уравнения или число уравнений в системе (если решается система уравнений). Для дифференциального уравнения первого порядка, как, например, для уравнения, приведенного на Рисунке 1, вектор начальных значений вырождается в одну точку y0 = y(x1).
x1, x2 = Граничные точки интервала, на котором ищется решение дифференциальных уравнений. Начальные условия, заданные в векторе y, — это значение решения в точке x1.
npoints = Число точек (не считая начальной точки), в которых ищется приближенное решение. При помощи этого аргумента определяется число строк (1 + npoints) в матрице, возвращаемой функцией rkfixed.
D (x, y) = Функция, возвращающая значение в виде вектора из n элементов, содержащих первые производные неизвестных функций.

Наиболее трудная часть решения дифференциального уравнения состоит в определении функции D(x, y), которая содержит вектор первых производных от неизвестных функций. В примере, приведенном на Рисунке 1, было достаточно просто разрешить уравнение относительно первой производной , и определить функцию D(x, y). Иногда, особенно в случае нелинейных дифференциальных уравнений, это может быть трудно. В таких случаях иногда удаётся разрешить уравнение относительно в символьном виде и подставить это решение в определение для функции D(x, y). Используйте для этого команду Решить относительно переменной из меню Символика.

Рисунок 2: Более сложный пример, содержащий нелинейное дифференциальное уравнение.

Дифференциальные уравнения второго порядка

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

  • Вектор начальных условий y теперь состоит из двух элементов: значений функции и её первой производной в начальной точке интервала x1.
  • Функция D(t, y) является теперь вектором с двумя элементами:

  • Матрица, полученная в результате решения, содержит теперь три столбца: первый столбец содержит значения t, в которых ищется решение; второй столбец содержит y(t); и третий — y‘(t).
  • Пример, приведенный на Рисунке 3, показывает, как решить следующее дифференциальное уравнение второго порядка:

    Рисунок 3: Решение дифференциального уравнения второго порядка.

    Уравнения более высокого порядка

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

    • Вектор начальных значений y теперь состоит из n элементов, определяющих начальные условия для искомой функции и ее производных y, y’ , . y (n-1)
    • Функция D является теперь вектором, содержащим n элементов:

  • Матрица, получаемая в результате решения, содержит теперь n столбцов: первый — для значений t, и оставшиеся столбцы — для значений y (t), y’ (t), (t). y (n-1) (t).
  • Пример, приведенный на Рисунке 4, показывает, как решить следующее дифференциальное уравнение четвертого порядка:

    с начальными условиями:

    Рисунок 4: Решение дифференциального уравнения более высокого порядка.

    Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter

    28. Тема 7. Решение дифференциальных уравнений и систем в MathCad. Краткие теоретические сведения

    Для решения дифференциальных уравнений с начальными условиями система Mathcad имеет ряд встроенных функций:

    Rkfixed – функция для решения ОДУ и систем ОДУ методом Рунге–Кутта четвертого порядка с постоянным шагом;

    Rkadapt – функция решения ОДУ и систем ОДУ методом Рунге–Кутта с переменным шагом;

    Odesolve – функция, решающая ОДУ блочным методом.

    Ниже приведено описание стандартной функции Rkfixed с указанием параметров функции.

    Y – вектор начальных условий из K элементов (k – количество уравнений в системе);

    X1 и X2 – левая и правая границы интервала, на котором ищется решение ОДУ или системы ОДУ;

    P – число точек внутри интервала (x1, x2), в которых ищется решение;

    D – вектор, состоящий из K-Элементов, который содержит первую производную искомой функции или первые производные искомых функций, если речь идет о решении системы.

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

    На рисунке 2.7.1 приведены конкретные примеры решения различных дифференциальных уравнений и систем ОДУ в MathCAD.

    При решении дифференциального уравнения первого порядка нужно создать вектор начальных условий из одного элемента Y1, который затем используется при формировании вектора-функции правой части дифференциального уравнения. При обращении к функции Rkfixed Указывается имя вектора Y, границы интервала, на котором ищется решение уравнения, например, (0 ; 2), количество точек, в которых ищется решение – 100, вектор-функция, описывающая правую часть дифференциального уравнения – D. В результате получается матрица Z, в первом столбце которой содержатся значения аргумента искомой функции, во втором – значения самой результирующей функции. При построении графика функции первый столбец полученной матрицы указывается как аргумент, второй столбец – как функция.

    При решении системы дифференциальных уравнений нужно создать вектор начальных условий из двух элементов, например, вектор V, который затем используется при формировании вектора-функции правой части дифференциального уравнения. При обращении к функции Rkfixed Указывается имя вектора V, и границы интервала, на котором ищется решение уравнения, например, (0 ; 5), количество точек, в которых ищется решение – 100, вектор-функция, описывающая правую часть дифференциального уравнения – D. В результате получается матрица S, в первом столбце которой содержатся значения аргумента искомых функций, во втором и третьем столбцах – значения самих функций при соответствующем значении аргумента. При построении графика можно воспользоваться первым столбцом полученной матрицы как аргументом, а вторым и третьим столбцами – как функциями.

    На рисунке 2.7.2 приведен пример решения дифференциального уравнения второго порядка с использованием функции Rkfixed. Необходимо решить дифференциальное уравнение второго порядка с заданными начальными условиями вида:

    Рисунок 2.7.2 – Пример решения дифференциальных уравнений второго порядка с помощью Rkfixed

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

    Документ формируется точно так же, как и при решении системы ОДУ.

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

    источники:

    http://old.exponenta.ru/soft/MathCAD/usersguide/chapter16/16_1.asp

    http://matica.org.ua/metodichki-i-knigi-po-matematike/reshenie-zadach-v-srede-mathcad/28-tema-7-reshenie-differentcialnykh-uravnenii-i-sistem-v-mathcad-kratkie-teoreticheskie-svedeniia

    Для решения дифференциальных уравнений с начальными условиями система Mathcad имеет ряд встроенных функций:

    Rkfixed – функция для решения ОДУ и систем ОДУ методом Рунге–Кутта четвертого порядка с постоянным шагом;

    Rkadapt – функция решения ОДУ и систем ОДУ методом Рунге–Кутта с переменным шагом;

    Odesolve – функция, решающая ОДУ блочным методом.

    Ниже приведено описание стандартной функции Rkfixed с указанием параметров функции.

    Rkfixed(y, x1, x2, p, D)

    Аргументы функции:

    Y – вектор начальных условий из K элементов (k – количество уравнений в системе);

    X1 и X2 – левая и правая границы интервала, на котором ищется решение ОДУ или системы ОДУ;

    P – число точек внутри интервала (x1, x2), в которых ищется решение;

    D – вектор, состоящий из K-Элементов, который содержит первую производную искомой функции или первые производные искомых функций, если речь идет о решении системы.

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

    На рисунке 2.7.1 приведены конкретные примеры решения различных дифференциальных уравнений и систем ОДУ в MathCAD.

    При решении дифференциального уравнения первого порядка нужно создать вектор начальных условий из одного элемента Y1, который затем используется при формировании вектора-функции правой части дифференциального уравнения. При обращении к функции Rkfixed Указывается имя вектора Y, границы интервала, на котором ищется решение уравнения, например, (0 ; 2), количество точек, в которых ищется решение – 100, вектор-функция, описывающая правую часть дифференциального уравнения – D. В результате получается матрица Z, в первом столбце которой содержатся значения аргумента искомой функции, во втором – значения самой результирующей функции. При построении графика функции первый столбец полученной матрицы указывается как аргумент, второй столбец – как функция.

    При решении системы дифференциальных уравнений нужно создать вектор начальных условий из двух элементов, например, вектор V, который затем используется при формировании вектора-функции правой части дифференциального уравнения. При обращении к функции Rkfixed Указывается имя вектора V, и границы интервала, на котором ищется решение уравнения, например, (0 ; 5), количество точек, в которых ищется решение – 100, вектор-функция, описывающая правую часть дифференциального уравнения – D. В результате получается матрица S, в первом столбце которой содержатся значения аргумента искомых функций, во втором и третьем столбцах – значения самих функций при соответствующем значении аргумента. При построении графика можно воспользоваться первым столбцом полученной матрицы как аргументом, а вторым и третьим столбцами – как функциями.

    На рисунке 2.7.2 приведен пример решения дифференциального уравнения второго порядка с использованием функции Rkfixed. Необходимо решить дифференциальное уравнение второго порядка с заданными начальными условиями вида:

    Рисунок 2.7.2 – Пример решения дифференциальных уравнений второго порядка с помощью Rkfixed

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

    Документ формируется точно так же, как и при решении системы ОДУ.

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

    < Предыдущая   Следующая >

    Что ж, хотя мы уже немало всего успели обсудить насчет программирования в такой замечательной математической среде, как 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.

    Выводы

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

    SF, spaceflyer@tut.by

    Компьютерная газета. Статья была опубликована в номере 42 за 2008 год в рубрике soft

    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,
    подтверждая её репутацию как одной из
    самых массовых и удобных в работе
    математических систем.

    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 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,
    либо для импорта в графическую область.

    Возможности 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. Математическую область можно встроить в текст. Эту возможность следует использовать, если необходимо вставить над- и подстрочные символы в текст.

    Содержание

    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, и т.п.). Напечатать такие группы чисел.

    Источник

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

    Неправильное использование переменных и функций

    Многие ошибка происходят из-за неправильного использования переменных и функций в Mathcad. Вот несколько типичных примеров:

    • Неопределенные переменные. Если переменная не определена, то при попытке использовать ее Mathcad выдаст ошибку. Чтобы избежать этой проблемы, убедитесь, что все переменные, которые вы используете, определены.
    • Использование неправильного типа переменных. Например, если попытаться умножить две строки, Mathcad выдаст ошибку. Убедитесь, что вы используете правильный тип переменных для каждой операции.
    • Неправильное использование функций. Например, если попытаться взять квадратный корень от отрицательного числа, Mathcad выдаст ошибку. Убедитесь, что вы используете правильные функции для различных операций, и что аргументы этих функций удовлетворяют их требованиям.

    Неправильное присваивание значений переменным

    Еще одна распространенная ошибка в Mathcad — неправильное присваивание значений переменным. Вот несколько примеров:

    • Неправильное использование знака «равно». Если вы напишете «x = y» в Mathcad, то это означает «присвоить значение y переменной x». Однако, если вы напишете «x == y», то это означает «проверить, равны ли x и y». Убедитесь, что вы используете правильный знак для каждой операции.
    • Неправильное использование функции «:=». Функция «:=» используется для определения переменной. Например, «x := 2» означает «определить переменную x и присвоить ей значение 2». Если вы напишете «y := x + 2» до того, как определили переменную x, то Mathcad выдаст ошибку. Убедитесь, что вы определяете все переменные, прежде чем начинать использовать их в других выражениях.

    Неправильное использование единиц измерения

    Mathcad имеет функциональность для работы с единицами измерения. Однако, неправильно использованные единицы измерения могут привести к ошибкам. Вот несколько примеров:

    • Неправильное использование единиц измерения при конвертации. Например, если вы хотите конвертировать мили в километры, то воспользуйтесь функцией «Convert» соответствующим образом. Убедитесь, что вы используете правильные единицы измерения для каждой операции.
    • Неправильное использование единиц измерения в выражении. Например, если вы пытаетесь сложить 3 метра и 4 секунды, то Mathcad выдаст ошибку. Убедитесь, что все единицы измерения в выражении соответствуют друг другу.

    Неправильно заданные начальные условия

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

    • Неправильное задание начальных условий. Убедитесь, что вы правильно задаете начальные условия для каждого уравнения.
    • Неправильное использование интегрирования. Убедитесь, что вы правильно интегрируете каждое уравнение и используете правильные начальные условия для каждого уравнения.

    Заключение

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

    Приложение 4. Сообщения об ошибках

    71

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

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

    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 (Аргументы в определениях функции должны быть именами). Выделенное определение функции содержит неправильный перечень аргументов. В списке аргументов должны быть правильно поименованы переменные или список имен необходимо отделить запятыми.

    All the elements in the vector cannot be the same (Все элементы вектора не могут быть одинаковыми). Если используется встроенная функция, возможно, неправильно указаны ее имя или параметры. Проверьте правильность ввода встроенной функции, установив курсор на имени функции и нажав клавишу F1.

    At least one limit must be infinity (По крайней мере один предел должен быть бесконечным). Если для интегрирования выбран алгоритм бесконечного предела, то по крайней мере один из пределов интеграла должен быть бесконечным.

    Символ бесконечности вводится нажатием комбинации клавиш Ctrl+Shift+z. Для изменения алгоритма, использующего бесконечный предел, или для вычисления какого-либо другого интеграла щелкните на интеграле правой кнопкой мыши и измените алгоритм с помощью контекстного меню.

    Can only evaluate an nth order derivative when n=0, 1..5 (Можно вычислить n

    порядок производной, только когда n = 0, 1, 2, , 5). Порядок производной должен быть целым числом от 0 до 5. Если нужно посчитать производную более высокого порядка, сделайте это с помощью символьного дифференцирования.

    Can only plot positive values when log axes are used (Только положительные величины могут быть на графике, если используются логарифмические координаты). Двухмерный график в декартовых или полярных координатах строится в логарифмических координатах, в которых не может быть величин отрицательных или равных нулю.

    Can’t converge to a solution. Encountered too many integrator steps (Невозможно найти решение. Сделано слишком много шагов интегрирования). Алгоритм решения дифференциального уравнения не позволяет найти решение этого уравнения. Попробуйте изменить начальные или граничные условия. Возможно, решения просто не существует.

    Can’t converge to a solution. The integrand may have a singularity or the integral may not be finite (Невозможно найти решение. Подынтегральное выражение может иметь точку сингулярности или интеграл может быть бесконечным). Вычисление интегралов, производных, функций root, find, minerr осуществляется итерационными методами. Вы увидите это сообщение, если после большого числа итераций не получен ответ с требуемой точностью.

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

    Can’t define the same variable more than once in the same expression (Невозможно определить ту же самую переменную более одного раза в одном и том же выражении). Вы пытаетесь вычислить одну и ту же переменную дважды в одном выражении. Пример подобной ошибки: если вы создаете вектор с именем a:= и используете это же имя справа, то получите это сообщение.

    Can’t determine what units the result of this operation should have (Невозможно определить, в каких единицах должен быть представлен результат операции). Вы возвели выражение, содержащее единицы измерения, в степень, являющуюся переменной или вектором. В итоге невозможно определить размерность результата. Если выражение имеет размерность, то его можно возводить только в действительную фиксированную степень.

    Can’t evaluate this expression. It may have resulted in an overflow or an infinite loop

    (Невозможно вычислить это выражение. Это может быть результатом переполнения или бесконечным числом циклов). Это выражение может содержать слишком много вложенных функций или функция может быть константой в бесконечных циклах.

    Проверьте несколько итераций цикла.

    Can’t evaluate this expression because it’s either too complicated or it’s defined in terms of itself (Невозможно вычислить это выражение, потому что оно или слишком сложное,

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

    окончания процесса не определено. Например, f(x) := f(x)+5 ведет к переполнению стека. Необходимо изменить имя функции.

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

    Can’t evaluate this function when its argument is zero (Невозможно вычислить эту функцию, если ее аргумент равен нулю). Функция неопределенна, если аргумент равен нулю. Такое сообщение появляется при вычислении логарифма от нуля. Can’t divide by zero (Деление на ноль невозможно). Где-либо в программе или внутри численного метода возникло деление на ноль. Найдите место деления на ноль и устраните его. Попробуйте поменять параметры численного метода, константы точности или сам численный алгоритм.

    Can’t find a solution. Encountered too many iterations (Невозможно найти решение.

    Слишком много итераций). Это сообщение появляется при использовании функции polyroot, если степень полинома слишком велика. Попробуйте найти корни полинома символьным методом.

    Can’t find a solution to this system of equations (Невозможно найти решение системы уравнений). Попробуйте изменить начальные приближения.

    Что делать, если функция find не может найти решение, описано в главе 3.

    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 plot this many points (Невозможно начертить график с таким большим количеством точек). Попытка построения графика с числом точек, превосходящим возможное. Попробуйте сделать число точек меньшим, чем 150 000.

    Can’t perform this operation on the entire array at once. Try using «vectorize» to perform it element by element (Невозможно выполнить эту операцию во всем массиве сразу. Попытайтесь использовать векторизацию, чтобы преобразовать элемент за элементом). Это сообщение можно увидеть, например, при попытке разделить один вектор на другой.

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

    Can’t raise an expression having units to a complex power (Нельзя возводить в комплексную степень выражение, имеющее единицы измерения). Выражение с единицами измерения можно возводить только в действительную степень. Для того, чтобы возвести в комплексную степень выражение с единицами измерения, вначале переведите это выражение в UnitsOf(выражение) — единицы измерения будут отменены.

    Can’t solve a system having this many equations (Невозможно решить систему,

    имеющую так много уравнений). Mathcad может решать системы уравнений, содержащие не больше 200 нелинейных уравнений и не больше 500 линейных.

    Can’t understand something in this data file. If this file came from a spreadsheet, make sure you saved it as ASCII text only (Невозможно что-либо понять в этом файле данных. Если этот файл взят из откуда-либо из готовых материалов, убедитесь, что он сохранен в формате ASCII). При считывании файла функцией READPRN файл должен быть записан в формате ASCII.

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

    Can’t understand the name of this function. If you’re trying to multiply, use «*»

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

    Can’t understand the way this range variable is defined (Невозможно понять определение дискретной (ранжированной) переменной). Неверное определение дискретной переменной.

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

    var := n1

    ..n2 ;

    var := n1

    , n2 ..n3 .

    73

    Can’t understand this number (Невозможно понять это число). Это выражение содержит символ или десятичную точку там, где это непозволительно. Например, вы увидите этой сообщение об ошибке, если случайно запишете число как .452.

    Can’t use a range variable in a solve block (Невозможно использовать дискретную переменную в вычислительном блоке). Эта сообщение об ошибке появляется, если использовать дискретную переменную в неподходящем месте, например, в вычислительном блоке.

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

    Cannot evaluate this accurately at one or more of the values you specified (Невозможно точно вычислить выражение в одной или нескольких точках). Эта ошибка указывает, что вы пытаетесь вычислить функцию для аргумента, находящегося за пределами области определения функции.

    Cannot perform this operation on a string (Нельзя выполнить эту операцию над строкой). Нельзя выполнить математические операции со строковой переменной. Could not find a solution (Невозможно найти решение). Численный метод расходится (не может найти решения). Возможно, решения не существует. Подробнее об этом написано в главе 3.

    Could not find a solution because the root finder failed (Невозможно найти решение.

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

    Cross product is defined only for vectors having exactly three elements (Векторное произведение определяется только для векторов, имеющих ровно три элемента).

    Degree of the polynomial must be between 1 and 99 (Степень полинома должна быть от

    1 до 99). Вектор коэффициентов полинома, используемый функцией polyroot, должен содержать от 2 до 99 элементов.

    Encountered a floating point error (В заданной точке функция не может иметь такого значения).

    End of File (Конец файла). Вы пытаетесь функцией READ прочитать больше данных, чем есть в файле.

    End points cannot be the same (Конечная и начальная точки не могут быть одинаковыми). При решении дифференциальных уравнений конечные точки интервала интегрирования должны быть разными.

    Found a number with a magnitude greater than 10^307 while trying to evaluate this expression (Найдено число, превышающее 10307). Попробуйте поменять параметры численного алгоритма или сам алгоритм.

    Found a singularity while evaluating this expression. You may be dividing by zero

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

    Illegal context. Press F1 for Help (Недопустимый контекст. Нажмите клавишу F1, чтобы получить помощь). Трудно диагностируемая ошибка. Часто вызывается синтаксическими ошибками при наборе выражений.

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

    Illegal dimensions (Недопустимые размеры массива). Массив не имеет столько строк и столбцов, сколько требуется.

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

    Invalid expansion point (Невозможно разложить выражение в ряд в окрестности указанной точки). Проверьте правильность использования ключевого слова series при символьном вычислении выражения.

    Invalid matrix dimension. The number of rows is less than the number of columns

    (Неправильный размер матрицы. Число строк меньше, чем число столбцов). Функция svd требует, чтобы число строк было больше числа столбцов или равно ему.

    Live symbolics not available (Символьные вычисления невыполнимы). Это сообщение появляется при использовании символьного знака равенства, если в данной версии Mathcad символьные вычисления отсутствуют.

    Loess cannot extrapolate (Функция loess не может экстраполировать выражение). Точки для интерполяции выражения должны лежать между минимальным и максимальным значениями заданных точек.

    Matrix is singular. Cannot compute its inverse (Матрица сингулярная. Невозможно вычислить обратную матрицу). Матрица вырожденная или почти вырожденная. Ее определитель равен нулю или число обусловленности очень велико.

    Matrix must be positive definite (Матрица должна быть положительно определенной). Это сообщение появляется, когда матричный аргумент функции не является

    положительно определенным. Матрица является положительно определенной, если

    ее собственные числа действительные и положительные.

    Must be 1 complex matrix or 2 real matrices (Должна быть одна матрица комплексных

    74

    чисел или две матрицы действительных чисел). Это условие необходимо при

    построении графика векторного поля.

    Must be a vector with real elements (Должен быть вектор действительных чисел).

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

    Must be between two lock regions (Курсор должен быть между границами запираемой

    зоны). При создании закрытой области — команда Format

    Area

    Lock

    (Формат

    Зона

    Запереть) — необходимо вначале щелкнуть мышью между

    границами запираемой зоны.

    Must be less than the number of data points (Аргумент должен быть меньше, чем число

    точек в массиве данных). Для дополнительной информации установите курсор на

    названии встроенной функции и нажмите клавишу F1.

    Must be a real scalar (Должно быть действительным числом).

    Must have more than four rows (Матрица должна иметь больше четырех рядов).

    Must have 1 or 2 columns (Матрица должна иметь один или два столбца). Первый

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

    один столбец для одномерной сплайн-интерполяции и два столбца — для

    двухмерной.

    Must have three vectors or one matrix (Должно быть три вектора или одна матрица).

    При построении графика поверхности в поле ввода надо вписать или три вектора,

    разделенных запятыми, или одну матрицу.

    No bitmaps were found in the worksheet (В документе нет графических объектов). Это

    сообщение появляется при выполнении команды Format

    Color

    Optimize Palette.

    (Формат

    Цвет

    Оптимизировать палитру).

    Not enough memory for this operation (Для этой операции недостаточно памяти).

    Only positive values are allowed here (Здесь можно использовать только положительные величины).

    ORIGIN should be an integer whose magnitude is less than 16 million (ORIGIN должно быть целым числом, меньшим 16 млн).

    (Rows – 1) must be power of 2 (Матрица должна иметь 2n рядов).

    Something is wrong with the solve block used to define this function. It may need a guess value (Что-то неверно в блоке решения. Возможно, необходимо начальное приближение). Такое сообщение появляется при использовании блока решения внутри функции пользователя. Попробуйте оценить непосредственно сам блок решения вне функции пользователя. Вы получите другое более подробное сообщение об ошибке.

    String contains the wrong number of characters or the wrong kind of characters (Строка содержит неверное число символов или неверный вид символов). При использовании смешанных программ необходим ввод символов в строке аргументов: I — для целых чисел, B — для бинарных чисел, С — для любого вещественного числа.

    The elements in this vector must be in increasing order (Элементы этого вектора должны быть расположены в порядке возрастания). Такое требование предъявляется к вектору аргументов при работе с массивами данных, например, при интерполяции или построении гистограмм.

    The expression to the left of the equal sign cannot be defined (Выражение слева от знака равенства не может быть определено). Возможна синтаксическая ошибка. Слева от оператора присваивания могут находиться имена переменных, векторов, матриц и функций (с аргументами в скобках).

    The format of this vector is invalid. Press F1 for help (Неверный размер вектора.

    Нажмите клавишу F1 для вызова помощи). Некоторые функции требуют в качестве аргумента вектор, созданный другой функцией. Этот вектор имеет специальный формат, создаваемый другой функцией, например cspline, regress и др.

    The function values on the two bracket end points must be of opposite signs (Величины функции в двух крайних точках интервала должны быть разного знака). При задании интервала поиска корней функцией root величины функции в двух крайних точках интервала должны быть разного знака. Выбирайте границы интервала поиска корней после построения графика функции.

    The number of rows must be a power of 2 (Число элементов вектора должно быть равно 2n). Ошибка возникает при неверном числе данных для волнового преобразования функцией wave.

    The number of rows or columns do not match (Число строк и столбцов в этих матрицах не согласовано). Подобное сообщение об ошибке часто появляется при неправильном перемножении матриц. Нажмите клавиши Shift+F1 и щелкните мышью на имени функции, чтобы узнать необходимые размеры матриц.

    The unit placeholder can only have real, non-zero scalars put into it (В место ввода размерности при выводе результатов вычислений можно вводить, кроме размерностей, только действительные, не равные нулю скалярные величины).

    The units in this expression do not match (Размерности в этом выражении не согласованы). Несогласованные вычисления с размерными и безразмерными величинами. При вычислениях без учета размерностей, видимо, осталась не заданной

    какая-либо величина, обозначенная буквами m, s, N и т. д., которые по умолчанию встроены в Mathcad как стандартные размерности длины, времени и силы.

    There is an extra comma in this expression (В этом выражении есть лишняя запятая). 75

    Проверьте синтаксис. Видимо, запятая использована вместо точки.

    There must be more data points than parameters (В массиве данных должно быть больше точек, чем параметров функции). Такое требование предъявляют, например,

    функции regress и genfit.

    There must be more than three data points (Эта функция требует вектор, содержащий по крайней мере четыре элемента).

    This array must have more than one row or column (Этот массив должен иметь больше,

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

    This expression has a «(» without a matching «)». (В выражении не хватает скобок).

    Проверьте выражение.

    This expression is incomplete. You must fill in the placeholders (Выражение неполное.

    Вы должны заполнить места ввода).

    This expression is incomplete. You must provide an operator (Выражение неполное. Вы должны ввести оператор).

    This expression is too complicated. Try defining it in smaller pieces (Выражение слишком сложное. Постарайтесь определить его по частям).

    This file could not be opened. Make sure it exists (Этот файл не может быть открыт.

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

    This function has too many arguments (Функция имеет слишком много аргументов). Для встроенных функций щелкните мышью на имени функции и нажмите клавишу F1. Проверьте правильность использования функции. Для функции пользователя проверьте определение функции.

    This function is undefined at one or more of the points you specified (Функция не определена в одной или нескольких точках). Вы используете оператор или функцию для неприемлемых значений аргумента, например, lg(0) или –3! (факториал отрицательного числа не определен).

    This image format is not supported (Этот формат изображения не поддерживается

    Mathcad).

    This integer is too large (Величина слишком большая для работы с ней). This integer is too small (Величина слишком мала для работы с ней).

    This is invalid. If you are using conditional statements in a Mathcad program, make sure all cases are accounted for (Это неверно. Если вы используете условие в Mathcadпрограмме, убедитесь, что все возможные случаи учтены). В условный оператор программирования добавьте еще одно место ввода и впишите еще одно значение с ключевым словом Otherwise (иначе).

    This is not a valid interval (Неправильно указан интервал). Начальное значение интервала должно быть меньше конечного.

    This is not allowed inside a solve block. For example, definitions are not allowed in a solve block (Это не разрешено внутри вычислительного блока. Например, определения не могут находиться внутри вычислительного блока). Внутри вычислительного блока могут находиться только решаемые уравнения и ограничения к ним.

    This list contains too many items (Список содержит слишком много имен). Вы ввели в список слишком много имен, разделенных запятыми. Чаще всего это случается с графиками.

    This matrix must be square. It should have the same number of rows as columns (Матрица должна быть квадратной. Число строк должно быть равно числу столбцов).

    This must be an integer. The expression you used appears to have a fractional part (Здесь должно быть целое число. Похоже, что выражение содержит дробную часть). Проверьте верхние и нижние индексы. Они должны быть целыми числами. Некоторые функции, такие как identity и submatrix, требуют целочисленных аргументов.

    This must be the name of a function or variable (Здесь должно быть имя функции или переменной).

    This must be the name of a mapping function (Здесь должно быть имя функции преобразования координат). Такой аргумент требуется функциям CreateMech и CreateSpace.

    This operation can only be performed on a function (Эту операцию можно производить только над функцией). Аргумент функции сам должен быть функцией.

    This operation can only be performed on an array. It can’t be performed on a number (Эту операцию можно выполнить только над массивом, но не над числом). Например, если вы пишете имя с верхним индексом, то это должен быть вектор.

    This operation can only be performed on a number or an array (Эту операцию можно выполнить только над числом или массивом).

    This operation can only be performed on a string (Эту операцию можно выполнить только над строкой). Например, строковые функции требуют хотя бы один строковый аргумент.

    Понравилась статья? Поделить с друзьями:
  • Ошибка мицубиси аутлендер u0245
  • Ошибка мимаки 509
  • Ошибка маткад значение имеет единицы измерения
  • Ошибка мицубиси p1200
  • Ошибка маткад значение должно быть скалярным