Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

MathCAD-lections

.pdf
Скачиваний:
21
Добавлен:
10.02.2016
Размер:
1.16 Mб
Скачать

 

 

1

3

 

 

 

8

4

2

a :=

 

1

6

 

b :=

 

 

 

8

9

3

 

 

5

0

 

 

 

 

 

 

 

 

32

31

11

a × b =

 

 

 

 

 

56

58

20

 

 

40

20

10

Рис. 32 Умножение матриц

Пример умножения матицы-строки на вектор и умножения вектора на матрицу-строку приведен на Рис. 33.

Рис. 33. Умножение вектора и строки Рисунки 32 и 33 иллюстрируют тот факт, что при перемене мест сомножителей-матриц результат

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

Умножение матрицы на скаляр

Любую матрицу размерностью MхN можно умножать и делить на скаляр (Рис. 34).

Рис. 34. Умножение матрицы на скаляр

Определитель квадратной матрицы

Определитель (Determinant) матрицы обозначается стандартным математическим символом.

Чтобы ввести оператор нахождения определителя матрицы можно набрать на клавиатуре < | > (нажав клавиши <Shift>+<\>), или нажать кнопку Determinant (Определитель) на панели инструментов Matrix (Матрица) (Рис. 35).

Рис. 35. Кнопка Determinant (Определитель) на панели Matrix

31

В результате любого из этих действий появляется символ определителя с местозаполнителем , в

который следует поместить имя матрицы и нажать клавишу < = > (равно).

Результат вычисления определителя приведен на рис 36.

 

36

31

11

D :=

56

58

20

 

 

 

 

 

40

20

10

D = 720

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

Модуль вектора

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

 

1

 

 

 

 

 

a :=

1

 

 

a

 

= 5.196

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

Рис. 37. Поиск модуля вектора

Сумма элементов вектора и след матрицы

Для вычисления суммы всех элементов вектора (только вектора) нужно нажать кнопку Vector Sum (Сумма элементов вектора) на панели Matrix (Матрица) (Рис. 38), или сочетание клавиш <Ctrl>+<4>.

Рис 38. Кнопка Vector Sum (Сумма элементов вектора) на панели Matrix (Матрица)

На экране появляется знак суммы с местозаполнителем , в который вводится имя вектора.

Результат выводится нажатием клавиши < = > (равно).

Сумму элементов матрицы по диагонали называют «следом матрицы» (trace). Вычисление следа

матрицы организовано в виде встроенной функции tr( ):

tr(A) — след квадратной матрицы А.

 

 

1

 

 

36

31

11

 

a :=

 

 

 

1

D :=

 

 

 

 

 

 

56

58

20

 

 

5

 

 

 

 

 

 

 

 

40

20

10

 

 

 

 

 

a = 7

 

tr(D) = 104

 

 

32

Рис. 39. Суммирование элементов вектора и диагонали матрицы

Обратная матрица

Поиск обратной матрицы возможен, если матрица квадратная, и ее определитель не равен нулю.

Для поиска обратной матрицы нужно нажать кнопку Inverse (Обратная матрица) на панели Matrix

(Матрица) (Рис. 40), ввести в местозаполнитель имя матрицы (Рис. 41) и нажать клавишу < = > (равно).

Рис 40. Кнопка Inverse (Обратная матрица) на панели Matrix (Матрица)

 

 

36

31

11

 

 

D :=

56

58

20

 

 

 

 

 

 

 

 

 

 

 

 

40

20

10

 

 

− 1

 

 

0.25

 

−0.125

−0.025

 

=

 

 

 

−0.111 −0.144

 

D

 

0.333

 

 

 

−1.667

0.722

0.489

 

Рис. 41 Поиск обратной матрицы

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

Возведение матрицы в степень

К квадратным матрицам можно применять операцию возведения в целую степень. Результат данной операции приведен в Табл. 1. Ввести оператор возведения матрицы в степень можно точно так же, как и для скалярной величины: нажав кнопку Raise to Power (Возведение в степень) на панели

