Обобщенное собственное значение в Mathematica - PullRequest
1 голос
/ 26 декабря 2011

Я пытаюсь решить обобщенную проблему собственных значений с Mathematica. Я хочу найти собственные значения и собственные векторы матрицы A относительно B. Но когда я использую Eigensystem, я получаю следующую ошибку.

A = {{1, 2, 3}, {3, 6, 8}, {5, 9, 2}}
B = {{3, 5, 7}, {1, 7, 9}, {4, 6, 2}}
Eigensystem[{A, B}]

Eigensystem::exnum: Eigensystem has received a matrix with non-numerical or exact 
elements. >>

Что мне делать?

Ответы [ 2 ]

3 голосов
/ 26 декабря 2011

Ну, что касается того, что вы можете, вы можете бросить туда N[].

Как почему вы получаете ошибку, которую вы делаете, я не уверен сейчас.может быть кто-то другой знает.

A={{1,2,3},{3,6,8},{5,9,2}};
B={{3,5,7},{1,7,9},{4,6,2}};
Eigensystem[{N@A,N@B}]

Out[48]= {{1.6359272851306594,0.52597489217711,0.011174745769153706},
 {{0.0936814383974197,0.7825455672726674,-0.6155048523299302},
 {-0.8489102791046691,0.3575364071543101,0.389254486922913},
 {0.8701002165041747,-0.4913210011447429,0.03910610020848224}}}     
2 голосов
/ 27 декабря 2011

Копирование непосредственно из этих ответов , с помощью обратимых матриц вы можете использовать это для получения точных результатов в виде Root объектов:

A = {{1, 2, 3}, {3, 6, 8}, {5, 9, 2}};
B = {{3, 5, 7}, {1, 7, 9}, {4, 6, 2}};

Eigensystem[Inverse[B].A] // RootReduce
{{Root[-1 + 92 #1 - 226 #1^2 + 104 #1^3 &, 3], 
  Root[-1 + 92 #1 - 226 #1^2 + 104 #1^3 &, 2], 
  Root[-1 + 92 #1 - 226 #1^2 + 104 #1^3 &, 1]},
 {{Root[-1418 - 9903 #1 - 3824 #1^2 + 192 #1^3 &, 2], 
   Root[-2817 + 627 #1 + 2480 #1^2 + 192 #1^3 &, 2], 1},
  {Root[-1418 - 9903 #1 - 3824 #1^2 + 192 #1^3 &, 1],
   Root[-2817 + 627 #1 + 2480 #1^2 + 192 #1^3 &, 3], 1},
  {Root[-1418 - 9903 #1 - 3824 #1^2 + 192 #1^3 &, 3],
   Root[-2817 + 627 #1 + 2480 #1^2 + 192 #1^3 &, 1], 1}}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...