Рассмотрим некоторые стандартные функции системы MathCAD. Введем специальные обозначения для аргументов функций. Пусть первый символ имени аргумента обозначает его тип:
M – квадратная матрица;
V – вектор (матрица из одного столбца);
A – произвольная матрица;
S – симметричная матрица;
G – произвольная матрица или число;
X – вектор или число;
Z – комплексная матрица или число;
z – комплексное число;
прочие символы – скалярные величины.
Экспоненциальные и логарифмические функции
exp(X) – экспонента от X;
ln(X) – натуральный логарифм от X;
log(X) – десятичный логарифм от X;
log(X,b) – логарифм от X по основанию b.
Гиперболические и тригонометрические (прямые и обратные) функции
sin(X), cos(X), tan(X), cot(X), sec(X), csc(X) – соответственно синус, косинус, тангенс, котангенс, секанс, косеканс от X, причем аргументы указываются в радианах;
sinh(X), cosh(X), tanh(X), coth(X), sech(X), csch(X) – аналогичные гиперболические функции;
asin(z), acos(z), atan(z), acot(z), asec(z), acsc(z) – соответственно арксинус, арккосинус, арктангенс, арккотангенс, арксеканс, арккосеканс от z.
Функции для работы с комплексными числами
Re(Z), Im(Z) – соответственно вещественная и мнимая части комплексного числа Z;
arg(z) – аргумент комплексного числа z (в радианах).
Матричные функции
length(V) – возвращает число элементов вектора V;
cols(A) – возвращает число столбцов матрицы A;
rows(A) – возвращает число строк матрицы A;
matrix(m, n, f) – матрица размером mxn, значения элементов матрицы определяются f – функцией f (i, j) от двух переменных (номера строки и номера столбца). Эта функция должна быть предварительно определена пользователем;
identity(n) – единичная матрица n×n;
tr(M) – след матрицы M (сумма элементов главной диагонали);
rank(A) – ранг матрицы M;
norme(M) – эвклидова норма матрицы M, то есть корень квадратный из суммы квадратов всех элементов;
eigenvals(M) – вектор, элементы которого являются собственными числами матрицы M;
eigenvecs(M) – матрица, состоящая из нормализованных собственных векторов матрицы M;
cholesky(S) – возвращает нижнетреугольную матрицу L – результат разложения Холецкого вида L∙LT = S;
lu(M) – возвращает матрицу размера n×3n, состоящую из трех соединенных матриц P, L, U, являющихся результатом LU-разложения вида P∙M = L∙U.
Пример вычислений с матричными функциями: нахождение собственного числа путем решения матричного уравнения det(M – λE) = 0 и с помощью функции eigenvals.
Элементы статистического анализа данных
gmean(G1,G2,G3…) – среднее геометрическое аргументов;
mean(G1,G2,G3…) – среднее арифметическое аргументов;
var(G1,G2,G3…) – дисперсия;
stdev(G1,G2,G3…) – среднеквадратичное отклонение.
Дискретные преобразования
fft(V1), ifft(V2) – прямое и обратное быстрые преобразования Фурье над вещественными данными. V1 – вектор из 2m элементов, V2 – вектор из 1 + 2m–1 элементов, m > 2;
cfft(A), icfft(A) – прямое и обратное преобразования Фурье над вещественными и комплексными векторами и матрицами;
wave(V), iwave(V) – прямое и обратное вейвлет-преобразования, V – вектор из 2m элементов, m – целое число.
Аппроксимация, интерполяция и экстраполяция
Аппроксимация – поиск функции, которая с заданной степенью точности описывает исходные данные.
Интерполяция – определение наиболее правдоподобных промежуточных значений в интервале между известными значениями (подбор гладкой кривой, проходящей через заданные точки или максимально близко к ним).
Экстраполяция – определение наиболее правдоподобных последующих значений на основании анализа предыдущих значений (предсказание дальнейшего поведения неизвестной функции).
Применяются следующие функции MathCAD:
regress(VX,VY,k) – возвращает вектор данных, используемый для поиска интерполирующего полинома (a0 + a1x + a2x2 + ... + akxk) порядка k. Полином должен описывать данные, состоящие из упорядоченных значений аргумента (VX) и соответствующих значений неизвестной функции (VY), то есть график полинома должен проходить через все точки, заданные координатами (VX, VY), или максимально близко к этим точкам;
interp(VS,VX,VY,x) – возвращает интерполированное значение неизвестной функции при значении аргумента x. VS – вектор значений, который вернула функция regress. VX,VY – те же данные, что и для regress. Функции interp и regress используются в паре;
predict(V,m,n) – возвращает вектор из n предсказанных значений на основании анализа m предыдущих значений из вектора V. Предполагается, что значения функции в векторе V были получены при значениях аргумента, взятых последовательно, с одинаковым шагом. Используется алгоритм линейной предикции. Наиболее целесообразно использовать predict для предсказания значений по данным, в которых отмечены колебания.
Для интерполяции система MathCAD использует подход, основанный на применении метода наименьших квадратов.
Примеры интерполяции и экстраполяции:
1.5.1. Пусть заданы координаты пяти точек (1; 1), (2; 2), (3; 3), (4; 2), (5; 3), представляющих результаты измерения значений некоторой неизвестной функции при различных значениях x. Необходимо подобрать интерполирующую функцию (гладкую кривую), проходящую через заданные точки.
1.5.2. Дана функция y(i) = e–i/10∙sin (i). Известны значения данной функции при i = 0, 1, …, 10. Основываясь на десяти последних значениях, необходимо предсказать последующие десять значений.
Решения показаны на рис. 19.
а б
Рис. 19. Решения в MathCAD первой (а) и второй (б) задач
Нахождение корней полинома
polyroots(V) – возвращает вектор, содержащий все корни полинома a0 + a1x + a2x2 + ... + akxk, заданного вектором-столбцом коэффициентов
Прочие функции
max(G1,G2,…) – максимальное значение среди аргументов;
min(G1,G2,…) – минимальное значение среди аргументов;
if(a,b,c) – возвращает b, если a ≠ 0, иначе возвращает c;
sign(a) – возвращает –1, 0 или 1 в зависимости от знака числа a.
На рис. 20 показан пример применения функции if.
Рис. 20. Функция, вычисляющая факториал