русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2015-07-23; просмотров: 888; Нарушение авторских прав


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

Ниже приводятся некоторые примеры того, как оператор векторизации изменяет смысл выражений с векторами и матрицами:

· Если v— вектор, sin(v) — недопустимое выражение. Но если используется оператор векторизации, Mathcad вычисляет синус каждого элемента v, результат — новый вектор, чьи элементы — синусы элементов v.

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

· Если v и w — векторы, то v w означает скалярное произведение v и w. Но если применяется оператор векторизации, результат — новый вектор, чей i-ный элемент получен перемножением vi и wi. Это не то же самое, что скалярное произведение.

Эти свойства оператора векторизации позволяют использовать скалярные операторы и функции с массивами. В настоящем руководстве это называется “векторизацией” выражения. Например, предположим, что нужно применять формулу корней квадратного уравнения к трем векторам, содержащим коэффициенты a, b и c. Рисунок 18 показывает обычное использование этой формулы. Рисунок 19 показывает, как использовать её, когда a, b иc — векторы.

Рисунок 18: Формула корней квадратного уравнения.

Рисунок 19: Формула корней квадратного уравнения в применении к векторам.

Оператор векторизации появляется как стрелка над формулой корней квадратного уравнения на Рисунке 19. Его использование существенно в этом вычислении. Без него Mathcad интерпретировал бы a c как скалярное произведение векторов, а также пометил бы квадратный корень вектора как недопустимое выражение. Но с оператором векторизации и a c, и квадратный корень вычисляются поэлементно.



Ниже приведены свойства оператора векторизации:

· Оператор векторизации изменяет значение других операторов и функций, к которым применяется. Он не изменяет значений переменных и чисел. Если применить оператор векторизации к простой переменной, это просто выведет стрелку над именем. Можно использовать эту стрелку только для косметических целей.

· Поскольку операции между двумя массивами выполняются поэлементно, все массивы под оператором векторизации должны быть одного размера. Операции между массивом и скаляром выполняются применением скаляра к каждому элементу массива. Например, если v — вектор, а n — скаляр, применение оператора векторизации к vn возвращает вектор, чьи элементы есть n-ные степени элементов v.

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

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

· Оператор векторизации применяется только к последнему, скалярному аргументу interp и linterp. Другие аргументы остаются незатронуты. См. “Интерполяция и функции предсказания” в Главе “Статистические функции”.

Можно использовать векторы и матрицы, чтобы определить сразу несколько переменных. Это делается размещением массива имен переменных слева от := и соответствующего массива значений справа. Mathcad присваивает значения, стоящие справа, к соответствующим именам слева. Левая сторона одновременного определения — вектор или матрица, чьи элементы являются либо именами простых переменных, либо переменных с индексом. Правая сторона должна быть выражением, принимающим значение массива с тем же самым числом строк и столбцов, что и левая сторона.

Рисунок 20: Одновременные определения.

Mathcad присваивает каждой переменной слева значение выражения из соответствующей позиции справа. Рисунок 20 показывает два таких определения.

Mathcad вычисляет все элементы справа перед присваиванием значения любого из них левой стороне. Поэтому правая сторона не должна содержать никаких выражений, зависящих от переменных с левой стороны. Также никакая переменная не может встречаться слева больше чем один раз. Одновременные определения полезны для многократного вычисления группы формул одновременно. Отдельные примеры описаны в Главе “Дискретные аргументы”.

 

Аргументы в определении функции не обязаны быть скалярными переменными. Они могут также быть векторами или матрицами. Функции могут также возвращать значения, которые являются скалярами, векторами или матрицами. Рисунок 21 показывает некоторые примеры функций, имеющих аргументами массивы, и функций, которые возвращают массивы. Обратите внимание, что, если функция ожидает вектор или матрицу в качестве аргумента, она не будет работать для скалярного аргумента. В примере из Рисунка 21 попытка вычислить extent(3) приведёт к сообщению об ошибке “требуется массив”.

Рисунок 21: Функции пользователя, связанные с векторами и матрицами.

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

 

 

Элемент массива не обязан быть скаляром. Возможно сделать массивом сам элемент массива — это позволяет создавать массивы из массивов.

Эти массивы ведут себя во многом схоже с массивами, чьи элементы — скаляры. Однако имеются некоторые различия:

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

· Нельзя отобразить весь составной массив. Вы будете взамен видеть строку подобную {3,2}, которая указывает, что 3 x 2 массив находится в определённой ячейке массива.

· Большинство математических операторов и функций не имеет смысла по отношению к составным массивам.

Следующие разделы проясняют эти различия.



<== предыдущая лекция | следующая лекция ==>
Как применять оператор векторизации к выражению | Определение составного массива


Карта сайта Карта сайта укр


Уроки php mysql Программирование

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

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.774 сек.