- •1.Общие сведения информационного обеспечения научного исследования
- •1.1. Печатная информация (источники непатентной информации)
- •1.2 Отраслевая библиография
- •1.3 Научно-техническая патентная информация
- •1.3.1 Источники патентной информации в Интернете
- •2. Математический пакет matlab в научных исследованиях.
- •Математический пакет matlab, простые вычисления
- •Векторы и матрицы
- •Вычисления с векторами и матрицами.
- •Компьютерная графика в научных исследованиях. Гипермедиа и мультимедиа системы
- •Предмет и область применения компьютерной графики
- •1. Отображение информации
- •2. Проектирование
- •3. Моделирование
- •4. Графический пользовательский интерфейс
- •Мультимедиа и гипермедиа
- •Графика в системе matlab
- •5.3.1. Построение двумерных графиков функций
- •5.3.2. Оформление графиков функций
- •5.3.3. Трёхмерная графика
Вычисления с векторами и матрицами.
Рассмотрим на примерах основные функции линейной алгебры, реализованные в MATLAB. Это вычисление определителя и собственных чисел, сингулярных чисел и т.д.
Для вычисления определителя (детерминанта) квадратной матрицы1 служит функция 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
Для вычисления собственных чисел матрицы необходимо использовать функцию 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
С помощью этой же функции можно выполнить сингулярное разложение2 матрицы, применив формат вызова
>>[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*Q'
ans =
1.0000 0.0000 0.0000
0.0000 1.0000 0.0000
0.0000 0.0000 1.0000
>> T*T'
ans =
1.0000 -0.0000 0.0000
-0.0000 1.0000 0
0.0000 0 1.0000
Элементами матриц 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
