Neste post será mostrado como implementar um código em linguagem C para resolver uma matriz 3 x 3.
Em análise de circuitos com mais de três malhas é comum cair em uma matriz 3×3, onde é necessário encontrar o valor de 3 variáveis que são os valores das três correntes de malha.
Código em Linguagem C
Abaixo é apresentado o código:
#include <stdio.h>
int main() {
float a[3][4] = {};
int i = 0;
int j = 0;
float delta = 0;
float x = 0;
float y = 0;
float z = 0;
printf ("Entre com os números da matriz de acordo com a matriz abaixo: \n \n");
printf ("|a[1][1] a[1][2] a[1][3] | * | x | = | a[1][4] \n");
printf ("|a[2][1] a[2][2] a[2][3] | * | y | = | a[2][4] \n");
printf ("|a[3][1] a[3][2] a[3][3] | * | z | = | a[3][4] \n \n");
for (i = 1; i < 4; i++) {
for (j = 1; j < 5; j++) {
printf ("a[%d][%d] = ", i, j);
a[i][j] = scanf ("%f", &a[i - 1][j - 1]);
}
}
delta = (a[0][0] * a[1][1] * a[2][2]) +
(a[0][1] * a[1][2] * a[2][0]) +
(a[0][2] * a[1][0] * a[2][1]) -
(a[2][0] * a[1][1] * a[0][2]) -
(a[2][1] * a[1][2] * a[0][0]) -
(a[2][2] * a[1][0] * a[0][1]);
x = ((a[0][3] * a[1][1] * a[2][2]) +
(a[0][1] * a[1][2] * a[2][3]) +
(a[0][2] * a[1][3] * a[2][1]) -
(a[2][3] * a[1][1] * a[0][2]) -
(a[2][1] * a[1][2] * a[0][3]) -
(a[2][2] * a[1][3] * a[0][1])) / delta;
y = ((a[0][0] * a[1][3] * a[2][2]) +
(a[0][3] * a[1][2] * a[2][0]) +
(a[0][2] * a[1][0] * a[2][3]) -
(a[2][0] * a[1][3] * a[0][2]) -
(a[2][3] * a[1][2] * a[0][0]) -
(a[2][2] * a[1][0] * a[0][3])) / delta;
z = ((a[0][0] * a[1][1] * a[2][3]) +
(a[0][1] * a[1][3] * a[2][0]) +
(a[0][3] * a[1][0] * a[2][1]) -
(a[2][0] * a[1][1] * a[0][3]) -
(a[2][1] * a[1][3] * a[0][0]) -
(a[2][3] * a[1][0] * a[0][1])) / delta;
if (delta == 0) {
printf ("\n");
printf ("O sistema não tem solução \n");
}
printf ("\n");
printf ("x = %f \n", x);
printf ("y = %f \n", y);
printf ("z = %f \n \n", z);
printf ("delta = %f \n \n", delta);
return 0;
}
Como exemplo de aplicação vamos executar o código e resolver a matriz apresentada abaixo:
Executando o código e preenchendo os valores obtemos os seguintes resultados:
Para verificar se o resultado está correto assisto ao vídeo abaixo:
Para mais informações sobre análise de circuitos vejam os posts abaixo: