русс | укр

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

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

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

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


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

Матричные операции


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


Матричные вычисления можно условно разделить на несколько типов. Первый тип - это простейшие действия, которые реализованы операторами(см. разд. 9.1) и несколькими функциями, предназначенными для создания,объединения, сортировки, получения основных свойств матриц и т. п. (см.разд. 9.2). Второй тип - это более сложные функции, которые реализуюталгоритмы вычислительной линейной алгебры, такие как решение системлинейных уравнений (см. разд. 9.3), вычисление собственных векторов исобственных значений (см. разд. 9.4), различные матричные разложения(см. разд. 9.5).
9.1. Простейшие операции с матрицами
Простейшие операции матричной алгебры реализованы в MathCAD в видеоператоров. Написание операторов по смыслу максимально приближено к их математическому действию. Каждый оператор выражается соответствующим символом. Рассмотрим матричные и векторные операции MathCAD 2001.Векторы являются частным случаем матриц размерности NXI, поэтому для них справедливы все те операции, что и для матриц, если ограничения особо не оговорены (например, некоторые операции применимы только к квадратным матрицам NXN). Какие-то действия допустимы только для векторов (например, скалярное произведение), а какие-то, несмотря на одинаковое написание, по-разному действуют на векторы и матрицы.
Непосредственное проведение векторных операций над строками, т. е. матрицами 1XN, невозможно; для того чтобы превратить строку в вектор, ее нужно предварительно транспонировать.
9.1.1. Транспонирование
Транспортированием называют операцию, переводящую матрицу размерности MXN в матрицу размерности ыхм, делая столбцы исходной матрицы строками, а строки - столбцами. Пример приведен в листинге 9.1. Ввод символатранспонирования (transpose) осуществляется с помощью панели инструментов Matrix(Матрица) или нажатием клавиш <Ctrl>+<!>. He забывайте,что для вставки символа транспонирования матрица должна находиться между линиями ввода. Напоминание о линиях ввода по отношению к матрицамприведено в разд. 9.1.4.



ис. 9.1.Панель инструментовMatrix
Транспонирование векторов и матриц

9.1.2. Сложение
В MathCAD можно как складывать матрицы, так и вычитать их друг издруга. Для этих операторов применяются символы <+> или <-> соответственно. Матрицы должны иметь одинаковую размерность, иначе будет выдано сообщение об ошибке. Каждый элемент суммы двух матриц равен суммесоответствующих элементов матриц-слагаемых (листинг 9.2).
Сложение и вычитание матриц

Кроме сложения матриц, MathCAD поддерживает операцию сложения матрицы со скаляром (листинг 9.3). Каждый элемент результирующей матрицыравен сумме соответствующего элемента исходной матрицы и скалярнойвеличины.
Сложение матрицы со скаляром

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

9.1.3. Умножение
При умножении следует помнить, что матрицу размерности MXN допустимоумножать только на матрицу размерности NXP (р может быть любым). В результате получается матрица размерности МХР.
Чтобы ввести символ умножения, нужно нажать клавишу со звездочкой <*>или воспользоваться панелью инструментов Matrix(Матрица), нажав на нейкнопку Dot Product(Умножение) (рис. 9.1). Умножение матриц обозначается по умолчанию точкой, как показано в листинге 9.5. Символ умноженияматриц можно выбирать точно так же, как и в скалярных выражениях(см. разд. "Управление отображением некоторых операторов" гл. 2).

Умножение матриц

Обратите внимание, что попытка перемножить матрицы A и B несоответствующего (одинакового 2х3) размера оказалась безрезультатной: после введенного знака равенства находится пустой местозаполнитель, а само выражение в редакторе MathCAD выделяется красным цветом. При установкекурсора на это выражение, появляется сообщение о несовпадении числастрок первой матрицы числу столбцов второй матрицы.
Еще один пример, относящийся к умножению вектора на матрицу-строку и,наоборот, строки на вектор, приведен в листинге 9.6. Во второй строке этоголистинга показано, как выглядит формула при выборе отображения оператора умножения No Space(Вместе).

Умножение вектора и строки

Тот же самый оператор умножения действует на два вектора по-другому(см. разд. 9.1.6).
Аналогично сложению матриц со скаляром определяется умножение и деление матрицы на скалярную величину (листинг 9.7). Символ умножения вводится так же, как и в случае умножения двух матриц. На скаляр можно умножать любую матрицу MXN.
Умножение матрицы на скаляр

9.1.4. Определитель квадратной матрицы
Определитель (Determinant) матрицы обозначается стандартным математическим символом. Чтобы ввести оператор нахождения определителя матрицы,можно нажать кнопкуDeterminant(Определитель) на панели инструментовMatrix(Матрица) (рис. 9.2) или набрать на клавиатуре <|> (нажав клавиши<Shift>+<\>). В результате любого из этих действий появляется местозапол-нитель, в который следует поместить матрицу. Чтобы вычислить определитель уже введенной матрицы (именно этот случай показан на рис. 9.2), нужно:
1. Переместить курсор в документе таким образом, чтобы поместить матрицу между линиями ввода (напоминаем, что линии ввода - это вертикальный и горизонтальный отрезки синего цвета, образующие уголок,указывающий на текущую область редактирования).
2. Ввести оператор нахождения определителя матрицы.
3. Ввести знак равенства, чтобы вычислить определитель.


Рис. 9.2Ввод символаопределителя матрицы
Результат вычисления определителя приведен в листинге 9.8.

Поиск определителя квадратной матрицы

9.1.5. Модуль вектора
Модуль вектора (vector magnitude) обозначается тем же символом, что и определитель матрицы. По определению, модуль вектора равен квадратномукорню из суммы квадратов его элементов (листинг 9.9).
Поиск модуля вектора

9.1.6. Скалярное произведение векторов
Скалярное произведение векторов (vector inner product) определяется как скаляр, равный сумме попарных произведений соответствующих элементов.Векторы должны иметь одинаковую размерность, скалярное произведениеимеет ту же размерность. Скалярное произведение двух векторов и и v равноu-v= | u | * | v | -cose, где 6 - угол между векторами. Если векторы ортогональны,их скалярное произведение равно нулю. Обозначается скалярное произведение тем же символом умножения (листинг 9.10). Для обозначения скалярного произведения пользователь также может выбирать представление оператора умножения.

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

Скалярное произведение векторов

С осторожностью перемножайте несколько (более двух) векторов. По-разномурасставленные скобки полностью изменяют результат умножения. Примеры такого умножения см. в листинге 9.11.
Скалярное произведение векторов, умноженное на третий вектор

9.1.7. Векторное произведение
Векторное произведение (cross product) двух векторов и и v с углом 0 междуними равно вектору с модулем |ui-|v|-sin9, направленным перпендикулярноплоскости векторов и и v. Обозначают векторное произведение символом х,который можно ввести нажатием кнопки Cross Product(Векторное произведение) в панели Matrix(Матрица) или сочетанием клавиш <Ctrl>+<8>.Пример приведен в листинге 9.12.
Векторное произведение

9.1.8. Сумма элементов вектораи след матрицы
Иногда бывает нужно вычислить сумму всех элементов вектора. Для этогосуществует вспомогательный оператор (листинг 9.13, первая строка), задаваемый кнопкой Vector Sum(Сумма вектора) на панели Matrix(Матрица)или сочетанием клавиш <Ctrl>+<4>. Этот оператор чаще оказывается полезным не в векторной алгебре, а при организации циклов с индексированными переменными.
На том же листинге 9.13 (снизу) показано применение операции суммирования диагональных элементов квадратной матрицы. Эту сумму называютследом (trace) матрицы. Данная операция организована в виде встроенной функции tr:
- tr (A) - след квадратной матрицы А.
Суммирование элементов вектора и диагонали матрицы

9.1.9. Обратная матрица
Поиск обратной матрицы возможен, если матрица квадратная, и ее определитель не равен нулю (листинг 9.14). Произведение исходной матрицы наобратную по определению является единичной матрицей. Для ввода оператора поиска обратной матрицы, нажмите кнопку Inverse(Обратная матрица)на панели инструментов Matrix(Матрица).
Поиск обратной матрицы

9.1.10. Возведение матрицы в степень
К квадратным матрицам можно формально применять операцию возведенияв степень п. Для этого п должно быть целым числом. Результат данной операции приведен в табл. 9.1. Ввести оператор возведения матрицы м в степеньп можно точно так же, как и для скалярной величины: нажав кнопку Raiseto Power(Возвести в степень) на панели Calculator(Калькулятор) или нажвклавишу <л>. После появления местозаполнителя в него следует ввести значение степени п.
Некоторые примеры возведения матриц в степень приведены в листинге 9.15.
Примеры возведения квадратной матрицы в целую степень

9.1.11. Векторизация массивов
Векторная алгебра MathCAD включает несколько необычный оператор, который называется оператором векторизации (vectorize operator). Этот операторпредназначен, как правило, для работы с массивами. Он позволяет провестиоднотипную операцию над всеми элементами массива (т. е. матрицы иливектора), упрощая тем самым программирование циклов. Например, иногдатребуется умножить каждый элемент одного вектора на соответствующийэлемент другого вектора. Непосредственно такой операции в MathCAD нет,но ее легко осуществить с помощью векторизации (листинг 9.16). Для этого:
1. Введите векторное выражение, как показано во второй строчке листинга(обратите внимание, что в таком виде символ умножения обозначаетоператор скалярного произведения векторов).
2. Переместите курсор таким образом, чтобы линии ввода выделяли все выражение, которое требуется подвергнуть векторизации (рис. 9.3).
3. Введите оператор векторизации, нажав кнопку Vectorize(Векторизация) на панели Matrix(Матрица) (рис. 9.3), или сочетанием клавиш <Ctrl>+<->.
4. Введите <=>, чтобы получить результат.


Рис. 9.3.Оператор векторизации
Использование векторизациидля перемножения элементов вектора

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

9.1.12. Символьные операции с матрицами
Все матричные и векторные операторы, о которых шла речь выше, допустимо использовать в символьных вычислениях. Мощь символьных операцийзаключается в возможности проводить их не только над конкретными числами, но и над переменными. Несколько примеров приведены в листинге 9.18.
Примеры символьных операций над векторами и матрицами

Cовет
Смело используйте символьный процессор в качестве мощного математического справочника. Например, когда вы хотите вспомнить какое-либо определение из области линейной алгебры (так, правила перемножения и обращенияматриц показаны в первых строках листинга 9.18).

 



<== предыдущая лекция | следующая лекция ==>
Матричные игры. | 


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


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

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

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


 


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

 
 

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

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