Multiplicación de matrices cuadradas
Hola programadores, bueno ahora algo más para este blog y un poco de teoria de Wikipedia:
 o simplemente AB, el resultado del producto es una nueva matriz C:
 o simplemente AB, el resultado del producto es una nueva matriz C:
Multiplicación de una matriz por otra matriz
Dadas dos matrices A y B, tales que el número de columnas de la matriz A es igual al número de filas de la matriz B; es decir:
- y 
- Con esa introducción un ejemplo con valores:
- El producto de dos matrices generalmente no es conmutativo, es decir, AB ≠ BA.
- y por el contrario 
- Y la Implementacion en VB2010 en Consola:
- Module Module1
 Dim A(500, 500) As Double
 Dim B(500, 500) As Double
 Dim C(500, 500) As Double
 Dim Aux(500, 500), Baux(500, 500) As Double
 Dim n As Integer ' Contienen filas y columnas respectivamente
 Sub Main()
 Console.BackgroundColor = ConsoleColor.White
 Console.Clear()
 Console.ForegroundColor = ConsoleColor.Black
 Console.Title = "Producto de Matrices"
 Console.Write(vbLf) 'Da un enter al titulo
 Console.Write("" & vbTab & " Presentacion de matrices m x n")
 Console.Write(vbLf)
 Console.Write(vbLf)
 Call Ingresar()
 Call PMM(A, B)
 Call Imprimir()
 End Sub
 Sub Ingresar()
 ' Ingresa el tamano de la matrix n x m
 Console.Write("" & vbTab & "Ingrese el orden de la matriz (n) : ", n)
 n = Integer.Parse(Console.ReadLine())
 '----------------------------------------------------------
 ' Lee los datos ingresados por teclado
 Console.WriteLine("" & vbLf & " * Ingrese los elementos de la Matriz A * " & vbLf & "")
 For i As Integer = 1 To n
 For j As Integer = 1 To n
 Console.Write("" & vbTab & "Elemento [{0},{1}] : ", i, j)
 A(i, j) = Double.Parse(Console.ReadLine()) ' Lectura de datos
 Next
 Next
 '---------------------------------------------------
 ' Lee los datos ingresados por teclado
 Console.WriteLine("" & vbLf & " * Ingrese los elementos de la Matriz B * " & vbLf & "")
 For i As Integer = 1 To n
 For j As Integer = 1 To n
 Console.Write("" & vbTab & "Elemento [{0},{1}] : ", i, j)
 B(i, j) = Double.Parse(Console.ReadLine()) ' Lectura de datos
 Next
 Next
 End Sub
 Sub Presentar()
 '----------------------------------------------------------
 'Presentacion de la matriz A
 Console.WriteLine("" & vbLf & " * La Matriz A ingresada es : *" & vbLf & "")
 For i As Integer = 1 To n
 For j As Integer = 1 To n
 Console.Write("" & vbTab & "{0,2:f4}", A(i, j))
 Next
 Console.Write("" & vbLf & "")
 Next
 '----------------------------------------------------------
 'Presentacion de la matriz B
 Console.WriteLine("" & vbLf & " * La Matriz A ingresada es : *" & vbLf & "")
 For i As Integer = 1 To n
 For j As Integer = 1 To n
 Console.Write("" & vbTab & "{0,2:f4}", B(i, j))
 Next
 Console.Write("" & vbLf & "")
 Next
 End Sub
 Function PMM(ByVal Aux(,) As Double, ByVal Baux(,) As Double) As Double
 Console.WriteLine("" & vbLf & " * El Producto (A * B) es: *" & vbLf & "")
 For i As Integer = 1 To n
 For j As Integer = 1 To n
 For k As Integer = 1 To n
 C(i, j) = C(i, j) + (Aux(i, k) * Baux(k, j))
 Next
 Next
 Next
 End Function
 Sub Imprimir()
 For i As Integer = 1 To n 'to n
 For j As Integer = 1 To n 'to m
 Console.Write("" & vbTab & "{0,2:f2}", C(i, j))
 Next
 Console.Write("" & vbLf & "")
 Next
 Console.ReadLine()
 End Sub
 End Module
- Y mis capturas:(de acuerdo al ejemplo arriba)
- para A*B
- y para B*A
- Se demuestra la propiedad no conmutativa. Bueno amigos con esto me despido hasta otra entrega!
 
 
Comentarios
Publicar un comentario