КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Решение основных задач линейной алгебры
При реализации многих задач, связанных с матричной алгеброй, полезными могут оказаться функции для оценок основных характеристик: det(A) - определитель квадратной матрицы; rank(A) - ранг матрицы; trace(A) - след матрицы (сумма элементов главной диагонали);
Выше среди операций системы мы уже упоминали операцию транспонирования матрицы:
и возведения в степень (матричного умножения на себя или инверсии):
При решении многих задач (например, при оценке сходимости методов) используется понятие нормы вектора (матрицы). В рас-сматриваемой системе для поиска нормы предлагается функции norm(A) и norm(A, k). Если А - вектор, то норма определяется (по умолчанию k=2) ; при k=inf и k=-inf соответственно |A|= max(|Ai|) и |A|= min(|Ai|);
Если А - матрица, то норма определяется только для k=1, 2, inf и fro (по умолчанию k=2): k=1 - ; k=2 - max(svd(A)) - максимальное из сингулярных чисел матрицы (значений квадратных корней из собственных чисел матрицы А ' А); k=inf - ; k='fro' -, B=A'*A:
Для задачи решения системы линейных алгебраических уравнений, одной из популярнейших в вычислительной математике, предусмотрены даже "элементарные" операции для подобной задачи. Так для решения системы AX=B (A -матрица коэффициентов размерности mґn, B- матрица правых частей размерности n x k, Х - матрица из k векторов-столбцов решений) можно использовать команду обратного деления "\". Например, для решения системы x1+2 x2+3 x3 = 3 (или 3) задаем (построчно) матрицу коэффициентов и векторов правой части
и выполнить
При решении системы XA=B можно воспользоваться операцией обычного деления. Так решение той же системы
(обратите внимание на строчное представление решений). Под кажущейся простотой решения скрывается достаточно серьезный анализ структуры матрицы и использование лучшего по точности и быстродействию алгоритма (метод Гаусса, разложение Холецкого и др.) Для прямоугольной матрицы А (m№n) решение строится по минимуму квадрата ошибки (используется QR-разложение на основе преобразований Хаусхолдера) и не сопровождается сообщениями о множественности решений или переопределенности системы:
Естественно, что квадратная матрица коэффициентов должна быть невырожденной (определитель отличен от нуля) и в противном случае выдается сообщение Matrix is singular to working precision и элементы решения принимают значения inf (не определено). Особого упоминания заслуживает обращение (инверсия) матрицы, для которого предусмотрена операция возведения в степень -1 и функция inv(A):
Напомним, что обращение матрицы может оказаться полезным при решении системы AX=B в виде X=A-1B:
При решении линейных систем и других задач интересно пред-ставление матрицы разложением на матрицы упрощенной структуры. [L,U]=lu(A) - дает т.н. LU-разложение произвольной квадратной матицы в виде произведения нижней и верхней треугольных матриц A=LU (в матрице L возможны перестановки); такое представление позволяет, в частности, решение системы АХ=В свести к двум простым системам LZ=B, UX=Z. [L,U,P]=lu(A) - дает LU-разложение c выводом матрицы перестановок Р такой, что PA=LU.
R=chol(A), [R,p] =chol(A) - дает разложение Холецкого для по-ложительно определенной симметрической матрицы A=RўR, где R - верхняя треугольная матрица. Если матрица А не является положительно определенной, то в первом варианте возникает сообщение об ошибке и во втором R - матрица порядка q=p-1:
В приведенном примере лишь первые два главных минора положительны (det(С)= -3) и, соответственно, q=2 и RўR дает второй главный минор матрицы С. [Q,R]=qr(A), [Q,R,P]=qr(A), [Q,R]=qr(A,0) находит QR-разложение для прямоугольной матрицы размерности m x n: [Q,R]=qr(A) - в виде A=QR произведения унитарной матрицы Q (Q*Q'=E) и верхней треугольной матрицы R:
[Q,R,P]=qr(A) отличается от предыдущего упорядочением по убыванию модулей диагональных элементов R и наличием соответст-вующей матрицы перестановок Р (A*P'=Q*R); [Q,R]=qr(A,0) при m>n отличается тем, что вычисляются лишь n столбцов матрицы Q. Если после выполнения QR-разложения выполнить команду [Q1,R1]=qrdelete(Q,R,k), то будет выполнен пересчет матриц для варианта, когда в матрице А удален k-й столбец. Если после QR-разложения выполнить команду [Q1,R1]=qrdelete(Q,R,k,X), то будут пересчитаны матрицы для варианта, когда в матрице А перед столбцом k вставлен столбец Х. X=nnis(A,B), X=nnis(A,B,t) позволяют искать решение системы АХ=В методом наименьших квадратов, где отыскиваются неотрицательные решения Х, минимизирующие norm(A*X-B) или гарантирующие точность e при задании t=max(m,n)*norm(A,1)* e. Особое место в библиотеке занимают средства для вычисления собственных чисел и векторов. В простейшем варианте отыскиваются ненулевые решения системы АХ=lX командами d=eig(A) или [X,d]=eig(A) (d- диагональная матрица собственных чисел, Х -матрица из нормированных собственных векторов):
Для проверки качества поиска (при значительных размерностях и многочисленных особых случаях такая проверка весьма желатель-на) достаточно проверить на близость к нулю значений A*X=R*D:
Функции d=eig(A,B) и [V,D]= eig(A,B) позволяют решать полную (обобщенную) проблему собственных значений АХ=lBX. Решение задачи осуществляется на основе QR-алгоритма и его модификаций и при числе итераций, превышающем 30Ч n, может быть прервано с сообщением Solution will not converge (решение не сходится). Проблему собственных значений можно решать и для матричного полинома (A0+lA1l2A2+...+lpAp)X=0 командой [R,d]=polyeig(A0,A1,.., Ap), где R- матрица размера n x (n x p) собственных векторов. При р=0 эта функция тождественна eig(A0), при р=1 - eig(A0,-A1) и в случае матриц с n=1 (скаляров) - roots (Ap,...,A1,A0), то есть ищет корни уравнения Aplp+...+ A2l2 +A1l +A0=0. Для решения ряда задач используется функция сингулярного разложения матрицы в формах s=svd(A), [U,S,V]=svd(A), [U,S,V]=svd(A,0) - матрица А размерности m x n (mіn) представляется в виде A=U*S*Vў, где Uў*U=V*Vў=E, S=diag(s1,s2,...,sn). Здесь U состоит из n собственных векторов для n наибольших собственных зна-чений матрицы ААў, а V - из ортонормированных собственных векторов матрицы АўА; на диагонали матрицы S - значения квадратных корней из собственных чисел матрицы АўА (сингулярные числа). наверх следующая глава
Дата добавления: 2014-01-05; Просмотров: 487; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |