|
|
|
|
|
|
Продолжение табл. |
|
х1 A x - 2 x Tz = ( x - А 'г)A (x-A ~lz ) - z TA~,z |
А - квадратная невырожденная |
|
|
|
|
(П1.1.64) |
симметричная матрица, |
|
|
|
|
|
JC, z |
- л-мерные векторы |
|
Г |
р х |
р х>'~\ |
|
с= р У |
х р*У j |
|
Задана р = |
|
|
|
|
|
|
L o p * y |
р у \ |
|
в = - Рх - |
Рху[рУ)"‘Рух^ Рху(рУ )"' |
|
Найти р ~ ] = |
^ |
^ |
(П 1.1.65) |
|
|
|
|
|
[ в т |
С ] |
|
А = р * - Р х у ( р У у Р У* j 1 |
|
|
|
|
|
П1.2. Матричные операции в Matlab
В настоящем подразделе описаны основные приемы выполнения мат ричных операций с использованием Matlab [64].
Для задания матриц в рабочем поле Matlab необходимо в квадратных скобках перечислить построчно все ее элементы, разделяя их пробелами или запятыми, а строки точками с запятой. Элементами матриц могут служить арифметические выражения и сами матрицы. При этом пере менные арифметических выражений должны быть определены заранее. Примеры задания матриц приведены в табл. П1.2.1.
Т а б л и ц а П1.2.1
Примеры задания матриц в Matlab
|
Текст в рабочем поле |
Результат |
|
|
А = |
|
А=[1 2;15 6] |
1 |
2 |
|
|
15 |
6 |
|
а=2; b=3; с=0.5; d=1.2; |
А = |
|
5.0000 |
1.5000 |
|
A=[a+b c*b;d/a с] |
|
0.6000 |
0.5000 |
|
|
Для обращения к конкретному элементу матрицы используется тра диционная форма записи А(2,1) - элемент, стоящий во второй строчке первого столбца. В качестве индексов могут быть использованы не толь
ко целые, но и действительные числа, а также арифметические скалярные выражения. При этом действительные значения округляются до целых.
Использование символа «двоеточие» позволяет «вырезать» из исход ной матрицы матрицу пониженной размерности. Так, операция А(1:3,2) определяет вектор столбец 1x3, сформированный из первых трех элемен тов второго столбца.
Ниже в табл. П1.2.2 приведены основные операции, которые могут быть выполнены над матрицами в Matlab.
Операции.
Функция
А+В
А-В АВ А\В
В/А
АЛЬ
sqrt(A)
ехр(А)
abs(A)
sin(A), cos(A) и т. д.
Т а б л и ц а П1.2.2
Элементарные операции и функции
Назначение
Сложение
Вычитание
Умножение
АВ ^- левое деление матриц
В 1А - правое деление матриц Возведение матрицы А в степень (матрица должна быть квадратной)
Вычисление квадратного корня из элементов матрицы А Вычисление значений экспоненты для элементов матрицы А
Вычисление значений модулей элементов матрицы А
Вычисление тригонометрических функций матрицы А
Важно помнить, что в системе MATLAB реализуется два типа ариф метических операций.
Операции над массивами - выполняются поэлементно.
Операции над матрицами - выполняются по правилам линейной ал гебры.
Операции сложения и вычитания над матрицами и массивами совпа дают.
Обозначения: .* ./ .Л - соответствуют поэлементным операциям ум ножения, деления и возведения в степень.
При выполнении операций над массивами они должны быть оди наковых размеров, за исключением случая, когда один из массивов представляет собой скаляр.
х = |
|
0 |
0.2500 |
0.5000 |
-0.5000 |
-0.2500 |
-0.5000 |
-0.2500 |
0 |
0.2500 |
0.5000 |
-0.5000 |
-0.2500 |
0 |
0.2500 |
0.5000 |
-0.5000 |
-0.2500 |
0 |
0.2500 |
0.5000 |
-0.5000 |
-0.2500 |
0 |
0.2500 |
0.5000 |
Тогда х.*х |
|
|
|
ans = |
|
0 |
0.0625 |
0.2500 |
0.2500 |
0.0625 |
0.2500 |
0.0625 |
0 |
0.0625 |
0.2500 |
0.2500 |
0.0625 |
0 |
0.0625 |
0.2500 |
0.2500 |
0.0625 |
0 |
0.0625 |
0.2500 |
0.2500 |
0.0625 |
0 |
0.0625 |
0.2500 |
Такая же матрица может быть получена как х.Л2
ans = |
0.0625 |
|
|
0.2500 |
0.2500 |
0 |
0.0625 |
0.2500 |
0.0625 |
0 |
0.0625 |
0.2500 |
0.2500 |
0.0625 |
0 |
0.0625 |
0.2500 |
0.2500 |
0.0625 |
0 |
0.0625 |
0.2500 |
0.2500 |
0.0625 |
0 |
0.0625 |
0.2500 |
В то же время х*х - есть результат перемножения двух квадратных матриц, т.е. ans =
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Операция хЛх - ошибочна.
При выполнении операций с матрицами их размерности должны быть согласованы.
Функции, у которых аргументами являются матрицы, порождают матрицу, полученную в результате вычисления функции для каждого элемента. Так, ехр(А) или sqrt(A) порождают матрицы с элементами exp(A(i,j) и sqrt(A(i,j). Некоторые функции, позволяющие средствами Matlab формировать и преобразовывать матрицы, описаны в табл. П1.2.3.
Формирование и преобразования матриц в Matlab
|
Функция |
Назначение |
|
Р‘ |
Транспонирование матрицы |
|
ctranspose(P) |
|
|
|
еуе(п) |
Формирование единичной п хп мерной матрицы |
|
eye(m,n) |
Формирование единичной /?/ х п мерной матрицы |
|
zeros(A) |
Обнуление матрицы А |
|
zeros(n) |
Формирование п х п матрицы, составленной из нулей |
|
zeros(n,m) |
Формирование п х т матрицы, составленной из нулей |
|
ones(n) |
Формирование п х п матрицы, составленной из единиц |
|
ones(m,n) |
Формирование т х п матрицы, составленной из единиц |
|
diag(P) |
Формирование вектора, совпадающего с главной диагона |
|
|
лью |
|
diag(v) |
Формирование квадратной матрицы с вектором v на диа |
|
|
гонали |
|
tril(P) |
Сохранение нижней и верхней треугольной матриц, соот |
|
triu(P) |
ветственно |
|
det(P) |
Вычисление определителя матрицы Р |
|
trace(P) |
Вычисление следа матрицы |
|
inv(P) |
Обращение матрицы |
|
eig(P) |
Вычисление собственных значений |
|
|
Вычисление собственных значений и собственных векто |
|
[•Я, Л] = eig(P) |
ров |
|
А - диагональная матрица собственных значений |
|
|
R - матрица нормированных собственных векторов, удов |
|
|
летворяющих уравнению PR = AR |
|
expm(P) |
Вычисление матричной экспоненты |
|
sqrtm(P) |
Вычисление одной из многих матриц, удовлетворяющих |
|
р\/2р\/2 _ р |
Заметим, что если ввести символьные переменные, то все введенные операции будут справедливы и для символьных матриц. Эти операции реализуются с использованием средств Matlab - Simbolic Math Toolbox. Для этого необходимо ввести символьные переменные. Так, например, символьные переменные D, t, w вводятся как syms D t w.
В табл. П1.2.4 приведены примеры работы с матрицами.
Примеры операций с матрицами
Текст в рабочем поле |
Результат |
|
|
|
А = |
|
|
|
Р=[12;3 4] |
|
1 |
2 |
|
|
|
3 |
4 |
|
|
|
С = |
|
|
|
Р=[1 2;3 4]; С=Р* |
|
1 |
3 |
|
|
|
2 |
4 |
|
|
|
С = |
|
|
|
C=c(ranspose(P) |
|
1 |
3 |
|
|
|
2 |
4 |
|
|
|
A = |
|
|
|
|
|
1 |
0 |
0 |
0 |
0 |
A=eye(5) |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
|
0 |
0 |
0 |
1 |
0 |
|
0 |
0 |
0 |
0 |
1 |
|
1 = |
|
|
|
|
I=ones(3) |
1 |
1 |
1 |
|
|
1 |
1 |
1 |
|
|
|
1 |
1 |
1 |
|
|
|
X = |
|
|
|
|
Р=[1 2;3 4]; X=diag(P) |
1 |
|
|
|
|
4 |
|
|
|
|
Р=[1 2;3 4]; X=diag(P); |
А = |
|
|
|
|
1 |
О |
|
|
|
A=diag(X) |
О |
4 |
|
|
|
|
ans = |
|
|
|
|
1 |
0 |
0 |
0 |
|
A=ones(4); tril(A) |
1 |
1 |
0 |
0 |
|
|
1 |
1 |
1 |
0 |
|
|
1 |
1 |
1 |
1 |
|
|
ans = |
|
|
|
|
1 |
1 |
1 |
1 |
|
A=ones(4); triu(A) |
0 |
1 |
1 |
1 |
|
|
0 |
0 |
1 |
1 |
|
|
0 |
0 |
0 |
1 |
|
Текст в рабочем поле
Р=[2.5 1.5;1.5 2.5];
det(P)
inv(P)
eig(P)
|R,L]=eig(P)
expin(P)
sqrtm(P)
Символьные операции над матицами
syms a b c d;P=[a b;b d]
r=det(P)
B=inv(P)
Продолжение табл.
Результат P =
2.5000 1.5000
1.5000 2.5000 ans =
4.0000 ans =
0.6250 -0.3750 -0.3750 0.6250
ans = 1 4
R =
0.7071 0.7071 -0.7071 0.7071
L =
l |
0 |
|
0 |
4 |
|
ans = |
|
|
28.6582 |
25.9399 |
25.9399 |
28.6582 |
ans = |
|
|
1.5000 |
0.5000 |
0.5000 |
1.5 |
p = [a, b] [b, d] r =
a*d-bA2
B =
[ d/(a*d-bA2), -b/(a+d-bA2)] [ -b/(a*d-bA2), a/(a*d-bA2)l
Задачи к приложению П1
Задача 1. Даны матрицы А и В размерности 3 x 3 и 3 x 2 соответст венно, найти:
а) определитель det(A); б) след матрицы Тг(А);
в) матрицу С = Ат-В+В.
Задача 2. Дана матрица А размерности 2 x 2 , найти: а) характеристический многочлен матрицы А; б) собственные значения матрицы А; в) обратную матрицу А'1
Задача 3. Дана матрица А = О |
а , наити матричную экспоненту е , |
О |
О |
используя ее представление в виде ряда.
Задача 4. Задана матрица А размерности 2 х 2 и столбец х соответ ствующей размерности, найти квадратичную форму у = хтАх для мат
рицы А и вектора х и определить |
оу |
|
дхт |
|
|
|
Задача 5. Заданы две блочные матрицы |
|
’ / |
Р~ |
|
!"S |
r'S |
./ |
п А |
В |
К = т С |
D и |
r S |
S = L |
к F |
G |
_М |
требуется задать число строк у блочных матриц L и М , так чтобы была справедлива операции перемножения блочных матриц, и привести выра
жения для блоков матрицы N =KS и матрицы T = S TK T
Задача 6. Уметь выполнять операции 1-4, используя Matlab.
Контрольные вопросы
1.Дайте определение диагональной единичной, симметричной и транс понированной матрицам.
2.Поясните такие понятия, как определитель, след и алгебраическое дополнение матрицы.
3.Поясните правила сложения и умножения матриц, какие матрицы на зываются коммутативными.
4.Поясните, что получается при умножении строки на матрицу, матри цы на столбец, строки на столбец и столбца на строку. При каких ус ловиях эти операции правомочны?
5.Какая матрица называется невырожденной? Что такое ранг матрицы?
6.Приведите общее правило вычисления обратной матрицы. Какая мат рица называется ортогональной?
7.Что такое характеристическое уравнение, собственные числа и собст венные векторы?
8.Какие матрицы называются подобными.
9.Запишите правило вычисления транспонированной и обратной мат риц для произведения двух матриц.
10.Поясните процедуру сведения матрицы к диагональному виду.
11.Поясните, что такое квадратичная форма, в каком случае квадратич ная форма является положительно и неотрицательно определенными? В каком смысле следует понимать матричные неравенства?
12.Каким образом можно ввести функции от матриц?
13.Как вычисляется производная и интеграл от матрицы, зависящей от времени?
14.Поясните, как вычислить производную от скалярной и вектор функ ции по векторному аргументу.
15. Поясните, как вычислить производную скалярной функции |
по |
матрице (матричный градиент).
П2. ПОСТРОЕНИЕ ГРАФИКОВ В MATLAB
П2Л. Элементарная графика Matlab
В этом подразделе описаны основные приемы и примеры построения одномерных графиков с использованием Matlab. В табл. П2.1 приведено описание функций, полезных при построении одномерных графиков [64].
Т а б л и ц а П2.1
Функции, полезные при построении одномерных графиков
Функция
plot(y)
plot(x,y)
plot(x,y,LineSpec)
plot(x,y,LincSpec,xl ,y2, LincSpec2)
fplot(‘<iiMH функunn>\limits)
ezplot(‘f(x)\[xmin
xmax])
Subplot(m,n,p)
Subplot(mnp)
Subplot mnp
grid on grid off grid Title(e<TeKCT>’)
holdon
Назначение Строит график элементов одномерного массива у в зависимости от номера элемента
Строит график, для которого элементам одномерного массива л* (значениям аргументов) соответствуют элементы у
С помощью строковой переменной LineSрес, кото рая может включать до трех символов, определяют ся тип линий, тип маркера и цвет На одном графике строится несколько функций
Строит график одной переменной в заданном ин тервале limits=[xmin xmax], если аргумент limits=[xmin xmax ymin ушах], то принимается во внимание и заданный интервал по оси у.
Аргумент ‘<имя функцш1> ’ - это либо имя м-файла, либо функция вида ‘sin(xy
Строит график функции одной переменной, запи санной в в виде символьного выражения по прави лам языка, по умолчанию в пределах [-2 л,2л]
Производит разбивку графического окна на не сколько подокон, m - количество подокон по верти кали, п - по горизонтали, р - номер подокна. Эти же команды могут быть использованы для перехода от одного подокна к другому Наносит координатную сетку на текущие оси, уда
ляет эту сетку, выполняет роль переключателя с одной функции на другую Размещает заголовок в виде указанного текста над графиком Размещает график в том же окне