miércoles, 2 de marzo de 2011

CoDiGo FuNtE DeL pRoGrAmA De MuLtIpLiCaCiOn De 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 ( ) ;
        } } }



Enlazado con el Ing. Angel Esapña

martes, 1 de marzo de 2011

MuLtIpLiCaCiOn De MaTrIcEs

Forma algebraica:
Dos matrices A y B son multiplicables si el número de columnas de A coincide con el número de filas de B.
Mm x n x Mn x p = M m x p
El elemento cij de la matriz producto se obtiene multiplicando cada elemento de la fila i de la matriz A por cada elemento de la columna j de la matriz B y sumándolos.

Producto de matrices

Propiedades de la multiplicación de matrices

Asociativa:
A · (B · C) = (A · B) · C
Elemento neutro:
A · I = A
Donde I es la matriz identidad del mismo orden que la matriz A.
No es Conmutativa:
A · B ≠ B · A
Distributiva del producto respecto de la suma:
A · (B + C) = A · B + A · C 


En lenguaje c#:


como declarar una matriz:
int[,] m=new int[2,2];

como ingresar una matriz:
int[,] m=new int[2,2];
            Console.WriteLine("ingrese una matriz de 2*2");
            for (int f=0;f<2;f++){
                for (int c=0;c<2;c++){
                    a[f,c]=int.Parse(Console.ReadLine());
                    }}



como mostrar una matriz:
            for (int f=0;f<2;f++){
                for (int c=0;c<2;c++){
                    Console.Write(a[f,c]);
                    }Console.WriteLine();}