Suma de matrices cuadradas

Como sabemos las matrices están presentes en la mayoría de los sistemas y ramas de las ciencias , en la física, química, biología, etc. En  la ingeniería nos topamos a diario con problemas que en consecuencia conducen a la resolución por una forma matricial como opción  más adecuada y rápida. En esta entrada veremos la suma de matrices cuadradas:
Siguiendo el sistema de acuerdo con wikipedia:
http://es.wikipedia.org/wiki/Matriz_(matem%C3%A1ticas)
Sean A,B\in\mathcal{M}_{n\times m}(\mathbb{K}). Se define la operación de suma o adición de matrices como una operación binaria +:\mathcal{M}_{n\times m}(\mathbb{K})\times\mathcal{M}_{n\times m}(\mathbb{K})\longrightarrow\mathcal{M}_{n\times m}(\mathbb{K}) tal que (A,B)\mapsto C=A+B y donde c_{ij}=a_{ij}+b_{ij}\,\! en el que la operación de suma en la última expresión es la operación binaria correspondiente pero en el campo \mathbb{K}. Por ejemplo, la entrada c_{12}\,\! es igual a la suma de los elementos a_{12}\,\! y b_{12}\,\! lo cual es a_{12}+b_{12}\,\!.

Veamos un ejemplo más explícito. Sea A,B\in\mathcal{M}_{3}(\mathbb{R})
   \begin{bmatrix}     1 & 3 & 2 \\     1 & 0 & 0 \\     1 & 2 & 2   \end{bmatrix}   +   \begin{bmatrix}     1 & 0 & 5 \\     7 & 5 & 0 \\     2 & 1 & 1   \end{bmatrix}   =   \begin{bmatrix}     1+1 & 3+0 & 2+5 \\     1+7 & 0+5 & 0+0 \\     1+2 & 2+1 & 2+1   \end{bmatrix}   =   \begin{bmatrix}     2 & 3 & 7 \\     8 & 5 & 0 \\     3 & 3 & 3   \end{bmatrix}
Para la implementación para matrices cuadradas en Visual Basic Net:
Module Module1
    Dim A(500, 500) As Double
    Dim B(500, 500) As Double
    Dim C(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 = "SUMA DE MATRICES"
        Console.Write(vbLf) 'Da un enter al titulo
        Console.Write("" & vbTab & " SUMA DE MATRICES (A+B)")
        Console.Write(vbLf)
        Console.Write(vbLf)
        Call Ingresar()
        Call SumaM()
    End Sub
    Sub Ingresar()
        ' Lee los datos ingresados por teclado
        Console.Write("" & vbTab & "Ingrese la dimension de la matriz (n): ", n)
        n = Integer.Parse(Console.ReadLine())
        '----------------------------------------------------------
        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
    '----------------------------------------------------------
    'Presentacion de la matriz A
    Sub Presentar()
        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:f2}", B(i, j))
            Next
            Console.Write("" & vbLf & "")

        Next
    End Sub
    '----------------------------------------------------------
    Function SumaM() As Double
        For i As Integer = 1 To n
            For j As Integer = 1 To n
                C(i, j) = A(i, j) + B(i, j)
            Next
        Next
        Call Imprimir()
    End Function
        sub Imprimir()
        Console.WriteLine("" & vbLf & " * La Suma (A + B) es : *" & vbLf & "")
        For i As Integer = 1 To n
            For j As Integer = 1 To n
                Console.Write("" & vbTab & "{0,2:f2}", C(i, j))
            Next
            Console.Write("" & vbLf & "")
        Next
        Console.ReadLine()
    End Sub
End Module

Con el matriz de wikipedia tenemos:


El algoritmo se acopla también a la resta de matrices solo cambias el signo.....Nos vemos y que les sea de ayuda!!

Comentarios

Entradas populares de este blog

Imprimir directamente ReportViewer a impresora predeterminada

DevComponents DotnetBar 12.5.0.2

Metodo Iterativo Gauss-Seidel en Visual Basic