martes, 21 de septiembre de 2010

Algoritmo para la matriz transpuesta

Esta serie de blogs sobre matrices tiene por objetivo, el generar un laboratorio virtual para resolución de matrices de cualquier tipo.
Este documento tratara exclusivamente sobre la transpuesta, teniendo por objetivo los siguientes puntos.
1- Definición de transpuesta.
2- Algoritmo de transpuesta.
3- Objetivos de su uso.
4- Links de interes.
5- Links a distintos productos que resuelvan este problema.



1- Definición de transpuesta:

Una matriz transpuesta es aquella donde cada elemento A[i,j] pasa a estar en el lugar A[j,i] por lo que si antes la matriz era de nxm ahora lo será de mxn.

Pero el objetivo de estos blogs es solo mostrar los algoritmos asi que vamos al grano.

dada la matriz m1 con la siguiente estructura

double[,] m1 = new double[cantFilas, cantColumnas];

podría ser una matriz de la siguiente forma.

double[,] m1 = new double[3, 2];

Esta sería una matriz de 3 filas por 2 columnas, entonces la matriz resultante sería una de 2 filas por tres columnas, por definición de transpuesta.

La nueva matriz quedaria de la siguiente forma: mTranspuesta[2,3];



2- Algoritmo de transpuesta

*****************************************

Bueno veamos el algoritmo.

*****************************************


public void calcularMatrizTranspuesta(){
//Creo la matriz que se va a transponer
double[,] m1 = new double[3, 2];
m1[0,0] = 2;
m1[0, 1] = 3;
m1[1, 0] = 4;
m1[1, 1] = 5;
m1[2, 0] = 6;
m1[2, 1] = 7;
//Envio la matriz a transponer a la funcion transpuesta
double[,] m3 = Transpuesta(m1,3,2);
//lo que deberia hacer es mostrar la matriz, no es el objetivo de este blog

}

public double[,] Transpuesta(double[,] m1, int cantFilas, int cantColumnas)
{
double[,] m3 = new double[cantColumnas, cantFilas];
for (int i = 0; i < cantFilas; i++)
for (int j = 0; j < cantColumnas; j++)
m3[j, i] = m1[i, j];

return m3;
}

En el próximo blog trato de armar el de matriz inversa que es bastante mas largo.




5- Links a distintos productos que resuelven la problemática.

Para ver el ejemplo en acción entrar a la aplicación Aplicacion para la resolucion de matrices en linea

Ir al Laboratorio Virtual
Indice de algoritmos matriciales


Se acepta todo tipo de sugerencia.