Calculator (Калькулятор) или нажав клавишу < ^ >. После появления

местозаполнителя в него следует ввести имя матрицы и показатель степени и нажать клавишу < = > (равно).

Таблица 1. Результаты возведения матрицы в степень

n

Mn

0

единичная матрица размерности матрицы M

1

сама матрица M

-1

M-1 - матрица, обратная матрицеМ

2

M·M

-2

M-1· M-1

33

Матричные функции

Функции создания матриц

Кроме описанных способов для создания матриц можно использовать встроенные функции.

Одна из них - функция matrix(M,N,f) – создает матрицу размера MхN, (где М – количество строк, а N – количество столбцов матрицы), каждый i,j элемент которой есть функция f(i,j), аргументами которой являются номер строки i и номер столбца j матрицы. (Рис. 42).

Рис. 42. Создание матрицы.

Лекция 8 MathCAD. Матрицы – продолжение. Условны функции. Нелинейные уравнения и системы уравнений

Создание матриц специального вида

Для создания матрцы специального вида в MathCAD существуют встроенные функции (Рис. 1). identity(N) - создает единичную матрицу размера NхN;

diag(v) - создает диагональную матрицу, на диагонали которой находятся элементы вектора v;

Рис. 1. Создание матриц специального вида.

Слияние и разбиение матриц

Из матрицы или вектора можно выделить либо отдельный элемент, либо вектор-столбец, либо подматрицу. И обратно, можно "склеить" несколько матриц в одну.

Выделение частей матрицы

Для выделения отдельного элемента предназначен оператор нижнего индекса (Рис. 2.).

Рис. 2. Выделение одного элемента матрицы.

34

Выделить столбец из матрицы можно нажатием кнопки (Matrix Column) на панели Matrix

или сочетанием клавиш <Ctrl>+<6> на клавиатуре. В результате получим оператор вида .

Этот оператор называют еще оператором верхнего индекса. В местозаполнителях указывается имя матрицы и индекс выделяемого столбца(Рис. 3.).

Рис. 3 Выделение одного столбца матрицы.

35

Лекция 9

36

Чтобы выделить из матрицы строку, нужно применить тот же оператор верхнего индекса к транспонированной матрице (Рис. 4).

Рис. 4 Выделение одной строки матрицы.

Для выделения подматрицы нужно использовать встроенную функцию submatrix(A,ir,jr,ic,jc), возвращающую часть матрицы А, находящуюся между строками ir, jr

и столбцами ic, jc включительно (Рис. 5).

Рис.5. Выделение подматрицы.

С помощью функции submatrix( ) можно выделить из матрицы одну строку (Рис. 6.) или один столбец (Рис. 7).

Рис. 6. Выделение строки с помощью функции submatrix( ).

 

1

3

5

 

 

3

 

submatrix

2

4

8

, 0 , 2 , 1 , 1

=

4

 

 

 

 

 

 

 

 

 

 

9

0

7

 

 

0

 

Рис. 7. Выделение столбца с помощью функции submatrix( ).

Операцией верхнего индекса и функцией submatrix( ) можно выделять части из матриц-

векторов и матриц-строк (Рис. 8.) Следует помнить только, что размер их составляет Nх1 и 1хN, соответственно (Рис. 8).

36

Лекция 9

37

submatrix[( 9 0 7 ) ,0,0,0,1] = ( 9 0 )

Рис. 8. Выделение частей из векторов и строк.

Слияние матриц

Для того чтобы составить из двух или более матриц одну, в MathCAD предусмотрены две матричные функции (Рис. 10):

функция augment (А, В, С,...) - возвращает матрицу, сформированную слиянием матриц-аргументов слева направо;

функция stack (А, В, С,...) - возвращает матрицу, сформированную слиянием матриц-

аргументов сверху вниз;

А,В,С,... — векторы или матрицы соответствующего размера.

Рис. 10. Примеры слияния матриц.

Вывод размера матриц

Для получения сведений о размерах матриц или векторов предусмотрены следующие встроенные функции (Рис. 11):

rows(A) - число строк;

cols(A) - число столбцов;

Здесь А - матрица или вектор;

length(v) - число элементов вектора;

v - вектор.

last(v) - индекс последнего элемента вектора;

Число элементов вектора length(v) и индекс его последнего элемента last(v) совпадают,

если индексы нумеруются с 1, т. е. системная константа ORIGIN равна 1.

37

Лекция 9

38

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 11. Размер матриц и векторов.

Функции сортировки матриц и векторов

Рассмотрим функции сортировки, приняв следующие обозначения: v – вектор; А – матрица; i – индекс строки или столбца.

Сортировка векторов:

sort(v) — сортировка элементов вектора в порядке возрастания (Рис.12.);

reverse(v) — перестановка элементов вектора в обратном порядке (Рис. 12);

Рис. 12. Сортировка векторов.

Сортировка матриц по столбцу:

csort(A,i) — перестановка строк матрицы сортировкой элементов i-го столбца по возрастанию (Рис. 13).

1

9

A := 3

0

 

 

2

8

1

9

3

0

csort (A ,0) = 2

8

csort (A ,1) = 2

8

 

 

 

 

3

0

1

9

Рис. 13. Сортировка матриц по столбцу.

Сортировка матриц по строке:

38

Лекция 9

39

rsort(A,i) — перестановка столбцов матрицы сортировкой элементов i-й строки по возрастанию (Рис. 14).

1

9

9

1

1

9

rsort(A ,0) = 3

0

rsort(A ,1) = 0

3

rsort(A ,2) = 3

0

 

 

 

 

 

 

2

8

8

2

2

8

Рис. 14. Сортировка матриц по строке.

Если элементы матриц или векторов комплексные, то сортировка ведется по действительной части, а мнимая часть игнорируется.

Системы линейных алгебраических уравнений

Множество, если не сказать большинство, задач вычислительной математики сводится к решению систем линейных алгебраических уравнений (СЛАУ), т. е. систем уравнений вида:

аi1х1i2х2+. . .+ainхn = bi,

где i = 1, 2, …, n

(1)

В матричной форме СЛАУ записывается в виде:

 

А×х = В

(2)

 

где А – матрица коэффициентов СЛАУ размерности n х n,

х — вектор неизвестных, В – вектор правых частей уравнений.

СЛАУ имеет единственное решение, если матрица коэффициентов А является невырожденной, (несингулярной), то есть если ее определитель не равен нулю.

ВMathCAD СЛАУ можно решить тремя способами:

с помощью обратной матрицы (Рис. 15);

с помощью встроенной функции lsolve( ) (название lsolve происходит от line solving) (Рис. 16);

с помощью вычислительного блока Given/Find (Рис. 17).

Например, нужно решить систему линейных алгебраических уравнений вида:

.

Система состоит из трех уравнений с тремя неизвестными. Проиллюстрируем решение системы перечисленными тремя методами.

Метод обратной матрицы

Задаем матрицу коэффициентов А и вектор правых частей В.

39

Лекция 9

40

 

1

5

2

1

 

A := 0.7

12

5

b := 2.9

 

 

 

 

 

 

 

 

3

0

4

3.1

 

Записываем формулу вычисления корней, через обратную матрицу и выводим

результаты:

x

y := A1×b

z

x = -0.186 y = -0.129 z = 0.915

Рис. 15. Решение СЛАУ методом обратной матрицы.

Метод встроенной функции lsolve( ).

Задаем матрицу коэффициентов А и вектор правых частей В, если они еще не заданы и

выводим результат, используя вычислительную функцию lsolve( ):

Рис. 16. Решение СЛАУ с помощью встроенной функции lsolve( ).

Метод решающего блока Given/Find.

Задаем начальные приближения для неизвестных (любые числа)

Вводим ключевое слово Given

Переписываем систему уравнений в виде логических равенств, используя знак сравнения

(Булево равенство) , который вводится комбинацией клавиш <Ctrl> + < = > или кнопкой

на панели

40

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]