Подобно присваиванию числовых значений переменным, можно определить функции пользователя одного или нескольких аргументов, (листинги 1.5 и 1.6). В листинге 1.5 определяется функция
f (х), а в листинге 1.6 — функция трех переменных g (а, у,ф).
Листинг 1.5. Определение функции пользователя и расчет ее значений в
точке
Листинг 1.6.
Функция пользователя трех аргументов и ее вычисление в точке
ПРИМЕЧАНИЕ 1
Сравните содержание листинга 1.5 и рис. 1.7. Такой стиль подачи материала будет сохранен во всей книге. Листинги представляют собой фрагменты рабочих областей документа, которые работают без какого-либо дололнительного кода (если это не оговорено особо). Можно ввести содержание любого листинга в новый (пустой) документ, и он будет работать точно так же, как в книге. Чтобы не загромождать листинги, графики выведены в отдельные рисунки. В отличие от рис. 1.6, в следующих рисунках код листингов не дублируется, а если имеется ссылка на листинг в подрисуночной надписи, то это подразумевает, что данный график может быть вставлен в документ после упомянутого листинга.
Рис. 1.7. Построение графика функции (продолжение листинга 1.5)
ПРИМЕЧАНИЕ 2
На том же графике на рис. 1.7 изображена и вторая кривая, представляющая собой двумерный график функции
g(10,х,0). Для того чтобы нарисовать и этот график, потребовалось ввести имя функции
g (10, х, 0) через запятую после
f (х) возле оси у.
ПРИМЕЧАНИЕ 3
В Mathcad 12 запрещено определять функции пользователя посредством рекуррентных выражений, например
f(x)=f(x)+l. При попытке вычисления f (х) вместо ее нового (рекуррентного) присваивания, как происходило в прошлых версиях, будет организован бесконечный цикл, который на определенном шаге приведет к операции переполнения. Для организации рекуррентных вычислений используйте новое имя функции, например,
fl (f ,x)=f (x) +1 (что даст, в частности, fl (sin, 0)=0), либо именной оператор (см. след, примечание).
ПРИМЕЧАНИЕ 4
В Mathcad 12 введена новая возможность переопределения переменных, размерностей и функций, причем как пользовательских, так и системных. Осуществляется это при помощи именного оператора (namespace operator), примером действия которого может служить переопределение встроенной функции синус
sin[mc] (x) :=sin(x*pi/180) либо пользовательской функции f[this] (x) = =f(x)+l. Идентификатор
[mс] указывает на подмену системного имени Mathcad, a [this] — на рекуррентное переопределение соответствующей функции.