Template by:
Free Blog Templates

miércoles, 2 de marzo de 2011

MULTIPLICACION DE MATRICES

MULTIPLICACION DE MATRICES
Una matriz es un arreglo de elementos:

Las matrices se denotan generalmente con mayúsculas (M). Cada elemento de una matriz se denota por mij, donde i corresponde a la hilera y j corresponde a la columna. En el ejemplo anterior, el elemento (2,2)= 8, el elemento (1,1) es 1, el elemento (1,2) es 4. Un vector es una matriz con una sola columna:


Una matriz que tiene una sola hilera se llama matriz hilera


Una matriz constituída por un solo elemento se llama escalar:

 Una matriz tiene dimension mXn, es decir el número de hileras y columnas. Por ejemplo, la dimension de M es 2X2, la dimension de V es 3X1, la dimension de H es 1X3 y la dimension de A es 1X1.

La multiplicación de Matrices Para multiplicar dos matrices, es necesario que el número de hileras de la primera matriz Q corresponda al número de columnas de la segunda matriz W. Los elementos del producto P= QW corresponden al producto de hileras por columnas, como se menciona arriba:

 En este ejemplo, el elemento (2,3)= 5 corresponde al producto de la hilera dos de Q y columna tres de W. En general, no es lo mismo AB que BA.


 PROGRAMA EN C# PARA MULTIPLICAR MATRICES

using System ;
using System.Collections.Generic ;
using System. Text ;
namespace MultiplicacionMatrices {
    class MultiplicacionMatrices {
        static void Main ( ) {
            Console. WriteLine ( "[Matriz 1]" ) ;
            Console. Write ( "Filas: " ) ;
            int f1 = int . Parse ( Console. ReadLine ( ) ) ;
            Console. Write ( "Columnas: " ) ;
            int c1 = int . Parse ( Console. ReadLine ( ) ) ;
            Console. WriteLine ( " \n [Matriz 2]" ) ;
            Console. Write ( "Filas: " ) ;
            int f2 = int . Parse ( Console. ReadLine ( ) ) ;
            Console. Write ( "Columnas: " ) ;
            int c2 = int . Parse ( Console. ReadLine ( ) ) ;
            int [ , ] Matriz1 = new int [ f1 + 1 , c1 + 1 ] ;
            int [ , ] Matriz2 = new int [ f2 + 1 , c2 + 1 ] ;
            int [ , ] Multiplicacion = new int [ f1 + 1 , c2 + 1 ] ;
            if ( c1 == f2 ) { Console. WriteLine ( " \n Datos [Matriz 1]: " ) ;
                for ( int i = 1 ; i <= f1 ; i ++ ) {
                    for ( int j = 1 ; j <= c1 ; j ++ ) {
                        Console. Write ( "Ingresa Dato (Fila: {0} - Columna: {1}): " , i, j ) ;
                        Matriz1 [ i, j ] = int . Parse ( Console. ReadLine ( ) ) ; } }
                Console. WriteLine ( "Datos [Matriz 2]: " ) ;
                for ( int i = 1 ; i <= f2 ; i ++ ) {
                    for ( int j = 1 ; j <= c2 ; j ++ ) {
                        Console. Write ( "Ingresa Dato (Fila: {0} - Columna: {1}): " , i, j ) ;
                        Matriz2 [ i, j ] = int . Parse ( Console. ReadLine ( ) ) ;
                    } }
                for ( int i = 1 ; i <= f1 ; i ++ ) {
                    for ( int j = 1 ; j <= c2 ; j ++ ) {
                        Multiplicacion [ i, j ] = 0 ;
                        for ( int z = 1 ; z <= c1 ; z ++ ) {
                            Multiplicacion [ i, j ] = Matriz1 [ i, z ] * Matriz2 [ z, j ] + Multiplicacion [ i, j ] ;
                        } } }
                Console. WriteLine ( "Multiplicacion de 2 Matrices" ) ;
                for ( int i = 1 ; i <= f1 ; i ++ ) {
                    for ( int j = 1 ; j <= c2 ; j ++ ) {
                        Console. Write ( "{0} " , Multiplicacion [ i, j ] ) ;
                    }
                    Console. WriteLine ( ) ;
                } } else { Console. WriteLine ( "Error: No se puede multiplicar las matrices" + " Columnas: {0}! = Filas: {1}" , c1, f2 ) ;
            }
            Console. Read ( ) ;
        } } }

                                                    Paso para explicar la matriz

1) Se ingresa la matriz uno, seguido se leen las filas y columnas de la matriz uno.
2) Se ingresa la matriz dos, seguido se leen las filas y columnas de la matriz dos.
3) Se declara las dos matrices y una tercera que dara el resultado.

4) Luego se analiza una condicion si la colucna de la matriz uno son iguales a las de la fila dos.
5) De haberse complido la condicion se le pedira el usuario que llene la matrices a multiplicar.
6) El programa utilisara tres for anidados que seran los que realizan todos los proceso matematicos   que conlleva todas las multiplicacion de matrices.
7) Se muestra la matriz resultante.
8) De no cumplise la condicion se mostrara un mensaje de error.

0 comentarios:

Publicar un comentario