Home » Calcolo » Calcolo del determinate di una Matrice 4×4

Calcolo del determinate di una Matrice 4×4

Categorie

Gravatar

Ecco il codice del sorgente C++:

#define CRT_SECURE_NO_WARNINGS
#include

float M[2][2],Ma[3][3],Matr[4][4];

float Determinante () {
float det;
det=M[0][0]*M[1][1]-M[0][1]*M[1][0];
return det;

}
float Det3X3 () {
float det=0,c;
int i,j,z=-1,n=3,x,y=0;
do
{
i=0;
j=1;
x=-1;

z=z+1;
if (z%2==0) c=Ma[z][0];
else c=Ma[z][0]*-1;
while (i<n)
{
if (i==z) i++;
if (i<n) {
j=1;
y=0;
x++;
while (j<n)
{
M[x][y]=Ma[i][j];
y++;
j++;
}
i++;
}
}
det=det+Determinante()*c;
}
while (z<n-1);
return det;
}

void main (void) {
int i,j,n,k,x,y;
float det,c;
do
{
printf ("Inserisci Ordine Matrice : ");
scanf ("%d",&n);
}
while (n4);
for (i=0;i<n;i++) for (j=0;j<n;j++) {
printf (" Inserisci numero [%d][%d]",i,j);
scanf ("%f",&Matr[i][j]);
};
if (n==1) det=Matr[0][0];
else {
if (n==2) { for (i=0;i<n;i++) for (j=0;j<n;j++) M[i][j]=Matr[i][j]; det=Determinante();}
else {
if (n==3) { for (i=0;i<n;i++) for (j=0;j<n;j++) Ma[i][j]=Matr[i][j];det=Det3X3();}
else {
k=-1;
det=0;
do {

k++;
i=0;
j=1;
x=-1;

if (k%2==0)c=Matr[k][0];
else c=Matr[k][0]*-1;
while (i<n)
{
if (i==k) i++;
if (i<n) {
j=1;
y=0;
x++;
while (j<n)
{
Ma[x][y]=Matr[i][j];
y++;
j++;
}
i++;
}
}

det=Det3X3()*c+det;
}
while (k<n-1);
}
}
}
printf ("Il determinante e' %f ",det);
getchar();
getchar();
};

Questo programma è in grado di calcolare il determinante di una matrice con indice massimo = 4


Lascia un commento