Обчислення власних значень і власних векторів матриці, страница 3

                                              

Іn[]:=А={{-2, 1, 3},   {0, -3, 0},  {0,  2,  -2}}

0ut= {{-2.  1,  3},  {0,  -3, 0},  {0,  2,  -2}}

In[]:= CharacteristicPolynomial[A, x]

0ut[]= -12 - 16 х - 7 х2 - х3

In[]:= Simp1ify[-12 - 16 х - 7 х2 - х3]

0ut[]= -(2 + х)2 (3 + х)

Приклад 4.11 

Знайти власні значення матриці з прикладу 4.8:

Іn[]:=A={{2, 1, 4, 1}, {3, 3, 2, -2}, {4,2,-1,3}, {5, -1, 4, 2}}

 0ut[]= {{2,1,4,1},{3,3,2,-2},{4,2,-1,3},{5,-1,4,2}}

126  Розділ 4.5 Обчислення власних значень матриці в пакеті Mathematica

Іn[]:=Eigenvalues[A]

0ut[]={7.98285, 4.16393, -4.08441, -2.06237},

Матриця А має чотири дійсні власні значення.

Приклад 4.12

Тепер знайдемо власні значення матриці, побудованої після першого кроку перетворен­ня Хаусхолдера у прикладі 4.8. Ця матриця подібна матрииі А, тому їх власні значення повинні збігатися. Дійсно:

Іn[]:=Al:={{6.6667, 1.8026, 3.14175, 4.76783},

    {-0.376663, 3.04669, 1.39504, -2.01973},

    {1.30540, 2.32043, -3.06796, 2.24952},

    {1.76028, -1.76175, 0.272034, -0.645379}}

Eigenvalues[Al]

 0ut[]={7.9829,4.16393,-4.0844,-2.06238}

У пакеті Mathematica реалізовано також QR-алгоритм, що базується на пере­творенні Хаусхолдера і викликається стандартним оператором SchurDecomposition[A].

Приклад 4.13

Знайдемо власні значення матриці з прикладу 4.8 і порівняємо їх із результатами, отри­маними раніше в прикладі 4.12.

Іn[]:=A:={{2., 1., 4., 1.},

    {3., 3., 2., -2.},

    {4., 2.,-1., 3.},

    {5., -1., 4., 2.}}

{q,r}=SchurDecomposition[A]

0ut[]={{{-0.480124,-0.110723,0.869581,-0.032403},{-0.207422,-0.903897,-0.218297,0.303797},{-0.492336,-0.08314,-0.312533,-0.808094},{-0.695746,0.40472,-0.313845,0.503628}},{{7.98285,1.2333,-3.44342,2.06584},{0.,4.16393,-0.876232,0.58945},{0.,0.,-2.06237,-1.7997},{0.,0.,0.,-4.08441}}}

Іn[]:=MatrixForm[Transpose[r]]

0ut[]=

           

127  Розділ 4 Обчислення власних значень і власних векторів матриці

На діагоналі верхньої трикутної матриці лежать власні значення матриці. Порівнюючи їх і результати прикладів 4.11 і 4.12, можна пересвідчитися, що всі оператори, реалізовані у пакеті, дають однакові результати.

Приклад 4.14

Знайти, користуючись QR-алгоритмом з перетворенням Хаусхолдера, власні значення матриці

                       

Скористаємося, як і раніше, стандартним оператором SchurDecomposition[A] пакета Ma­thematica:

  Іn[]:=A:={{15., 11., 6., -9.,-15.},

               {1., 3., 8., -3., -8.},

              {7., 6., -6., -3., -11.},

              {7., 7., 5., -3., -11.},

             {17., 12., 5., -10., -16}}

{q, r}=SchurDecomposition[A]

 0ut[]= {{{0.0929574,0.549951,0.290904,0.191056,0.753515},{-0.396545,0.464417,-0.74449,0.260913,-0.0687687},{0.887067,0.0148288,-0.457883,0.0282837,0.0493443},{0.0101076,0.446266,-0.030579,-0.889828,-0.0895286},{0.217072,0.531506,0.387967,0.320668,-0.645783}},{{-10.6746,1.40927,-3.8738,4.25059,15.2622},{0.,0.22731,-21.4991,12.2005,32.8794},{0.,4.13134,0.22731,4.73529,4.71444},{0.,0.,0.,3.254,2.55549},{0.,0.,0.,0.,-0.034014}}}

Іn[]:= MatrixForm[r]

 0ut[]=

Як бачимо, отримана матриця не є трикутною, ідо свідчить про наявність у матриці А комплексних власних значень. Три дійсні власні значення визначаються діагональними елементами (-10,6746, 3,254, -0,034014), а два комплексні —діагональним блоком дру­гого порядку