Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_ИТ_Практич_занятия.doc
Скачиваний:
5
Добавлен:
15.11.2019
Размер:
299.01 Кб
Скачать

Перемножение матриц и векторов

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

можно осуществить следующим образом:

>> a=[1 3 -2];

>> B=[2 0 1; -4 8 -1; 0 9 2];

>> c=[-8;3;4];

>> a*B*c

ans =

74

В математике не определена операция деления для матриц и векторов, однако в MATLAB символ \ используется для решения систем линейных уравнений.

Решение систем линейных уравнений

Решим небольшую систему, состоящую из трех уравнений с тремя неизвестными:

Введите матрицу системы в массив A, для вектора правой части используйте массив b. Решим систему при помощи символа \

>> A=[1.2 0.3 -0.2; 0.5 2.1 1.3; -0.9 0.7 5.6];

>> b=[1.3; 3.9; 5.4];

>> x=A\b

x =

1.0000

1.0000

1.0000

Правильность ответа можно проверить, умножив A на x.

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

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

>> A=zeros(3, 6)

A =

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

Один аргумент функции zeros приводит к образованию квадратной матрицы заданного размера:

>> A=zeros(3)

A =

0 0 0

0 0 0

0 0 0

Единичная матрица инициализируется при помощи функции eye:

>> I=eye(4)

I =

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

Функция eye с двумя аргументами создает прямоугольную матрицу, у которой на главной диагонали стоят единицы, а остальные элементы равны нулю:

>> I=eye(4, 8)

I =

1 0 0 0 0 0 0 0

0 1 0 0 0 0 0 0

0 0 1 0 0 0 0 0

0 0 0 1 0 0 0 0

Матрица, состоящая из единиц, образуется в результате вызова функции ones:

>> E=ones(3, 8)

E =

1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1

Использование одного аргумента в ones приводит к созданию квадратной матрицы.

MATLAB предоставляет возможность заполнения матриц случайными элементами. Результатом функции rand является матрица чисел, распределенных случайным образом между нулем и единицей, а функция randn – матрица чисел, распределенных по нормальному закону:

>> R=rand(3,5)

R =

0.8147 0.9134 0.2785 0.9649 0.9572

0.9058 0.6324 0.5469 0.1576 0.4854

0.1270 0.0975 0.9575 0.9706 0.8003

>> RN=randn(3,5)

RN =

-0.4326 0.2877 1.1892 0.1746 -0.5883

-1.6656 -1.1465 -0.0376 -0.1867 2.1832

0.1253 1.1909 0.3273 0.7258 -0.1364

Обращение к функциям rand и randn с одним входным аргументом к формированию квадратных матриц.

Вопрос об автоматическом заполнении вектор-столбцов или вектор-строк не должен поставить нас в тупик, поскольку мы знаем, что вектор-столбец или вектор-строка в MATLAB являются матрицей, у которой один из размеров равен единице. Заполним вектор-строку шестью случайными числами, для этого в командной строке наберем следующее

>> r=rand(1,6)

r =

0.1419 0.4218 0.9157 0.7922 0.9595 0.6557