Operações com matrizes complexas no Excel

jun, 2017

O software Excel da Microsoft (MS) trabalha, normalmente, com operações de números complexos e operações de matrizes reais, no entanto, embora o fato não esteja explícito, pelo que foi verificado, o Excel não possui recursos prontos para multiplicar e inverter matrizes complexas (nas quais cada elemento é um número complexo). Como exemplo de aplicação deste recurso, cito os estudos de circuitos elétricos de corrente alternada (nas equações matriciais de malhas e nas equações nodais, usuais em cálculos de curto-circuito e fluxo de carga dos sistemas de potência).

O problema se deve ao fato de que as funções do Excel “MATRIZ.INVERSO” e “MATRIZ.MULT” que invertem e multiplicam matrizes, respectivamente, funcionam para matrizes reais apenas.

Há, então, duas alternativas como solução:

  1. Usar outro software que trabalhe com matrizes complexas diretamente (como Matlab, Scilab ou outros), sendo que estes citados não são softwares tipo planilha, são do tipo linguagem;
  2. Caso se pretenda resolver no Excel, deve-se desenvolver uma programação, que dá um certo trabalho e está baseada em um artifício matemático: a matriz complexa pode ser decomposta em duas matrizes reais, uma contendo a parte real e outra a parte imaginária. A partir de então, trabalhar diversas operações com estas matrizes reais. No final, teremos uma matriz com a parte real e outra com a parte imaginária e, com elas, monta-se a matriz complexa final.

a) Inversão de matriz complexa

Pode-se deduzir que:

Inv(A+B.i) = Inv [ A+B.Inv(A).B ] – Inv [ B+A.Inv(B).A ].i

[se existirem Inv(A) e Inv(B)]

Em que:

A = matriz da parte real e B = matriz da parte imaginária. Obs: A e B são matrizes reais;

Inv(A) = matriz inversa de A;

Inv(B) = matriz inversa de B.

No exemplo a seguir, a equação matricial acima está programada.

b) Multiplicação de matrizes complexas

(A+B.i) . (C+Di) = (AC-BD) + (AD+BC) i

Em que A, B, C e D são matrizes reais.

Exemplo: neste caso, multiplicou-se o resultado do item “a” anterior, que é inv(M), por M , que tende a gerar a matriz identidade (valor aproximado a ela), comprovando que os resultados dos itens “a” e “b” estão corretos:

Oportunidades de melhorias para o software Excel:

Não havendo solução pronta via Excel, como presumo, vejo algumas oportunidades de melhorias para a MS relativas a este tema:

  • Se possível, tentar implantar recursos para inversão e multiplicação de matrizes complexas de forma simples, similar ao que foi implantado para inversão e multiplicação de matrizes reais (funções MATRIZ.INVERSO e MATRIZ.MULT). Mas não sei se isso será possível para um programa tipo planilha, realmente;

  • Enquanto isso não existe, sugiro revisar o item “ajuda” do programa e outras referências sobre operações com matrizes, informando que os comandos são válidos para matrizes reais (e não para matrizes complexas), o que evita perda de tempo e dúvidas;

  • Ainda enquanto isso não existe, sugiro também informar essa limitação ao pessoal de suporte técnico, mesmo internacional, embora considero que se já constasse nos textos de “ajuda” do programa atual, presumo que esse pessoal teria uma rápida resposta quando questionados.

Obs: a MS disponibiliza um canal de sugestões para melhorias para os softwares, o que é saudável e louvável, assim, enviei para lá minhas sugestões acima.

 

Por Edson Bittar Henriques, engenheiro eletricista, pós-graduado em energia e automação e consultor | www.projebh.com

Edição 135 – Abril 2017

Comentários

Deixa uma mensagem

%d blogueiros gostam disto: