Кирьянов Д. - MathCad 11 (1077323), страница 39
Текст из файла (страница 39)
В разных специфических задачах линейной алгебры применяютсяразличные виды норм. Mathcad имеет четыре встроенные функции для расчета разных норм квадратных матриц:О normi (A) — норма в пространстве L1;П погш2 (А) — норма в пространстве L2;П погтеШ — евклидова норма (euclidean norm);• normi (A) — max-норма, или «.-норма (infinity norm);• А — квадратная матрица.234Часть III.
Численные методыПримеры расчета различных норм двух матриц А и в с различающимися надва порядка элементами приведены в листинге 9.30. В последней строкеэтого листинга пояснено определение евклидовой нормы, которое похожена определение длины вектора.СоветВ большинстве задач неважно, какую норму использовать. Как видно, в обычных случаях разные нормы дают примерно одинаковые значения, хорошо отражая порядок величины матричных элементов. Определение остальных нормзаинтересованный читатель отыщет в справочниках по линейной алгебре илив справочной системе Mathcad (раздел Mathcad Resources).Листинг 9.30. Нормы матриц1002002)С004004)=6 norm3norml(Al(B)=600norm2(A)—5.465norra2(B)546.499normi(A)7normi(B)=700norme.477—5(A)norme(B)547.72322 2V1--+2'- +3+4=5.4779.2.6.
Число обусловленностиквадратной матрицыЕще одной важной характеристикой матрицы является ее число обусловленности (condition number). Число обусловленности является меройчувствительности системы линейных уравнений А • х=ь, определяемойматрицей А, К погрешностям задания вектора ь правых частей уравнений.Чем больше число обусловленности, тем сильнее это воздействие и темболее неустойчив процесс нахождения решения. Число обусловленностисвязано с нормой матрицы и вычисляется по-разному для каждой из норм;• condi(A) — число обусловленности в норме L1;П cond2 (A) — число обусловленности в норме L2;•conde(A) — число обусловленности в евклидовой норме;• condi(A) — число обусловленности в с• А — квадратная матрица.Глава 9. Матричные вычисления235Расчет чисел обусловленности для двух матриц А Й В показан в листинге 9.31. Обратите внимание, что первая из матриц является хорошо обусловленной, а вторая — плохо обусловленной (две ее строки определяюточень близкие системы уравнений, с точностью до множителя з).
Втораястрока листинга дает формальное определение числа обусловленности какпроизведения норм исходной и обратной матриц. В других нормах определение точно такое же.ПримечаниеКак нетрудно понять, матрицы А и в из предыдущего листинга 9.30 обладаютодинаковыми числами обусловленности, т. к. В = Ю О А , И, следовательно, обематрицы определяют одну и ту же систему уравнений.! Листинг 9.31.
Числа обусловленности матриц-С3{:)6.01 J/ == 15norme(A) • n o r m e \ Aconde(A) = 1 5conde(B)= 5 . 012 X 1 0 3condi(A) = 2 1condi(B)= 7 . 217 Xcond2(A)cond2( B ) = 5 . 012 X 1 0 :condi(A) = 2 1condi(B)=14.933io3= 7 . 217 X 1 0 39.2.7. Ранг матрицыРангом (rank) матрицы называют наибольшее натуральное число к, длякоторого существует не равный нулю определитель k-го порядка подматрицы, составленной из любого пересечения к столбцов и к строк матрицы.Для вычисления ранга в Mathcad предназначена функция rank.•rank (А) — ранг матрицы;• А — матрица.I Листинг 9.32.
Ранг матрицыrank(12)= II3 6 Jrank12[З 4|=2236Часть III. Численные методыrank=1rank=29.3. Системы линейныхалгебраических уравненийЦентральным вопросом вычислительной линейной алгебры является решение систем линейных алгебраических уравнений (СЛАУ), т. е. систем уравнений видаi2• х 2 + . .
. + a i N • xN=bi.(1)В матричной форме СЛАУ записывается в эквивалентном виде:А-х=Ь,(2)где А — матрица коэффициентов СЛАУ размерности NXN, X — вектор неизвестных, ь — вектор правых частей уравнений.ПримечаниеК системам линейных уравнений сводится множество, если не сказать большинство, задач вычислительной математики. Один из таких примеров приведен в разд. "Разностные схемы для ОДУ" гл.
12.СЛАУ имеет единственное решение, если матрица А является невырожденной, или, по-другому, несингулярной, т. е. ее определитель не равен нулю.С вычислительной точки зрения, решение СЛАУ не представляет трудностей,если матрица А не очень велика. С большой матрицей проблем также невозникнет, если она не очень плохо обусловлена. В Mathcad СЛАУ можнорешить как в более наглядной форме (1), так и в более удобной для записиформе (2). Для первого способа следует использовать вычислительный блокGiven/Find (см. гл.
8), а для второго — встроенную функцию lsolve.Пlsolve (А, Ь) — решение системы линейных уравнений;• А — матрица коэффициентов системы;• ь — вектор правых частей.Применение функции lsolve показано в листинге 9.33. При этом матрица Аможет быть определена любым из способов (см. разд. "Массивы" гл. 4), необязательно явно, как во всех примерах этого раздела.
Встроенную функцию lsolveдопускается применять и при символьном решении СЛАУ (листинг 9.34).ПримечаниеСоответствующая матрице А и вектору ь система уравнений выписана явнов листинге 9.35.Глава 9. Матричные вычисления237Листинг 9.33. Решение СЛАУ1А:=0.7Г -. Л25125Ь:= 2 . 9043.1l s o l v e (А, Ь) =-0.1290.915Листинг 9.34. Символьное решение СЛАУ(продолжение листинга 9.33)-.18648 648 648648 648649lsolve ( А, Ь) —> -.12 8 64864864864864865.9148 648648648648648 6В некоторых случаях, для большей наглядности представления СЛАУ, егоможно решить точно так же, как систему нелинейных уравнений (см.
гл. 8).Пример численного решения СЛАУ из предыдущих листингов показан влистинге 9.35. Не забывайте, что при численном решении всем неизвестным требуется присвоить начальные значения (это сделано в первой строкелистинга 9.35). Они могут быть произвольными, т. к. решение СЛАУ с невырожденной матрицей единственно.СПримечаниеjПри решении СЛАУ с помощью функции Find Mathcad автоматически выбираетлинейный численный алгоритм, в чем можно убедиться, вызывая на имениFind контекстное меню.[ Листинг 9.3S.
Решение СЛАУ с помощью вычислительного блоках:=0у:=0z ;=0Givenl x + 5y + 2z = 10 . 7 х + 12у + 5z = 2 . 9З х + Оу +• 4z = 3 . 1'-0.186f i n d ( х , у , z) =-0.12 90.915]Часть III. Численные методы2389.4. Собственные векторыи собственные значения матрицВторая по частоте применения задача вычислительной линейной алгебры —это задача поиска собственных векторов х и собственных значений Я матрицы А, т.
е. решения матричного уравнения АХ=ЯХ. Такое уравнение имеетрешения в виде собственных значений Л 1 Д 2 , . . . и соответствующих имсобственных векторов xi,x2, . .. Для решения таких задач на собственныевекторы и собственные значения в Mathcad встроено несколько функций,реализующих довольно сложные вычислительные алгоритмы:П eigenvais(A) — вычисляет вектор, элементами которого являются собственные значения матрицы А;•eigenvecs (A) — вычисляет матрицу, содержащую нормированные собственные векторы, соответствующие собственным значениям матрицыА;п-й столбец вычисляемой матрицы соответствует собственному векторуп-го собственного значения, вычисляемого eigenvals;О eigenvec(A,X) — вычисляет собственный вектор для матрицы А и заданного собственного значения X;• А — квадратная матрица.Применение этих функций иллюстрирует листинг 9.36.
Проверка правильности нахождения собственных векторов и собственных значений приведена в листинге 9.37. Причем проверка правильности выражения Ах=Хх проведена дважды — сначала на числовых значениях х и X, а потом путемперемножения соответствующих матричных компонентов.Листинг 9.36. Поиск собственных векторов и собственных значений(А ;=152125О40.938eigenvals (А) =3.02413.0370.6893б' -0.27605eigenvecs ( А] =0.26171-0.6755-0.45121.848650.39890.90738.13242Глава 9.
Матричные вычисления239-0.68936e i g e n v e c (A, 0 . 9 3 8 ) =-0.261710.6755-О.27605e i g e n v e c ( А , 3.024 ) =-0.451210.84865Листинг 9.37. Проверка правильности нахождения собственных векторовсобственных значений (продолжение листинга 9.36)1520.689360.6470.261710.2460.71253040.938-0.67550.689360.6470.26171-0.67550.245-0.634vfА•eigenvecs (A)-0.6340.6470.246-0.634eigenvals ( A)Q•eigenvecs { A)(о)0.6470.246-0.634Помимо рассмотренной проблемы поиска собственных векторов и значений, иногда рассматривают более общую задачу, называемую задачей наобобщенные собственные значения: АХ-Л-ВХ.
В ее формулировке помимо матрицы А присутствует еще одна квадратная матрица в. Для задачи на обобщенные собственные значения имеются еще две встроенные функции, действие которых аналогично рассмотренным (листинги 9.38 и 9.39):Пgenvals(A,B) — вычисляет вектор v собственных значений, каждый изкоторых удовлетворяет задаче на обобщенные собственные значения;Оgenvecs(A,B} — вычисляет матрицу, содержащую нормированные собственные векторы, соответствующие собственным значениям в вектореv, который вычисляется с помощью genvais. В этой матрице i-й столбец является собственным вектором х, удовлетворяющим задаче наобобщенные собственные значения;А, в — квадратные матрицы.Часть III.
Численные методы240Листинг 9.38. Поиск обобщенных собственных векторови собственных значений1А:=0.7512 34 5 62125О4g e n v a l s (A, IB) =g e n v e c s {А, В) =В :=7890.5-0.674-0.3067-0.705440.15571-0.23715-0.938980.66792Листинг 9.39. Проверка правильности нахождения собственных векторови собственных значений (продолжение листинга 9.38)( -1 .