Simplificando a parte imaginária

Sep 10 2020

Estou resolvendo o seguinte autossistema e obtenho um resultado que parece de valor complexo. Espero que o resultado tenha 0 parte imaginária, alguém pode ver uma maneira de simplificá-lo?

B = {{17/3, 1/3, 1/3, 1/3}, {1/3, 1/3, 1/3, 1/3}, {1/3, 1/3, 1/3, 1/
    3}, {1/3, 1/3, 1/3, 82/3}};
A = {{5/3, 0, 1/3, 0}, {0, 5/3, 0, 1/3}, {1/3, 0, 10/3, 0}, {0, 1/3, 
    0, 10/3}};
First /@ Eigensystem[{B, A}, 1]

Respostas

5 BobHanlon Sep 11 2020 at 00:32
B = {{17/3, 1/3, 1/3, 1/3}, {1/3, 1/3, 1/3, 1/3}, {1/3, 1/3, 1/3, 1/3}, {1/3, 
    1/3, 1/3, 82/3}};
A = {{5/3, 0, 1/3, 0}, {0, 5/3, 0, 1/3}, {1/3, 0, 10/3, 0}, {0, 1/3, 0, 
    10/3}};

val = First /@ Eigensystem[{B, A}, 1];

Todos os valores são reais

valR = val // RootReduce

Element[valR, Reals]

(* True *)

valR // N

(* {8.33542, {0.0311157, -0.179391, 0.00719285, 1.}} *)

No entanto, se representados por radicais, eles devem usar números complexos (consulte Casus irreducibilis)

valR // ToRadicals

5 Bill Sep 10 2020 at 23:55
Chop[N[First /@ Eigensystem[{B, A}, 1]]]

retorna

{8.33542,{0.0311157,-0.179391,0.00719285,1.}}
4 BillWatts Sep 11 2020 at 17:24

Isso leva um bom tempo, mas funciona se você apenas quiser provar que a parte imaginária é $0$.

B = {{17/3, 1/3, 1/3, 1/3}, {1/3, 1/3, 1/3, 1/3}, {1/3, 1/3, 1/3, 1/
    3}, {1/3, 1/3, 1/3, 82/3}};
A = {{5/3, 0, 1/3, 0}, {0, 5/3, 0, 1/3}, {1/3, 0, 10/3, 0}, {0, 1/3, 
    0, 10/3}};
result = First /@ Eigensystem[{B, A}, 1]

Im[result] // FullSimplify
(*{0,{0,0,0,0}}*)

Deixei o computador funcionar durante a noite para obter a resposta. Simplifynão chegou lá.

3 Wai-GaDHo Sep 11 2020 at 00:32

Experimente a avaliação numérica com o N do Mathematica []

B = {{17/3, 1/3, 1/3, 1/3}, {1/3, 1/3, 1/3, 1/3}, {1/3, 1/3, 1/3, 
1/3}, {1/3, 1/3, 1/3, 82/3}};
A = {{5/3, 0, 1/3, 0}, {0, 5/3, 0, 1/3}, {1/3, 0, 10/3, 0}, {0, 1/3, 
0, 10/3}};
First /@ Eigensystem[{N@B, N@A}, 1]

O resultado deve ser

{8.33542, {0.0306117, -0.176485, 0.00707634, 0.983802}}
2 J.M.'sennui Sep 12 2020 at 05:55

Para pegar carona na resposta de Bill, pode-se apenas usar CountRoots[]no polinômio característico do lápis de matriz dado, se quisermos apenas mostrar que os autovalores são todos reais:

CountRoots[CharacteristicPolynomial[{B, A}, x], x]
   4

Pode-se então usar RootIntervals[]para encontrar colchetes para as raízes:

RootIntervals[CharacteristicPolynomial[{B, A}, x], Reals]
   {{{0, 0}, {0, 1}, {3, 4}, {4, 10}}, {{1}, {1}, {1}, {1}}}

Observe que a raiz em $x=0$estava exatamente isolado. O maior autovalor do lápis corresponderia à última entrada com o intervalo de isolamento$(4,10)$, que você pode dar a Solve[]:

Solve[CharacteristicPolynomial[{B, A}, x] == 0 && 4 < x < 10, x, 
      Cubics -> False, Quartics -> False]
   {{x -> Root[-19440 + 76898 #1 - 28959 #1^2 + 2401 #1^3 &, 3]}}

Bob já mencionou casus irreducibilis ; para resumir, se você insiste em uma representação radical, então o uso de uma representação complexa é (freqüentemente) inevitável, mesmo se todas as raízes forem reais.