Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Специальные функции для матрицСодержание книги Похожие статьи вашей тематики
Поиск на нашем сайте
В ML существует множество специальных функций линейной алгебры. Приведем некоторые из них: det(A) – вычисляет определитель (детерминант) матрицы. inv(A) – вычисляет инверсную (обратную) матрицу. Обратной для квадратной невырожденной (когда детерминант не равен нулю) матрицы А называется матрица А-1, которая при умножении на матрицу А справа и слева даёт единичную матрицу. B называется обратной А, если выполняется АВ=ВА=Е ( единичная матрица). eig(A) – определение собственных чисел (характеристических чисел); norm(A, 1) – норма матрицы – наибольшая сумма модулей элементов столбцов; norm(A, inf) – наибольшая сумма модулей элементов строк; trace(A) – след матрицы (сумма элементов главной диагонали). Действия с элементами матрицы Обращение к элементу осуществляется заданием имени, за которым в круглых скобках через запятую указываются индексы – номера строки и столбца. Если указать A(2,1), то выберется элемент второй строки первого столбца. Можно выделить часть матрицы. Это делается с помощью символа двоеточие (:). Пусть задана матрица:
>> A=[1 2 3;4 5 6;7 8 9] A = 1 2 3 4 5 6 7 8 9
Если двоеточие стоит вместо номера строки или столбца, то соответственно выделяются столбец или строка. Получим 3-й столбец матрицы А:
>> B=A(:,3) B =
Получим 3-ю строку матрицы А:
>> X=A(3,:) X = 7 8 9 Получим вектор-столбец из всех элементов матрицы:
>> C=A(:) C =
Индексом в ML может быть не только число, но и вектор. Этот вектор-индекс удобно задавать с помощью двоеточия. Для доступа к элементам последней строки или столбца можно использоватьв качестве индекса end. Получим матрицу С, состоящую из элементов матрицы А, начиная со второго столбца:
>> C=A(:, 2:end) C = 2 3 5 6 8 9
Поменяем местами первую и последнюю строки матрицы А:
>> D=A(1,:); >> A(1,:)=A(end,:); >> A(end,:)=D; >> A A = 7 8 9 4 5 6 1 2 3
Получим вектор С, состоящий из элементов первых трех элементов 2-го столбца матрицы А. Пусть задана матрица:
>> A=[1 2 3; 4 5 6; 7 8 9;1 0 1] A = 1 2 3 4 5 6 7 8 9 1 0 1
Запишем:
>> C=A(1:3, 2) C=
Первый индекс представляет собой вектор из трех элементов [1:3], результат – вектор-столбец С. Выделим из матрицы А квадратную матрицу С размером 2х2: >> C=A(3:4,2:3) Получим
C = 8 9 0 1
Выделим первые две строки матрицы А:
>>С=A(1:2,:) С = 1 2 3 4 5 6
Можно заменить один фрагмент матрицы другим. Пусть имеем матрицу А = [1 2 3;4 5 6; 7 8 9] и зададим матрицу С:
>> C=[20 30;10 15] C = 20 30 10 15
Заменим правый верхний угол матрицы А матрицей С. Для этого запишем: >> A(1:2,1:2)=C Измененная матрица А
A = 20 30 3 10 15 6 7 8 9
Поменяем местами 1-ю и 3-ю строки матрицы А: Используем для этого возможность задания индекса вектором. >>A=[1 2 3;4 5 6;7 8 9]; Для этого запишем: >> A([1 3],:)=A([3 1],:) Полученная матрица:
A = 7 8 9 4 5 6 1 2 3
Обращение А([1 3],:) означает первую и третью строки матрицы; А([3 1],:) – аналогично третью и первую строки. Индексация двоеточием упрощает формирование матриц по определенному закону. Пусть необходимо сформировать матрицу размером 5×5, в которой элементы первой и последней строк и первого и последнего столбцов равны единице. Остальные элементы матрицы равны нулю. Сначала создадим матрицу из нулей размером 5×5. Затем заполним первую и последнюю строки и первый и последний столбцы единицами:
>> Z(1:5,1:5)=0; >>Z(1,:)=1; >>Z(end,:)=1; >>Z(:, 1);)=1; >>Z(:, end)=1
В результате получим матрицу Z:
Z = 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 или лучше:
>> Z([1 end],:)=1; >> Z(:,[1 end])=1
Можно выполнить объединение матриц:
Ø погоризонтали
>> X=[1 2;3 4]; >> Y=[5 6;7 8]; >> Z=[X,Y] Z = 1 2 5 6 3 4 7 8
Ø по вертикали
>> Z=[X;Y] Z = 1 2 3 4 5 6 7 8
Размеры матриц должны быть согласованы. Добавим строку к матрице А: >>A=[1 2 3;4 5 6;7 8 9]; Зададим вектор В: >> B=[5 5 5]; Запишем: >> A=[A;B] Получим новую матрицу размером 4×3:
A = 1 2 3 4 5 6 7 8 9 5 5 5
Удалим из матрицы 2-ю и 3-ю строки:
>> A(2:3,:)=[] A = 1 2 3 5 5 5 Удалим из матрицы 2 столбец
>> A(:, 2)=[] A = 1 3 5 5 Можно удалить элемент из матрицы. A(3)=[] – удаление 3-го элемента матрицы.
>> A=[1 2 3;4 5 6;7 8 9] A = 1 2 3 4 5 6 7 8 9 >> A(3)=[]
Результат – вектор А, состоящий из элементов матрицы в порядке следования по столбцам без элемента А(3,1):
A = 1 4 2 5 8 3 6 9
Сделаем матрицу нулевой размерности
>>А=[];
Удаление матрицы из памяти
>>clear A
Функции, используемые для работы
Ранее мы познакомились с функциями для создания векторов и матриц. В пакете 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-04-26; просмотров: 631; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.106.66 (0.012 с.) |