- •Введение
- •Лабораторная работа № 1 Знакомство с matlab и простейшие вычисления
- •Введение
- •Операции с числами и работа в режиме калькулятора
- •Комплексные числа
- •Элементарные функции
- •Порядок выполнения работы
- •Вопросы для самопроверки:
- •Лабораторная работа № 2 Векторы и матрицы
- •Лабораторная работа № 3 Вычисления с векторами и матрицами
- •Лабораторная работа № 4 Решение математических задач
- •Порядок выполнения работы
- •Лабораторная работа № 5 Решение обыкновенных дифференциальных уравнений и систем обыкновенных дифференциальных уравнений
- •Введение
- •Введение
- •Литература
- •Введение
- •Лабораторная работа № 8 Алгебраические уравнения и линейная алгебра
- •Введение
- •Лабораторная работа № 9 Решение обыкновенных дифференциальных уравнений в Mathcad
- •Введение
- •Лабораторная работа № 10 Обработка экспериментальных данных и аппроксимация характеристик нелинейных элементов
- •Введение
- •**Самостоятельная работа Символьные вычисления в Mathcad
- •Введение
Лабораторная работа № 3 Вычисления с векторами и матрицами
Цель работы: изучить основные операции над векторами и матрицами
Введение
Рассмотрим на примерах основные функции линейной алгебры, реализованные в MATLAB. Это вычисление определителя и собственных чисел, сингулярных чисел и т.д.
Для вычисления определителя (детерминанта) квадратной матрицы служит функция det(A), где А – матрица размерностью n×n:
>> A=[10 20 30;5 15 25;8 4 2]
A =
10 20 30
5 15 25
8 4 2
>> det(A)
ans =
100
Для вычисления ранга матрицы (количество сингулярных чисел матрицы, не являющихся пренебрежимо малыми) предусмотрена функция
>> rank(A)
ans =
3
Для вычисления нормы матрицы (скалярная оценка величины элементов матрицы) предусмотрен оператор
>> norm(A)
ans =
47.9607
Для определения суммы элементов главной диагонали матрицы – следа матрицы- предусмотрен оператор
>> trace(A)
ans =
27
Транспонирование матрицы реализуется с помощью символа ’ :
>> B=A'
B =
10 5 8
20 15 4
30 25 2
Обратную матрицу Z = А-1 = I/A, где I – единичная матрица, получают с помощью функции
>> Z=inv(A)
Z =
-0.7000 0.8000 0.5000
1.9000 -2.2000 -1.0000
-1.0000 1.2000 0.5000
Для создания единичной матрицы используются следующие операторы:
>> eye(4)
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
>> eye(2,4)
ans =
1 0 0 0
0 1 0 0
>> eye(size(A))
ans =
1 0 0
0 1 0
0 0 1
Матрица с единичными элементами создается с помощью операторов
>> ones(4)
ans =
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
>> ones(2,4)
ans =
1 1 1 1
1 1 1 1
>> ones(size(A))
ans =
1 1 1
1 1 1
1 1 1
Образование матрицы с нулевыми элементами возможно с помощью оператора
>> zeros(4)
ans =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
>> zeros(2,4)
ans =
0 0 0 0
0 0 0 0
>> zeros(size(A))
ans =
0 0 0
0 0 0
0 0 0
Матрицу с заданной диагональю из элементов вектора R можно создать с помощью оператора diag (R) :
>> R=[1 2 3 4]
R = 1 2 3 4
>> RB=diag(R)
RB =
1 0 0 0
0 2 0 0
0 0 3 0
0 0 0 4
Элементы вектора R могут находится или в k-ой верхней (k>0) или в
k- нижней (k<0) диагонали от главной диагонали. Это можно выполнить с помощью оператора diag(R,k):
>> Z=diag(R,2)
Z =
0 0 1 0 0 0
0 0 0 2 0 0
0 0 0 0 3 0
0 0 0 0 0 4
0 0 0 0 0 0
0 0 0 0 0 0
>> Z=diag(R,-2)
Z =
0 0 0 0 0 0
0 0 0 0 0 0
1 0 0 0 0 0
0 2 0 0 0 0
0 0 3 0 0 0
0 0 0 4 0 0
Для вычисления собственных чисел матрицы необходимо использовать функцию eig( )
>> C=eig(A)
C =
34.1199
-6.6812
-0.4387
С помощью этого оператора можно получить матрицу собственных векторов F, если изменить формат вызова:
>> [F,C]=eig(A)
F =
-0.7893 -0.3733 0.2792
-0.5536 -0.6626 -0.8410
-0.2655 0.6493 0.4635
C =
34.1199 0 0
0 -6.6812 0
0 0 -0.4387
C помощью оператора svd( ) можно вычислить сингулярные числа матрицы:
>> S=svd(A)
S =
47.9607
7.6617
0.2721
Вычисление отношения самого большого сингулярного числа к наименьшему (числа обусловленности матрицы) можно выполнить с помощью команды
>> cond(A)
ans =
176.2352
47.9607/0.2721 =176.2613
С помощью этой же функции можно выполнить сингулярное разложение матрицы, применив формат вызова
>> [Q,S,T]=svd(A)
Q =
-0.7799 0.1186 -0.6145
-0.6145 -0.3318 0.7158
-0.1190 0.9359 0.3316
S =
47.9607 0 0
0 7.6617 0
0 0 0.2721
T =
-0.2465 0.9155 0.3180
-0.5273 0.1486 -0.8366
-0.8131 -0.3739 0.4461
Элементами матриц Q и T являются ортонормированные собственные векторы, соответствующие собственным значениям матриц А*А’ и А’* A, соответственно.
В MATLAB предусмотрены поэлементные операции над матрицами, которые рассмотрим на примерах:
>> A=[10 20 30;5 15 25;8 4 2]
A =
10 20 30
5 15 25
8 4 2
>> B=[8 4 2;5 15 25;10 20 30]
B =
8 4 2
5 15 25
10 20 30
вычитание
>> A-B
ans =
2 16 28
0 0 0
-2 -16 -28
>> minus(A,B)
ans =
2 16 28
0 0 0
-2 -16 -28
сложение
>> A+B
ans =
18 24 32
10 30 50
18 24 32
>> plus(A,B)
ans =
18 24 32
10 30 50
18 24 32
умножение
>> A.*B
ans =
80 80 60
25 225 625
80 80 60
>> times(A,B)
ans =
80 80 60
25 225 625
80 80 60
возведение в степень
>> A.^2
ans =
100 400 900
25 225 625
64 16 4
>> power(A,2)
ans =
100 400 900
25 225 625
64 16 4
деление элементов матрицы слева направо
>> A./B
ans =
1.2500 5.0000 15.0000
1.0000 1.0000 1.0000
0.8000 0.2000 0.0667
деление элементов матрицы справа на лево
>> A.\B
ans =
0.8000 0.2000 0.0667
1.0000 1.0000 1.0000
1.2500 5.0000 15.0000
В MATLAB предусмотрены и матричные функции:
матричное умножение
>> A*B
ans =
480 940 1420
365 745 1135
104 132 176
>> mtimes(A,B)
ans =
480 940 1420
365 745 1135
104 132 176
деление матриц слева направо
> A/B
ans =
0 0 1
0 1 0
1 0 0
>> mrdivide(A,B)
ans =
0 0 1
0 1 0
1 0 0
обратное деление матриц
>> A\B
ans =
3.4000 19.2000 33.6000
-5.8000 -45.4000 -81.2000
3.0000 24.0000 43.0000
>> mldivide(A,B)
ans =
3.4000 19.2000 33.6000
-5.8000 -45.4000 -81.2000
3.0000 24.0000 43.0000
возведение матрицы в степень
>> A^2
ans =
440 620 860
325 425 575
116 228 344
>> mpower(A,2)
ans =
440 620 860
325 425 575
116 228 344
матричная экспонента ехр(А)
>> A=[2 7 4;1 6 2;5 3 1]
A =
2 7 4
1 6 2
5 3 1
>> Q=expm(A)
Q =
1.0e+004 *
0.5315 1.3965 0.5555
0.3558 0.9361 0.3721
0.4209 1.1051 0.4398
логарифмирование матрицы
>> A=logm(Q)
A =
2.0000 7.0000 4.0000
1.0000 6.0000 2.0000
5.0000 3.0000 1.0000
извлечение квадратного корня
>> sqrtm(A)
ans =
1.2192 + 0.7445i 1.6531 - 0.3939i 1.0267 - 0.6072i
0.1833 + 0.1900i 2.2970 - 0.1005i 0.4814 - 0.1550i
1.3760 - 1.1901i 0.5370 + 0.6296i 0.9466 + 0.9707i
Порядок выполнения работы
1. Ввести матрицы
2. Для матрицы А вычислить её основные параметры.
3. Для матриц А и В выполнить все математические операции (поэлементные и матричные).
Вопросы для самопроверки
1. Чем отличаются матричные функции от обычных функций?
2. С помощью каких операторов можно вычислить детерминант, собственные числа и ранг матрицы?
3. Какие функции предусмотрены для работы с разряжёнными матрицами?
4. Как получить диагональную, единичную и обратную матрицы?
Литература
1. С. В. Поршнев MATLAB 7. Основы работы и программирования. Учебник – М.: ООО <<Бином-Пресс>>, 2006г. -320 с.: ил.
2. Курбатов Е.А. MATLAB 7. Самоучитель. – М.: Издательский дом “Вильямс”, 2006. – 256 с.: ил.