6 DataStructures and Arrays
6 DataStructures and Arrays
6 DataStructures and Arrays
30/10/16 1
Por ejemplo, para ecuaciones de varias variables del tipo:
y=3∗x (1)+4∗x(2)−7∗x(3)
30/10/16 2
En el ejemplo, tenemos una ecuación de varias variables; se puede “dimensionar” un arreglo
para trabajar, de esta manera:
Cabe anotar, los indices ( subscrips) en VBA comienzan en “0” ( cero). Haciendo una
representación, los sitios de memoria se “verían” así:
Option explicit
X(0) X(1) X(2) X(3) x(4)
Sub Ejemplo
Dim i As Integer
1 2 3
Dim x(4) As Double, y as Double
Y For i = 1 To 3
x(i)= i*i
-44 Next i
Y = 3*x(1) + 4*x(2) - 7*x(3)
MsgBox Y
End Sub
30/10/16 3
Cada sector de memoria es accesado independientemente, haciendo los cálculos
respectivos, designados en el código:
El arreglo debe tener el tamaño suficiente para guardar todos los elementos necesarios,
mientras más grande sean los arreglos, consumen más memoria RAM y además relentizan
el funcionamiento del sistema.
x 0 2,5 5 7,5 10
T 40 175 245 255 200
30/10/16 4
Una opción para guardar los valores de la tabla y convertirlos de grados Celsius a
Farenheit, puede ser:
Option explicit
Sub TempSimp()
Dim Tc0 As Double, Tc1 As Double, Tc2 As Double
Dim Tc3 As Double, Tc4 As Double
Dim Tf0 As Double, Tf1 As Double, Tf2 As Double
Dim Tf3 As Double, Tf4 As Double
Tc0 = 40: Tc1 = 175: Tc2 = 245:Tc3 = 255:Tc4 =2040
Tf0 = 9/5*Tc0 +32
Tf1 = 9/5*Tc1 +32
Tf2 = 9/5*Tc2 +32
Tf3 = 9/5*Tc3 +32
Tf4 = 9/5*Tc4 +32
End Sub
30/10/16 5
ESTRUCTURAS MULTIDIMENSIONALES.
Y
100
Filas 95
90
80
70
Columnas X
30/10/16 6
ESTRUCTURAS MULTIDIMENSIONALES.
For i = 1 to nr
For j = 1 To nc
Tf(i,j)= 9/5 *Tc(i,j) +32
Next i
Next i
30/10/16 7
En muchos campos de la ingeniería, se encuentran sistemas que se puede modelizar
usando sistemas de ecuaciones lineales. Estos pueden ser resueltos por métodos directos
como la Eliminación Gausiana ó Descomposición LU en formas triangulares superiores e
inferiores.
2.Si el primer renglón tiene un cero en esta columna, intercambiarlo con otro que no lo tenga
3.Luego, obtener ceros debajo de este elemento delantero, sumando múltiplos adecuados
del renglón superior a los renglones debajo de él
5. Comenzando con el último renglón no cero, avanzar hacia arriba: para cada renglón
obtener un 1 delantero e introducir ceros arriba de este sumando múltiplos correspondientes
a los renglones correspondientes
30/10/16 8
Un tren de separación como se muestra
en la figura, trata un flujo molar de 70 mol/min.
Con los datos mostrados, plantee los balances
de materia y calcule los flujos B, C, B1, B2,D1 y
D2.
Determine la Recuperación ( R ).
30/10/16 9
Métodos de Descomposición. [ A][ x ]=[ b]
Los métodos de descomposición (o factorización) se fundamentan en que toda matriz
regular A puede, con las permutaciones adecuadas, descomponerse en el producto
de una matriz triangular inferior L (LOW) y una matriz triangular superior U (UP).
A= L∗U
30/10/16 10
Ahora usaremos cada una de las matrices calculadas de la siguiente forma:
[ L ] [ d ]=[b]
[][]
d 11 b14 Sustituyendo los datos que
conocemos, obtenemos el
d 21 b 24 vector:
d 31 b34 dij
[][]
ij
x 11 d 11
x 21 d 21
Obteniendo:
x 31 d 31 x ij
30/10/16 11
El Macro de VBA que usaremos (CROUT) se basa en un procedimiento alternativo: la
reducción de Crout (Perry, 2003)
j−1
c i , j =ai , j −∑ c i , k c k , j para i⩾ j
k =1
[ ]
i −1
1
ci , j= a −∑ c c para i< j
c i , i i , j k =1 i , k k , j
[ ]
i−1
1
d i= b −∑ c c para i< j
c i , i i , j k =1 i , k k , j
30/10/16 12
Considere una placa plana (figura 1.1), en la cual los costados se mantienen a
temperaturas constantes de 0ºC y 100ºC. La distribución de temperatura
bidimensional en estado estacionario al interior de la placa plana viene
determinada por la ecuación la Laplace (si, el mismo de la transformada...) .
30/10/16 13
30/10/16 14
Utilice el algoritmo de CROUT ( PNMsuit ) para solucionar el sistema de
ecuaciones lineales y aproximar la distribución de temperatura en la placa
30/10/16 plana, grafíque en (x,y) la solución. 15
Trasladamos todo el sistema al libro de EXCEL.
30/10/16 16
Se invoca la lista de Macros
disponibles en PNMsuit.
30/10/16 17
Se ejecuta el método CROUT
El Macro solicita delimitar el área de celdas que contiene los términos
correspondientes a los coeficientes de las variables.
30/10/16 18
30/10/16 Ahora el Macro solicita delimitar la celdas que contienen los términos 19
independientes.
30/10/16
Ahora hay que delimitar las celdas que contendrán el vector solución. 20
SOLUCIÓN DEL SISTEMA
● El sistema puede ser resuelto de manera eficiente resolviendo primero L ρ=b para luego
solucionar Ux =ρ siendo x el vector solución.
30/10/16 22
Ax=b
ALGORITMO DE THOMAS
Estas matrices aparecen también muy habitualmente, por ejemplo, al interpolar por splines o al
resolver problemas de valores de contorno para ecuaciones diferenciales ordinarias.
Se usa para sistemas grandes, de 1000 o más ecuaciones, ya que no usa memoria para
guardar los elementos de las matrices que son ceros.
ALGORITMO
● Leer los vectores : ai , bi , c i , r i
( )
a
b k+1 =b k +1 − k +1 c k
bk
r k+1=r k +1− ( )
a k+1
bk
rk
x n= ( )
rn
bn
● Para k = n-1 : 1 haga
r k −c k x k +1
30/10/16 xk = 23
bk
ALGORITMO DE THOMAS
30/10/16 24