Parando de Simplificar e FullSimplify expressando termos reais como complexos

Oct 17 2020

Estou trabalhando com funções reais, mas FullSimplifye as Simplifyexpresso como termos complexos. Presumo que isso seja porque o LeafCounté menor se alguns termos reais forem expressos como termos complexos.

Tenho procurado uma ExcludedFormsopção, Simplifymas não parece que haja, para fazer expressões complexas se tornarem reais.

Aqui está um exemplo em que estou trabalhando:

      rhs = -((2 L Sin[
     t ω] (Cos[α] - Cosh[α] + 
      Sin[α] Sinh[α]) F)/(α (Sin[α] - 
      Sinh[α])));
sol = q[t] /. 
   First@DSolve[{q''[t] + ωn^2 q[t] == 1/Subscript[M, n] rhs, 
      q[0] == 0, q'[0] == 0}, q[t], t];
sol2 = FullSimplify[sol]

Com saída

   (2 I F L (ωn Sin[t ω] - ω Sin[
     t ωn]) (Sin[(1/2 + I/2) α] - 
   Sinh[(1/2 + I/
       2) α])^2)/(α ωn (-ω + ωn) (\
ω + ωn) (Sin[α] - Sinh[α]) Subscript[M, n]
 )

Observe os I's complexos na saída

Se eu pegar a parte complexa e fizer

ComplexExpand[
  I (Sin[(1/2 + I/2) α] - 
     Sinh[(1/2 + I/2) α])^2 ] // Simplify

Então eu consigo essa expressão real

2 (Cosh[α/2] Sin[α/2] - Cos[α/2] Sinh[α/2])^2

No entanto, se eu fizer ComplexExpandem toda a expressão

ComplexExpand[sol2]

Eu entendi isso

e perdi minha forma simples.

Existe uma opção para Simplifye FullSimplifyque suprime o uso de formulários complexos? Claro, se a expressão fosse complexa, seria necessário ver a forma complexa.

obrigado

Respostas

4 chris Oct 16 2020 at 23:46

Você pode escrever

ComplexExpand /@ sol2 

ou

FullSimplify[ComplexExpand /@ sol2, Trig -> False]

o que você achar mais apropriado para seu propósito.