Algortimo matrice INVERSA

di il
1 risposte

Algortimo matrice INVERSA

Ciao a tutti. Prima di pubblicare l'intero codice (che funziona) vi spiego il mio problema, che è più di teoria che di codice.
Allora per calcolare la matrice inversa di una generica matrica A di ordine n i passi che seguo nel mio algoritmo sono i seguenti:

* inizializzo una matrice I a matrice identica;
* effettuo la fattorizzazione LU di A;
* calcolo il determinante per capire se la matrice è o meno singolare;
* se A non è singolare procedo con il calcolo dell'inversa in questo modo:
{for(k=0;k<n;k++)
	{for(j=0;j<n;j++)
		e[j]=I[k][j]; /* e è il jesimo versore della base canonica*/
	forlu(n, ipiv, A, y, e); /*considero il sistema Ay=e */
	backlu(A, y, n, x, ipiv); /*La soluzione x di tale sistema è la jesima colonna della matrice inversa di A */
		{for(j=0;j<n;j++)
		if(j==k)
			{for(i=0;i<n;i++)
			for(j=0;j<n;j++)
			if(j==k)
			B[i][k]=x[i];
			};
		};
	};
};
ciò che non capisco è il secondo ciclo for
{for(j=0;j<n;j++)
		if(j==k)
			{for(i=0;i<n;i++)
			for(j=0;j<n;j++)
			if(j==k)
			B[i][k]=x[i];
			};
		};

1 Risposte

Devi accedere o registrarti per scrivere nel forum
1 risposte