Código em Linguagem C para resolver uma matriz 3 x 3

Código em Linguagem C para resolver uma matriz 3 x 3

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:

Exercício de análise de circuitos para ser resolvido com código em Linguagem C para resolver uma matriz 3 x 3

Executando o código e preenchendo os valores obtemos os seguintes resultados:

Valor das três correntes do circuito anterior

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: