Operaciones Con Matrices En Visual Basic

Páginas: 5 (1222 palabras) Publicado: 11 de abril de 2012
Operaciones con matrices
 
Suma de matrices
Sólo se pueden sumar matrices del mismo orden. La matriz suma es otra matriz del mismo orden que se obtiene sumando los elementos de las dos matrices situados en la misma posición. Por ejemplo:
[pic]


Aunque, como veremos más adelante, el objeto Matrix realiza todas las operaciones que necesitemos por nosotros, vamos a escribir, a títulomeramente ilustrativo, una función que halle la suma de dos matrices. Le entregaremos un par de arrays de tipo Decimal y de la misma dimensión que harán de matrices, y devolverá otro array cuyos elementos serán la matriz suma:

Public Function Suma(ByVal Matriz1(,) As Decimal, ByVal Matriz2(,) As Decimal) As Decimal(,)
'Comprobamos que las dos matrices son del mismo orden,
'esdecir, que las dos tienen igual número de filas
'e igual número de columnas
If Not Matriz1.GetUpperBound(0) = Matriz2.GetUpperBound(0) AndAlso _
Matriz1.GetUpperBound(1) = Matriz2.GetUpperBound(1) Then Exit Function
 
'Creamos la matriz suma
Dim MatrizSuma(Matriz1.GetUpperBound(0), Matriz1.GetUpperBound(1)) As Decimal
 
Dim i, j As Short
'Ysumamos las matrices
For i = 0 To Matriz1.GetUpperBound(0)
For j = 0 To Matriz1.GetUpperBound(1)
MatrizSuma(i, j) = Matriz1(i, j) + Matriz2(i, j)
Next
Next
 
Return MatrizSuma
End Function
 
Podemos utilizar este procedimiento para porbar la función:
 
Private Sub Prueba_de_Suma()
Dim A AsArray = New Decimal(,) {{2, 3}, {4, 1}}
Dim B As Array = New Decimal(,) {{1, 2}, {3, 4}}
Dim R As Decimal(,) = Suma(A, B)
 
MessageBox.Show(String.Format("{0} {1}" _
& ControlChars.CrLf & "{2} {3}", _
R(0, 0), R(0, 1), R(1, 0), R(1, 1)))
 
End Sub

El resultado es la misma matriz que obtuvimos arriba.


Producto de matrices

Sólo se pueden multiplicar dos matricessi el número de columnas de la primera coincide con el número de filas de la segunda. El resultado es una matriz de tantas filas como tiene la primera y tantas columnas la segunda. Además, esta operación no es conmutativa, es decir, el orden de los factores sí altera el producto. Expresado algebraicamente:
 
A(m,n) x B(n,p) = R(m,p)
 
De ello se deduce que para que dos matrices se puedanmultiplicar en los dos sentidos, es decir, para que podamos efectuar A x B y B x A, las matrices deben ser cuadradas. Ahora bien, la matriz resultante en cada caso sería diferente, porque no es lo mismo A x B que B x A. Esto, como veremos más adelante, tiene una importancia crucial en GDI+, y veremos que variando el orden en que multipliquemos las matrices obtendremos transformaciones diferentes.
 Los elementos de la matriz producto R no se calculan multiplicando los correspondientes de las matrices A y B, como es el caso de la suma. Requiere alguna cuenta más. Hemos preparado un pequeño truco fácil de seguir que, además de calcular el producto de matrices, nos servirá de guía para escribir, al igual que hemos hecho en el apartado anterior, una función en Visual Basic que, dadas dos matricescualesquiera que cumplan los requisitos arriba expuestos, nos calculará su matriz producto.
 
Vamos a multiplicar las siguientes matrices A x B y obtendremos la matriz R, cuyo número de filas es igual al número de filas de A (2) y cuyo número de columnas es igual al número de columnas de B (2). Asímismo, el número de filas de A coincide con el de columnas de B (2). Puesto que vamos a basarnosen este truco para escribir una función en Visual Basic, numeraremos los índices de cada elemento en base 0.
 
[pic]
 
El truco siguiente halla uno a uno los elementos de la matriz producto R.
Hallaremos, para ejemplificarlo, el elemento R(1,0).
 
Primero escribirmos:
 
A( , ) * B( , )
 
Y lo repetimos tantas veces como el número de columnas de la matriz A = número de filas de la...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Vectores Y Matrices De Visual Basic
  • Uso De Operadores En Visual Basic 2008
  • Operaciones Basicas Con Matrices
  • operadores visual basic
  • Sitema Operativo Visual Basic
  • Operaciones con matrices
  • Operaciones de matrices
  • Operaciones con matrices

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS