Любое вычисление, которое Mathcad может выполнять с одиночными значениями, он может также выполнять с векторами или матрицами значений. Есть два способа сделать это:
- Последовательно выполняя вычисления над каждым элементом с использованием дискретного аргумента, как описано в следующей главе “Дискретные аргументы”.
- Используя оператор векторизации, описанный в этой главе.
Оператор векторизации предписывает Mathcad выполнить одну и ту же операцию над каждым элементом вектора или матрицы.
Математическая запись часто указывает на многократность операции, используя нижние индексы. Вот как определяется матрица P, получаемая перемножением соответствующих элементов матриц M и N:
Обратите внимание, что это не умножение матриц, но поэлементное перемножение. Mathcad позволяет выполнить эту операцию с использованием нижних индексов, как описано в следующей главе, но намного проще использовать векторизованное равенство.
Как применять оператор векторизации к выражению
Вот как применить оператор векторизации к выражению подобному МN:
- Выделите выражение целиком, щёлкнув внутри и нажимая [], пока оно не окажется заключенным в выделяющую рамку.
- Нажмите [Ctrl], чтобы применить оператор векторизации. Mathcad помещает стрелку сверху выделенного выражения.
Как оператор векторизации изменяет смысл выражения.
Оператор векторизации изменяет смысл операторов и функций, к которым применяется. Оператор векторизации предписывает Mathcad применять операторы и функции в их скалярном значении к каждому элементу массива поочередно.
Ниже приводятся некоторые примеры того, как оператор векторизации изменяет смысл выражений с векторами и матрицами:
- Если v — вектор, sin(v) — недопустимое выражение. Но если используется оператор векторизации, Mathcad вычисляет синус каждого элемента v, результат — новый вектор, чьи элементы — синусы элементов v.
- Если M — матрица, — недопустимое выражение. Но если применяется оператор векторизации, Mathcad вычисляет квадратный корень каждого элемента M и помещает результаты в новой матрице.
- Если v и w — векторы, то vw означает скалярное произведение v и w. Но если применяется оператор векторизации, результат — новый вектор, чей i-ный элемент получен перемножением vi и wi. Это не то же самое, что скалярное произведение.
Эти свойства оператора векторизации позволяют использовать скалярные операторы и функции с массивами. В настоящем руководстве это называется “векторизацией” выражения. Например, предположим, что нужно применять формулу корней квадратного уравнения к трем векторам, содержащим коэффициенты a, b и c. Рисунок 18 показывает обычное использование этой формулы. Рисунок 19 показывает, как использовать её, когда a, b и c — векторы.
Рисунок 18: Формула корней квадратного уравнения.
Рисунок 19: Формула корней квадратного уравнения в применении к векторам.
Оператор векторизации появляется как стрелка над формулой корней квадратного уравнения на Рисунке 19. Его использование существенно в этом вычислении. Без него Mathcad интерпретировал бы ac как скалярное произведение векторов, а также пометил бы квадратный корень вектора как недопустимое выражение. Но с оператором векторизации и ac, и квадратный корень вычисляются поэлементно.
Ниже приведены свойства оператора векторизации:
- Оператор векторизации изменяет значение других операторов и функций, к которым применяется. Он не изменяет значений переменных и чисел. Если применить оператор векторизации к простой переменной, это просто выведет стрелку над именем. Можно использовать эту стрелку только для косметических целей.
- Поскольку операции между двумя массивами выполняются поэлементно, все массивы под оператором векторизации должны быть одного размера. Операции между массивом и скаляром выполняются применением скаляра к каждому элементу массива. Например, если v — вектор, а n — скаляр, применение оператора векторизации к vn возвращает вектор, чьи элементы есть n-ные степени элементов v.
- Любую из следующих матричных операций не удастся использовать под оператором векторизации: скалярное произведение, умножение матриц, степени матрицы, обращение матрицы, вычисление детерминанта, нахождение длины вектора. Оператор векторизации будет трансформировать эти операции в поэлементное перемножение, возведение в степень или нахождение модуля соответственно.
- Оператор векторизации не влияет на операторы и функции, требующие в качестве аргумента массив: транспонирование, векторное произведение, суммирование элементов вектора, и функции подобные mean, поскольку они не имеют смысла для скалярного аргумента.
- Оператор векторизации применяется только к последнему, скалярному аргументу interp и linterp. Другие аргументы остаются незатронуты. См. “Интерполяция и функции предсказания” в Главе “Статистические функции”.
|