Como posso resolver um sistema de equações lineares no Excel?
-
20-09-2019 - |
Pergunta
Eu tenho um sistema, de 22 de equações lineares (exatamente 22 de equações e 22 de incógnitas), que são gerados dinamicamente em uma planilha do Excel.Existe uma maneira de ter o Excel resolver o sistema e produzir um valor para cada uma das variáveis desconhecidas?
De outro MODO a pergunta tem um monte de boas informações sobre os algoritmos utilizados para resolver tais equações. A regra de Cramer em particular, parece promissor, mas eu não tenho certeza de como implementá-lo no Excel.
Qualquer ajuda é apreciada!
Solução
Nesta página dá o seguinte método:
Introduza o coeficiente de matriz em uma nxn intervalo.
Insira o vetor de constantes em uma n-altura de coluna.Selecione um em branco n-altura de coluna.É importante que você não tem apenas uma célula selecionado.
Tipo, =MMULT(MATRIZ.INVERSA(coefficients_matrix_range), constants_vector_range) na fórmula caixa de texto e pressione [CTRL] E[SHIFT][ENTER].É importante que você não pressione simplesmente a tecla [ENTER].
Isso deve funcionar adequadamente, pois você só tem um pequeno sistema (22x22).Enquanto, o ideal é que você não iria inverter a matriz diretamente, não importa nesse caso.
Você definitivamente não deseja regra de Cramer.Devido à sua relativamente pobres propriedades numéricas, é mais teórico do que prático interesse.
Outras dicas
O que sobre Microsoft Solver Fundação?Eu me lembro que há alguns exemplo para um conjunto menor de equações simultâneas na documentação que vem com a versão express.
Você não deve sempre considerar a regra de Cramer para resolver um sistema linear!É tão ineficiente que é impossível executar até mesmo para sistemas de pequeno porte.
O Excel não é a ferramenta certa para resolver um sistema linear.Se eu fosse você eu ia escrever um simples script em python que lê o ficheiro de excel, resolver a equação (com numpy) e salvar o resultado em um arquivo do excel pode ler.(melhor ainda, evitar Excel completamente se você pode).
O Excel função PROJ.LIN deve fazê - lo-e irá retornar resultados melhores do que os MMULT(MATRIZ.INVERSA(...)...) em muitos casos.
Você também pode encontrar o PROJ.LOG, o CRESCIMENTO e a TENDÊNCIA de funções úteis.
Se você tiver quaisquer problemas com a matriz inversa calc, por exemplo,mais de / menos de fluxo / truncamento etc, você sempre pode usar o Solver - else obter uma cópia do numerical recipes in C e traduzir-se em VBA.
que pode ser linear de equações do solver podemos fazer com a matemática solver utilizando a equação matemática da raiz encontra-se entre dois mais o número de expoente parte do solver, mas encontrar a melhor forma de equação linear do solver.