
- •Введение
- •Основы программирования в среде пакета matlab Типы данных
- •Имена переменных и функций
- •Операция присваивания
- •Генерация обычных векторов и матриц
- •Операции над данными Стандартные функции Matlab
- •Манипуляции с матрицами
- •Операторы языка Matlab
- •Основные логические функции
- •Оператор выбора
- •Формирование собственных m-файлов пользователя
- •Глобальные переменные
- •Графические средства пакета matlab
- •Двухмерная графика
- •Трехмерная графика
Манипуляции с матрицами
tril (A) – формирует треугольную матрицу как нижнюю часть от матрицы A;
triu(A) – формирует треугольную матрицу как верхнюю часть от матрицы А.
» A=[1 2 3; 4 5 6; 7 8 9];
» tril(A)
ans =
1 0 0
4 5 0
7 8 9
» triu(A)
ans =
1 2 3
0 5 6
0 0 9
lu(A) – разложение Холецкого – заменяет квадратную матрицу A скалярным произведением двух треугольных матриц L и U методом Гаусса:
» A=[1 2 3; 4 5 6; 7 8 9];
» [L,U]=lu(A)
L =
0.1429 1.0000 0
0.5714 0.5000 1.0000
1.0000 0 0
U =
7.0000 8.0000 9.0000
0 0.8571 1.7143
0 0 0.0000
» L*U
ans =
1 2 3
4 5 6
7 8 9
Эта функция является ключевой для решения матричного уравнения Ax=b в виде x=A\b, а также для обращения матрицы и вычисления ее определителя.
inv(A) – возвращает матрицу A-1, обратную заданной квадратной матрице A;
det(A) – возвращает определитель квадратной матрицы A.
fliplr(A) – поворот матрицы A на 180 в горизонтальном направлении;
flipud(A) – поворот матрицы A на 180 в вертикальном направлении;
rot90(A) – поворот матрицы A на 90 против часовой стрелки;
rot90(A, k) – поворот матрицы A на k*90 против часовой стрелки (k – целое число);
reshape(A, p, q) – перегруппировка матрицы A по столбцам в матрицу размерностью pq (если матрица А имеет размерность mn, то p*q=m*n).
» A=[1 2 3; 4 5 6]
A =
1 2 3
4 5 6
» fliplr(A)
ans =
3 2 1
6 5 4
» flipud(A)
ans =
4 5 6
1 2 3
» rot90(A)
ans =
3 6
2 5
1 4
» rot90(A,3)
ans =
4 1
5 2
6 3
» reshape(A,3,2)
ans =
1 5
4 3
2 6
Манипуляции с векторами
cross(x, y) – векторное произведение векторов x и y в трехмерном пространстве;
cross(A, B, dim) – векторное произведение многомерных массивов A и B по размерности dim;
dot(x, y) – скалярное произведение векторов x и y;
dot(A, B, dim) – скал. произведение многомерных массивов A и B по размерности dim.
Длины векторов x и y, а также длина матриц A и B по размерности dim должны быть равны 3.
Базовые операции анализа
Пусть a,b,c – числа, х,у,z – векторы, А,В,C – матрицы.
c=max(a, b) – возвращает максимальное из двух чисел a и b (при комплексных аргументах по умолчанию сравниваются модули):
z=max(x, y) – вектор той же размерности, что x и y, составленный из максимальных элементов векторов;
C=max(A, B) – матрица той же размерности, что и , составленная из максимальных элементов матриц.
xmax=max(x) – максимальный элемент вектора x;
[xmax, imax]=max(x) – дополнительно записывает адрес максимального элемента в числовую переменную imax (если максимальных элементов несколько, возвращается адрес первого из них);
amax=max(A) – возвращает вектор-строку amax из максимальных элементов столбцов матрицы А;
[amax, imax]=max(A) – дополнительно формируется вектор-строка imax, составленный из номеров строк, в которых расположены максимальные элементы столбцов.
» a=1; b=2; x=[1 3 2]; y=[2 1 3]; A=[1 2 3; 4 5 6]; B=[3 2 1; 6 5 4];
» c=max(a,b)
c =
2
» z=max(x,y)
z =
2 3 3
» C=max(A,B)
C =
3 2 3
6 5 6
» xmax=max(x)
xmax =
3
» [xmax imax]=max(x)
xmax =
3
imax =
2
» amax=max(A)
amax =
4 5 6
» [amax imax]=max(A)
amax =
4 5 6
imax =
2 2 2
Работа с функцией min полностью аналогична.
xm=mean(x) – возвращает среднее арифметическое элементов вектора х;
Am=mean(A) – возвращает вектор-строку Am, составленный из средних арифметических элементов столбцов;
» xm=mean(x)
xm =
2
» Am=mean(A)
Am =
2.5000 3.5000 4.5000
xs=sum(x) – возвращает сумму элементов вектора х;
As=sum(A) – возвращает вектор-строку As, составленный из сумм элементов каждого столбца;
Ads=trace(A) – то же, что sum(diag(A)) – возвращает сумму элементов, расположенных на главной диагонали;
xp=prod(x) – возвращает произведение элементов вектора х;
prod(A) – возвращает вектор-строку Ар, составленный из произведений элементов каждого столбца;
cumsum(x) – кумулятивная сумма (сумма с накоплением) элементов вектора x;
cumprod(х) – кумулятивное произведение (с накоплением) элементов вектора х;
cumsum(A) – кумулятивная сумма элементов матрицы А;
cumprod(A) – кумулятивное произведение элементов матрицы А по столбцам.
» cumsum(x)
ans =
1 4 6
» cumprod(x)
ans =
1 3 6
» cumsum(A)
ans =
1 2 3
5 7 9
» cumprod(A)
ans =
1 2 3
4 10 18
norm(x)
– возвращает норму вектора х, равную
;
norm(x,
p)
– возвращает р-норму вектора х, равную
;
norm(x, Inf) – то же, что max(abs(x)) norm(x,-Inf) – то же, что min(abs(x))
xs=sort(x) – сортировка вектора x по возрастанию;
[xs is]=sort(x) – дополнительно возвращает адреса элементов в исходном массиве х в порядке возрастания элементов;
xsd=fliplr(sort(x)) – сортировка вектора х по убыванию;
y=diff(x) – вычисляет конечные разности:
если
,
то
у1 y2 уn-1
z=diff(x,k) – вычисляет k-ю конечную разность:
z=diff(x,2)
rank(A) – возвращает ранг матрицы – количество линейно независимых строк (столбцов).