Функции, используемые для работы с векторами и матрицами
Ранее мы познакомились с функциями для создания векторов и матриц. В пакете Matlabимеются функции, предоставляю-
щие возможность построчной или постолбцовой обработки
элементов матрицы. Это функции, позволяющие вычислить сумму либо произведение элементов, отсортировать данные, найти
максимальное и минимальные значения элементов вектора или матрицы.
Пусть имеем векторX
>> X=[9 2 3 4 15 6 1 7 ];
Рассмотрим некоторые функции.
Сумма элементов вектора:
>> sum(X)
ans =
Произведение элементов вектора:
>> prod(X)
ans =
Максимальное значение вектора:
>> max(X)
ans =
Максимальное значение вектора и его номер:
>> [m,k]=max(X)
m =
k =
Минимальное значение вектора:
>> min(X)
ans =
Минимальное значение вектора и его номер:
>> [m,k]=min(X)
m =
k =
Среднее арифметическое элементов вектора:
>> mean(X)
ans =
5.8750
Сортировка элементов вектора по возрастании:
>> sort(X)
ans =
1 2 3 4 6 7 9 15
Для сортировки элементов вектора по убыванию можно воспользоваться той же функцией:
>> Х = -sort(-X)
Х =
15 9 7 6 4 3 2 1
Разворот вектора на 90°
>>rot90(X)
Эта функция разворачивает вектор против часовой стрелки.
В результате получаем вектор-столбец:
ans =
Все эти функции можно применить к вектору, независимо от того, столбец это или строка. Для матриц используются те же функции, которые выполняют те же действия в каждом столбце матрицы.
Пусть имеем матрицу А
>> A=[1 2 3;4 5 6;7 8 9];
Рассмотрим некоторые функции.
Сумма элементов в столбцах матрицы:
>> sum(A)
ans =
12 15 18
или можно записать:
>> sum(A,1)
ans =
12 15 18
Для получения суммы элементов в строках матрицы введем команду
>> sum(A,2)
ans =
Для получения суммы всех элементовматрицы введем команду
>>sum(sum(A))
ans =
Произведение элементов матрицы по столбцам:
>> prod(A)
ans =
28 80 162
Произведение элементов матрицы по строкам:
>> prod(A')
ans =
6 120 504
Произведение чисел от 1 до 4
>> prod(1:4)
ans =
В функциях для вычисления суммы и произведения (sum и prod) элементов матрицы результатом будет вектор-строка, число элементов которой равно числу столбцов матрицы.
Есть функции, которые выдают наибольшее и наимень-
шее значения в столбцах матрицы. Результат – вектор-строка.
Максимальное значение в каждом столбце:
>> max(A)
ans =
7 8 9
Максимальное значение в каждой строке:
>> max(A')
ans =
3 6 9
Наименьшее значение:
>> min(A)
ans =
1 2 3
>> min(A')
ans =
1 4 7
Можно не только найти минимальное и максимальное значения, но и позиции этих элементов:
>> [m,k]=min(A)
Результат – два вектора, один – из минимального или максимального значений в столбцах матрицы, а второй – из позиций этих элементов в соответствующем столбце:
m =
1 2 3
k =
1 1 1
>> [m,k]=max(A)
m =
7 8 9
k =
3 3 3
Среднее арифметическое в столбцах. Результат – вектор-строка из средних арифметических в каждом столбце:
>> mean(A)
ans =
4 5 6
>> mean(A')
ans =
2 5 8
Сортировка. Сортировка элементов каждого столбца по возрастанию:
>>sort(A)
Сортировка элементов каждой строки по возрастанию:
>>sort(A,2)
Разворот матрицы на 90°
Эта функция разворачивает матрицу на 90° против часовой стрелки:
>> rot90(A)
ans =
3 6 9
2 5 8
1 4 7
’’Зеркальное’’ отображение матрицы относительно вертикальной оси:
>> fliplr(A)
ans =
3 2 1
6 5 4
9 8 7
’’Зеркальное’’ отображение матрицы относительно горизонтальной оси:
>> flipud(A)
ans =
7 8 9
4 5 6
1 2 3
Действия с полиномами (многочленами)
В ML предусмотрены функции для работы с полиномами. С помощью этих функций можно вычислить значение полинома, найти его корни, выполнить операции умножения и деления полиномов и т.д.
Полином (многочлен) – это выражение вида
P(x)=a1xn+a2xn-1+…..+anx+an+1
В системе Matlab полином задаётся и хранится в виде вектора, элементами которого являются коэффициенты полинома:
P=[a1 a2 …an an+1]
Число элементов вектора должно быть на единицу больше степени полинома. Если в полиноме отсутствует слагаемое, соответствующее какой-либо степени х, то в этом случае в векторе в качестве значения коэффициента записывается ноль.
Например, пусть задан полином 2x3+x2-3x+5. Вектор коэффициентов полинома будет
p=[2 1 -3 5]
Для вычисления значения полинома при некотором значении аргумента предназначена функция polyval(p, x), где p – вектор коэффициентов полинома; х – значение аргумента, при котором надо посчитать значение полинома.
>> P=[2 1 -3 5];
>> Y=polyval(P,1)
Y =
В результате будет вычислено значение полинома 2x3+x2-3x+5 при x=1.
В качестве аргумента х может быть указан вектор или матрица. В результате получится вектор или матрица того же размера, что и аргумент:
>> P=[2 1 -3 5];
>> X=1:5;
>>Y=polyval(P,X)
Y =
5 19 59 137 265
Элементы вектора Y – значения полинома, вычисленные для каждого элемента вектора X.
Вычислить корни полинома можно с помощью функции roots. Число корней определяется степенью полинома:
>> P=[2 1 -3 5];
>> roots(P)
ans =
-1.9388
0.7194 + 0.8786i
0.7194 - 0.8786i
В данном случае найдены три корня, из которых один вещественный и два комплексных.
Чтобы вычислить производную от полинома, следует использовать функцию polyder. Результатом этой функции является вектор, элементы которого представляют собой коэффициенты полинома-производной от исходного полинома:
>> P=[2 1 -3 5];
>> polyder(P)
ans =
6 2 -3
Для выполнения умножения и деления полиномов предназначены функции conv и deconv:
Z=conv(P1,P2),
где P1, P2 – полиномы, заданные векторами; Z – результирующий векторкоэффициентов полинома, полученного в результате перемножения полиномов, заданных векторами P1, P2.
[R1, R2]=deconv(P1,P2)
Результат работы этой функции – два вектора R1, R2, где R1, R2 – векторы коэффициентов полинома-частного и полинома-остатка, полученного в результате деления полиномов, заданных векторами P1,P2.
Графика
Система МL обладает мощными графическими возможностями. Вывод графической информации ML осуществляет в отдельное окно, которое создается автоматически, когда используется какая-либо графическая функция. Для оформления и редактирования графиков предусмотрены специальные команды.
Дата добавления: 2016-03-05; просмотров: 2007;