Métodos Numéricos
Métodos numéricos
Modelos matemáticos
Desde el punto de vista del mecanismo heurístico por medio del cual se arriba a la
elaboración de un modelo matemático, podemos considerar el camino empírico, es decir
que, a partir de un conjunto de datos, se elabora un modelo matemático que mejor ajuste
a los datos disponibles de acuerdo con algún criterio seleccionado. Es habitual que en
las primeras etapas del desarrollo de una teoría formal intervenga la elaboración de
modelos empíricos. Por ejemplo, la ley de caída de los cuerpos puede obtenerse por
ajuste de una parábola a los datos de posición y tiempo, aunque también puede ser
deducida de la ley de gravitación universal.
En términos generales, un modelo matemático puede idealizarse como una función
multivariada que sería expresable como
⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗
𝑦⃗ = 𝑓 (𝑥⃗;𝑝⃗;𝑒⃗)
Con tal notación referimos a una forma funcional vectorial con varias salidas o
“variables dependientes” (𝑦⃗) que se obtienen a partir de varias “variables
independientes” (𝑥⃗) no controlables por el diseñador o experimentador, varios
“parámetros” (𝑝⃗) al menos en principio controlables, y un conjunto de agentes externos
(e)
Modelos numéricos
Formulación computacional
Caja Negra
Debe notarse que el sistema numérico con el cual es capaz de operar un computador
no es el conjunto de los números reales, infinito no numerable, ni de los enteros, infinito
numerable. Llamaremos al sistema numérico representable en un computador el
conjunto C, a diferencia de los conjuntos N, Z, Q, I, R, o C conocidos.
Sólo recordaremos que la representación numérica básica en un sistema
computacional es binaria. La unidad de memoria es el byte, compuesto por ocho bits y
con una capacidad de representación de 256 caracteres. Los números enteros,
representados con dos bytes, permiten operar sobre un rango entre –32768 a 32767
(216=2562=65536 números). Con enteros definidos por medio de cuatro bytes se alcanza
un rango de (232=655362 = 4294967296 números).
Resulta entonces que hay números enteros no representables en C, cualquiera fuere el
tamaño de memoria que se asigne a cada valor numérico. El superar este rango puede
4
dar un error de “overflow” o bien sólo ofrecer resultados erróneos sin informar al
usuario que se ha excedido la capacidad numérica del sistema.
Para representar números reales se utiliza en general el formato de punto flotante, de
acuerdo con el cual se separa el número en una mantisa y un exponente. Por ejemplo, el
número 102 se lo representa como 0.102*103, o el número 10.2 como 0.102*102. Para
abreviar la notación y disminuir el requerimiento de memoria, se puede establecer una
norma para la representación numérica. Para seguir con el ejemplo propuesto, puede
convenirse en que el número tendrá tres dígitos representativos, que se expresarán
primero seguidos de un dígito decimal que representará la potencia de diez
correspondiente. En tal caso la secuencia 1023 y 1022 se interpretará como el número
102 en el primer caso y como el 10.2 en el segundo. Si se quiere representar números
negativos, habrá que asignar un indicador binario para el signo, y si se quiere
representar potencias negativas, deberá asignarse otro indicador binario para el
exponente. En el formato computacional se utiliza la representación binaria de números.
Así se destina cuatro bytes para un número representado en punto flotante. El primer
dígito binario se reserva para el signo del número. El resto de los primeros tres bytes se
reserva para la mantisa o parte decimal del número a representar. Se omite el cero que
precede a la mantisa. El exponente tiene reservado un byte, el primer dígito binario está
reservado para el signo del exponente y los siete bits restantes a un entero en el rango
entre -128 a +128. En la práctica esto limita la representatividad de números con siete
dígitos decimales y un rango también limitado en los exponentes de la base decimal.
Esto permite ampliar notablemente el rango numérico representable, pero no
indefinidamente. Un problema de este tipo de representación es que no admite el cero,
por lo cual debe ser introducido en forma artificial dentro del esquema de
representación numérica.
Puede verse que no pueden representarse números infinitamente grandes ni
infinitésimos. Tampoco un número infinito de decimales. Por lo cual sólo son
representables en C un subconjunto de los racionales. Cuando un cálculo no da por
resultado un racional exacto representable, se lo redondea automáticamente al racional
representable más próximo, o al mayor si hubiese dos. Puede extenderse el rango al
formato de punto flotante de doble dimensión con ocho bytes por cada número,
duplicando el recurso necesario de memoria y retardando el procesamiento, pero aun así
no se representa todos los reales.
Esto introduce un error en el cálculo dado por el redondeo del sistema y, por lo tanto,
una limitación en la precisión de los resultados obtenidos. Estos errores se presentan en
tres momentos del proceso de cálculo. Pueden introducirse directamente en los datos
(por ejemplo el número no puede ingresarse con infinitos decimales); los errores
pueden encontrarse en el modelo, relacionados con la representación computacional de
un esquema analítico, (por ejemplo la representación computacional de una ecuación
diferencial o la representación de la función seno por medio de un desarrollo en serie de
Taylor truncado); y finalmente errores en las operaciones de cálculo, (por ejemplo,
propagación de errores de redondeo); además hay errores en la salida, asociados con la
precisión numérica asignada al resultado.
En los sistemas computacionales hay dos problemas típicos denominados estabilidad
y condicionamiento, los cuales se relacionan con el problema de la propagación de
errores. Se dice que un algoritmo es inestable si los errores intermedios influencian
mucho al resultado y es estable en caso contrario. La condición del problema depende
de la continuidad de la formulación computacional del modelo. Si cambios chicos en los
datos conducen a cambios chicos en el resultado, se dice que el problema está bien
condicionado, en caso contrario está mal condicionado.
5
Redondeo
(𝑥𝑠 − 𝑥𝑖 ) 1 −𝑀+𝑛
|𝑟𝑒𝑑(𝑥) − 𝑥| ≤ = 𝑏
2 2
1 −𝑀+𝑛
|𝑟𝑒𝑑(𝑥) − 𝑥| 2 𝑏 1
≤ = 𝑏 −𝑀+1
|𝑥| 𝑏
𝑛−1 2
En base “dos” el máximo error relativo en punto flotante simple, con 𝑀 = 21, estará
dado por 2-21.
6
ao xo bo
Bajo las condiciones supuestas, es el producto 𝑓(𝑎) . 𝑓(𝑏) < 0. Si esto se verifica, se
calcula el promedio 𝑥𝑜 = (𝑎𝑜 + 𝑏𝑜)/2, si 𝑓(𝑥𝑜) . 𝑓(𝑎) > 0, la solución está en el intervalo
[𝑥𝑜, 𝑏𝑜], si 𝑓(𝑥𝑜) . 𝑓(𝑎𝑜) < 0, debe estar en la otra mitad del intervalo, es decir en [𝑎𝑜, 𝑥𝑜].
Este proceso puede practicarse sucesivamente acotando la solución en un intervalo cada
vez más pequeño hasta un límite de aceptación en la precisión de la solución de modo
que ∈ (𝑥0 − ; 𝑥0 + ). En cada iteración el intervalo de error se reduce a la mitad,
por lo cual se dice que el método tiene una convergencia lineal. Otros métodos son más
eficientes en el sentido de la rapidez de convergencia, pero requieren un mayor
conocimiento de la función. El método de la bisección sólo requiere conocer los
extremos de un intervalo donde se encuentra una raíz.
El siguiente programa en pseudo-codigo permite aplicar el método de la bisección
dados , a, b, f(x)
mientras b-a <
x = (a+b)/2
si f(x) = 0 fin
si f(x) f(a) 0 b=x
7
Método de Newton-Raphson
resulta ser una fórmula iterativa para aproximarse a la solución 𝑥𝑟. El proceso
continuará hasta que la diferencia entre dos iteraciones consecutivas sea menor que el
límite de error establecido.
Es difícil generar un método que automáticamente explore la función y determine
todas las raíces. Un teorema que puede contribuir a tal proceso es considerar que si 𝑓(𝑥)
es una función continua en un intervalo [𝑎, 𝑏], existe la derivada segunda en (𝑎, 𝑏) y el
producto 𝑓(𝑎) . 𝑓(𝑏) < 0, la derivada es siempre positiva o negativa en el intervalo
cerrado, al igual que la derivada segunda en el abierto; si además 𝑐 es un mínimo en
[𝑎, 𝑏] se cumple que |𝑓(𝑐) /𝑓’(𝑐) | ≤ 𝑏 − 𝑎, entonces el método de Newton-Raphson
converge en una secuencia estrictamente creciente o decreciente.
Para omitir el cálculo de la derivada de la función, suele reemplazarse la derivada en
la ecuación iterativa por una secante de modo que la expresión iterativa queda en la
forma
𝑓(𝑥𝑛)
𝑥𝑛+1 = 𝑥𝑛 −
(𝑓(𝑥𝑛) − 𝑓(𝑥𝑛−1 ) )⁄(𝑥𝑛 − 𝑥𝑛−1 )
𝑓(𝑥𝑛)
𝑥𝑛+1 ≈ 𝑥𝑛 − 𝑚
𝑓(𝑥′ 𝑛)
en caso que se conozca 𝑚. Si esto no es así y se supone que puede tratarse de una raíz
′
con multiplicidad mayor que uno, puede definirse 𝑔(𝑥) = 𝑓(𝑥) /𝑓(𝑥) . Expresando ahora
𝑚
𝑓(𝑥) = (𝑥 − 𝑥𝑟 ) 𝑔(𝑥) , derivando y simplificando, resulta que 𝑔(𝑥) tiene multiplicidad
′
uno y puede usarse la expresión iterativa 𝑥𝑛+1 ≈ 𝑥𝑛 − 𝑔(𝑥𝑛) /𝑔𝑥( 𝑛)
que, expresada en
términos de 𝑓(𝑥) queda en la forma
𝑓(𝑥𝑛) 𝑓(𝑥′ 𝑛)
𝑥𝑛+1 = 𝑥𝑛 − 2
𝑓(𝑥′ 𝑛) − 𝑓(𝑥𝑛) 𝑓(𝑥′′𝑛 )
Estos coeficientes definen la primera fila de una matriz que se llamará R. Por otra
parte, los elementos de la primera columna de la matriz A se los considerará como la
primera columna de una nueva matriz que se llamará L, es decir que Li1 = Ai1 para
todo i.
10
A’ij = Aij – Ai1 A1j / A11 = Aij – Ai1 R1j = Aij – Li1 R1j,
y los coeficientes,
x1 + R1j xj = c1,
L11 0 0 ............. 0
L21 L22 0 ............. 0
L31 L32 L33 ............. 0
.......................................................
11
Puede probarse que la matriz A se escribe como el producto A = L R. Por otra parte,
el vector b = L c.
para i = 1 ..... n
para j = i ....... n
Lji = Aji
para j = i ....... n
Rij = Aij / Lii
para j = i ......... n
para k = i ......... n
Ajk = Ajk – Lji Rik
c1 = b1 / L11
para i = 2 ...... n
ci = (bi - Lij cj) / Lii (donde la suma se extiende desde 1 a i-1)
xn = cn
para i = n-1 ...... 1
xi = ci - rij xj (donde la suma se extiende desde i+1 hasta n).
Número de operaciones
Uno de los criterios a tener en cuenta en la selección del método numérico de cálculo
es la consideración sobre el número de operaciones a realizar. En primer lugar
asumamos que las series i = n(n+1)/2 y que i² = n(n+1)(2n+1)/6, donde las sumas se
extienden desde i = 1 hasta n.
en síntesis, sobre las n-1 filas restantes. Es decir que a las n divisiones se suman 2n(n-1)
operaciones en el resto de la matriz, por lo tanto el primer proceso de reducción
contiene n+2n(n-1) = 2n²-n = n(2n-1) operaciones. Al operar sobre la segunda fila, se
realizan 2(n-1)²-(n-1) operaciones adicionales. Al operar sobre la i-ésima fila se
realizarán en total 2(n-i+1)²-(n-i+1) operaciones. Si se suman todas las operaciones
realizadas hasta la última fila para triangular la matriz se realizarán 2(n-i+1)²-(n-i+1),
donde i va desde 1 hasta n. Sea k = n-i+1. Cuando i = 1, k = n, y cuando i = n, k = 1, por
lo tanto la suma puede escribirse 2k²-k = 2k² - k para k = 1 hasta n. Considerando
las relaciones presentadas en el párrafo anterior, el número total de operaciones vale
n(n+1)(2n+1)/3 – n(n+1)/2. Operando queda N1 = 2n³/3 + n²/2 – n/6. Para despejar las
incógnitas se requiere un producto y una resta para obtener la anteúltima incógnita, dos
productos y dos restas para la antepenúltima y así sucesivamente hasta n-1 productos y
restas para la primera incógnita, es decir, 2i desde i = 1 hasta n-1, por lo tanto, 2(n-
1)n/2 = n²-n = N2 cálculos adicionales. Por lo tanto N = N1+N2 = 2n³/3 + 3n²/2 – 7n/6.
Puede verse que el número de operaciones varía ligeramente de acuerdo con la
implementación del método. Por ejemplo, si se asume que el primer elemento de cada
nueva fila es 1, puede omitirse la operación, al igual que los productos y restas sobre la
columna correspondiente admitiendo que el resultado será cero. Esto reduce el número
de operaciones, pero se pierde una herramienta de control en la evaluación de cuán
cerca de cero se encuentran los elementos que supuestamente se anulan. En el método
LR se suman las operaciones de asignación a las matrices L y R. Pero lo que se saca en
conclusión fundamentalmente es que el número de operaciones aumenta
proporcionalmente al cubo de la dimensión del sistema de ecuaciones.
También hay que considerar las operaciones sobre el segundo miembro o vector de
igualación b. En primer lugar se divide por el primer coeficiente de x1, pero luego se
requiere una resta y una división por cada ajuste recursivo sobre los n-1 coeficientes
restantes, es decir, 2(n-1) operaciones adicionales, o un total de 1+2(n-1) = 2n-1
operaciones. Al operar sobre la segunda fila se realizarán 2(n-1)-1 operaciones. En
general, al operar sobre la fila i, se realizarán 2(n-i+1)-1 operaciones. Sumadas sobre
todas las filas se obtiene 2(n-i+1)-1 = 2n1 - 2i + 21 - 11 = 2n²-2n(n+1)/2+2n-n =
2n²-n²-n+2n-n = n² operaciones. Sobre una matriz de 10x10 se suman 100 operaciones,
sobre una de 20x20 se suman 400 operaciones, con lo que en realidad se realizan 905 y
6310 operaciones respectivamente, lo que no cambia el orden de la estimación (1000 y
8000) pero sí hace notar la ventaja que puede tener separar el segundo miembro de la
ecuación matricial.
Estrategias de pivoteo
Es frecuente que uno de los coeficientes aii de la diagonal sea demasiado pequeño y
ocasione un importante impacto de propagación de errores en el resto del proceso. Es
deseable que estos cocientes por números pequeños se desplacen hacia el final del
proceso de triangulación. Una forma de reducir este efecto consiste en intercambiar filas
o filas y columnas. En cada etapa del proceso de triangulación, se detecta la fila que
contenga el mayor primer coeficiente no nulo y se intercambia con la fila a operar. Lo
13
⟨𝑥|𝑦⟩ = ∑ 𝑥𝑖 . 𝑦𝑖
𝑖=1
Se la conoce como “norma esférica” porque el módulo, como raíz cuadrada de la
norma, define una distancia radial constante a modo de una esfera en torno al origen.
Pero existen otras definiciones de norma, entre las cuales
‖𝒙‖ = 𝑚á𝑥{𝑥𝑖 },
esto es, el máximo de los componentes del vector, también es una definición posible que
responde a las propiedades generales de norma. Se la suele llamar “norma cuadrada”
porque si en un espacio de dos dimensiones se toma como norma el máximo de las
componentes y dibuja un perímetro que delimite la distancia al centro definida por la
máxima componente, se dibuja un cuadrado.
Otra norma de uso frecuente, conocida como “norma de Manhattan” o “norma del
taxista”, se establece sobre un reticulado que determina los puntos donde está definida
una función y por donde debe “pasar el recorrido” de un vector que pretenda llegar de
un punto a otro de tal espacio discreto, a modo del recorrido inevitable de un vehículo
en una ciudad en damero. En términos de varias variables como coordenadas, se define
como la suma de los módulos de las componentes del vector propuesto.
𝑛
‖𝒙‖ = ∑|𝑥𝑖 |
𝑖=1
Se plantea el problema de definir una norma sobre las matrices. Una manera de
definir una norma en matrices, o norma concordada, es tomar el supremo de la siguiente
operación:
‖𝐴𝒙‖
‖𝑨‖ = sup ( ) 𝑐𝑜𝑛 𝑥 ≠ 0
‖𝒙‖
𝑠𝑢𝑝
‖𝑨‖ = (‖𝐴𝒙‖)
‖𝒙‖ = 1
Es el supremo de los valores resultantes de la norma del vector transformado dividida
por la norma del vector original. Definida de esta manera, establece la máxima
elongación de un vector transformado por la matriz o, más geométricamente, en norma
euclidiana expresa la máxima deformación de una esfera unitaria transformada por la
matriz. En norma cuadrada, establece la forma del paralelepípedo resultante de la
aplicación de la transformación a los versores.
Partiendo de la norma vectorial definida como la máxima componente o norma
cuadrada, el valor de la norma matricial coincide con el máximo de la suma de los
módulos de las filas de los coeficientes de la matriz.
𝑛
𝑚á𝑥
‖𝑨‖∞ = (∑|𝑎𝑖𝑗 |)
1≤𝑖≤𝑛
𝑗=1
Bajo norma esférica, suele llamarse “norma espectral” a la inducida sobre las
matrices. Se define también como “radio espectral”, a veces simbolizado como 𝜌(𝐴), al
máximo de los autovalores de la matriz A. El radio espectral el valor mínimo que
pueden tomar las normas inducidas sobre una matriz y, en norma esférica, la norma es
igual a la raíz cuadrada del radio espectral del producto a izquierda de una matriz por su
transpuesta (conjugada si es compleja).
‖𝒅𝒙‖
‖𝒙‖
⁄‖𝒅𝒃‖
‖𝒃‖
ofrece una medida del impacto del error relativo de condicionamiento sobre el error de
la solución. Un impacto mínimo se traduce en pedir que este cociente sea pequeño. En
términos de la matriz A y de su inversa,
𝒙𝒊+𝟏 = 𝐵 𝒙𝒊 + 𝒃
Es decir que a partir de una solución inicial propuesta xo se obtiene una secuencia de
soluciones cada vez más próxima a la real. El problema se reduce a encontrar una matriz
B para el proceso iterativo a partir de la matriz A del sistema Ax = b. Por otra parte es
necesario evaluar las condiciones de convergencia del método.
Si la ||B|| < 1 entonces la solución existe y el esquema converge geométricamente a
ella. Para probarlo se propone un vector x* como solución que verifica x* = Bx*+b. Por
lo tanto, ||x*|| ||Bx*|| + ||b|| ||B|| ||x*|| + ||b||, por la desigualdad triangular y la
definición de norma. Por lo tanto ||x*|| ||b|| / (1-||B||). En el caso particular en el que el
vector b = 0, su norma vale cero y resulta que la norma de x* también es nula, con lo
que la única solución posible es el vector nulo y resulta ser única. Si la norma de B
fuese mayor que uno, no existiría tal solución porque la norma de la solución debería ser
negativa. Por lo tanto, si la ||B||<1, la solución existe, es única y el esquema converge a
ella. Si escribimos ahora la diferencia
𝒓𝒌 = 𝒙∗ − 𝒙𝒌 = 𝐵(𝒙∗ − 𝒙𝒌−𝟏 )
donde rk es el k-ésimo error de iteración, puede verse que esta expresión se extiende en
la forma
𝒓𝒌 = 𝐵 𝑛 𝒓𝟎
La norma del error de iteración será menor o a lo sumo igual que la k-ésima potencia de
la norma de B, que si es menor que la unidad, resulta que la norma del error decrece de
acuerdo con una progresión geométrica.
Operando de manera similar se llega a una relación en el error de iteración.
Y llegamos a la expresión
‖𝐵‖
‖𝒙∗ − 𝒙𝒌 ‖ ≤ ‖𝒙 − 𝒙𝒌−𝟏 ‖
1 − ‖𝐵‖ 𝒌
Esta relación permite, por una parte, estimar la norma de una matriz a partir de dos
aproximaciones sucesivas, pero también muestra que la convergencia será lenta y los
errores grandes cuanto más próxima a la unidad sea la norma de B, resultando oscilante
el esquema si vale uno y divergente si es mayor que uno. Puede probarse que un
proceso iterativo genera una sucesión de soluciones convergentes si el radio espectral de
la matriz de transformación B es menor que uno.
Método de Jacobi
x = -D-1NDx + D-1b
𝑖−1 𝑛
𝑎𝑖𝑗 𝑥𝑗𝑘 𝑎𝑖𝑗 𝑥𝑗𝑘 𝑏𝑖
𝑥𝑖𝑘+1 = −∑ − ∑ +
𝑎𝑖𝑖 𝑎𝑖𝑖 𝑎𝑖𝑖
𝑗=1 𝑗=𝑖+1
Debe notarse, en primer lugar, que el método es aplicable sólo si los elementos de la
diagonal son no nulos para toda la matriz (aii ≠ 0 i). Además el procedimiento debe ser
convergente, es decir, que el proceso iterativo conduce o tiende a un punto solución.
Además se debe establecer un criterio de detención del proceso iterativo.
Método de Gauss-Seidel
El método de Gauss Seidel difiere del de Jacobi en que separa la matriz A en tres partes,
una diagonal D, una triangular superior S y una triangular inferior I, de manera tal que
la matriz A = I + D + S. De esta manera resulta el sistema Ax = b
𝑖−1 𝑛
𝑎𝑖𝑗 𝑥𝑗𝑘+1 𝑎𝑖𝑗 𝑥𝑗𝑘 𝑏𝑖
𝑥𝑖𝑘+1 = −∑ − ∑ +
𝑎𝑖𝑖 𝑎𝑖𝑖 𝑎𝑖𝑖
𝑗=1 𝑗=𝑖+1
18
donde la primera suma se extiende sobre los valores de j menores que i, es decir, para j
entre 1 e i, y en la segunda sumatoria se extiende entre i+1 y n. En esta expresión x’i y
x’j representa la actualización de la variable. Puede verse que la suma se realiza sobre
los valores x’j ya actualizados por la iteración en curso, por lo que no se requiere esperar
a que se complete el proceso iterativo para usar los valores actualizados sino que se los
usa durante el mismo paso de iteración, lo cual resulta más eficiente en términos de
velocidad de ajuste. Un teorema muestra que si un sistema es convergente según el
método de Jacobi, también lo es según el de Gauss Seidel con una rapidez de
convergencia mayor.
Método de relajación
Si se define r como vector residuo o diferencia entre el vector b que debe obtenerse del
sistema Ax = b, en la forma r = b – Ax, este vector residual puede usarse como
alternativa en un proceso iterativo, tanto combinándolo con el método de Jacobi como
con el Gauss Seidel. Para una componente individual del vector r resulta
𝑖−1 𝑛
si se aplica el método de Jacobi, donde xj son las componentes del vector solución en la
iteración previa. En cambio si se aplica Gauss Seidel resulta
𝑖−1 𝑛
𝑖−1 𝑛
𝑟𝑖𝑘
𝑥𝑖𝑘+1 = 𝑥𝑖𝑘 +
𝑎𝑖𝑖
se ofrece como ecuación recursiva donde ri se calcula con alguna de las expresiones de
arriba.
Si el sistema es convergente por Jacobi y Gauss Seidel, también lo será por relajación.
La ventaja que ofrece es que permite introducir un coeficiente adicional ω en la forma
19
𝑟𝑖𝑘
𝑥𝑖𝑘+1 = 𝑥𝑖𝑘 +𝜔
𝑎𝑖𝑖
Este coeficiente ω se conoce como de sobre relajación cuando es mayor que 1 y de sub
relajación cuando es menor que 1. Si es mayor que 1, acelera la convergencia y
disminuye el número de iteraciones, pero se corre el riesgo de inestabilizar el proceso.
Si es menor que 1, puede forzar que haya convergencia en situaciones en las que
usualmente no las habría. No hay un método único para determinar el coeficiente w
óptimo, pero usualmente se encuentra entre 0 y 2 y se relaciona con la recíproca del
radio espectral.
Como para cada par de datos debe valer la relación lineal, resulta que hay tantas
ecuaciones como pares de datos pero sólo dos incógnitas: a y b. Un sistema se dice
sobredeterminado cuando hay más ecuaciones que incógnitas. Un sistema de esta
naturaleza no tiene solución alguna, a menos que las ecuaciones sean linealmente
dependientes y pueda reducirse a un sistema de nxn. Veremos que este tipo de
problemas pueden resolverse pero no en el sentido de obtener una solución única sino la
mejor solución posible de acuerdo con algún criterio para decidir cuál es la “mejor”.
Se propone entonces que para cada valor de yi puede escribirse una ecuación de la
forma yi = a xi + b + i, donde i representa un término de error en el ajuste lineal. Se
despeja i de la ecuación anterior y se suman cuadráticamente los valores de error
obtenidos i² = (Yi – a Xi – b)², de manera tal que se pueda buscar el mínimo de
esta sumatoria sobre todos los valores de i, derivando con respecto a los parámetros a y
b. Esto da por resultado dos ecuaciones con dos incógnitas, de las que puede obtenerse
el valor de los parámetros a y b de acuerdo con las ecuaciones
20
r = Cov(X, Y) / x y.
Para resolver de una forma genérica este tipo de problemas, observamos que el
sistema de ecuaciones resultante “a xi + b = yi” tiene la expresión matricial
x1 1 y1
x2 1 y2
a =
xi 1 b yi
21
xn 1 yn
el sistema se reduce a
En síntesis, puede probarse un teorema que muestra que, dado un sistema con matriz
de datos X y vector Y sobredeterminado, la mejor solución en el sentido de los
cuadrados mínimos es
Xt X (a, b) = Xt Y,
Puede verse así que resolver un sistema sobredeterminado, desde el punto de vista de
la programación, implica sólo agregar una rutina que premultiplique por la matriz
transpuesta de X a las matrices de datos ingresadas, y luego aplicar una resolución de un
sistema lineal simple, para lo cual puede utilizarse el método LR ya estudiado o
métodos iterativos.
Desde un punto de vista estadístico, puede probarse que para aplicar adecuadamente
una regresión lineal, las distribuciones marginales de las dos variables deben ser
normales, es decir, la distribución conjunta debe ser normal bivariada.
y = a1 x1 + a2 x2 + ........... + an xn + b = aj xj + b.
Ahora, para cada uno de los m datos yi habrá un conjunto de valores xi1 a xin, en
general de xij, con un término de error i tal que
Puede verse que esta forma es similar a la planteada para un sistema de regresión
simple. Si se calcula i² y busca su mínimo derivando, se obtendrá un sistema de n+1
ecuaciones con n+1 incógnitas, de las que podrán despejarse los ai y b. De la misma
manera, puede aplicarse el teorema que premultiplica a A y a y por la transpuesta de A,
con lo cual se arriba a un sistema de n+1 ecuaciones con n+1 incógnitas, resoluble con
el método L-R.
y autovector 1
y = ax + b
autovector 2
Si se asume que entre un conjunto de variables podría sólo haber relaciones de tipo
lineal, el coeficiente de correlación rij = Cov(Xi, Xj) / i j ofrece una medida de la
intensidad de la relación lineal entre las variables Xi y Xj. Si se desarrolla este cálculo
para cada par de variables, se configura una matriz R llamada “matriz de correlación”.
El análisis de la matriz de correlación permite obtener información sobre la relación
entre las variables en juego.
24
y = an xª + .......... a3 x³ + a2 x² + a1 x + b,
es formalmente equivalente a
y = an xn + .......... a3 x3 + a2 x3 + a1 x1 + b,
Debe tenerse presente que el método presenta los mismos problemas planteados en
relación con la regresión múltiple, con el agregado que las distribuciones de
probabilidad asociadas a las potencias de la variable x no serán normales aun cuando x
lo sea. Por otra parte, el coeficiente de correlación, medida del ajuste no lineal, no puede
definirse en términos de la covarianza sino del complemento a uno de la varianza de los
errores en relación con la varianza de la serie original. Es muy difícil en este método
determinar con criterios objetivos el orden del polinomio a emplear.
El método de Lagrange es el más simple pero no el mejor entre muchos métodos para
determinar los coeficientes del polinomio interpolador. Dados n+1 puntos diferentes x o,
x1, ..., xn, y f(x) una función definida en un intervalo [a, b] que contiene a los puntos, se
busca un polinomio de grado mínimo que interpole a la función en los puntos dados, es
decir, que p(xi) = f(xi) para i = 0, 1, ..., n. Se prueba que tal polinomio existe, que es
único y que su grado es a lo sumo n, es decir, un orden menor que el número de puntos.
Se construye un polinomio lk(x) = c (x – xo) ... (x – xk-1) (x – xk+1) ... (x – xn), que
tiene raíces en todos los puntos, excepto en xk. Se elige c de tal manera que lk(xk) = 1.
Por lo tanto lk(x) puede escribirse como (x – xi) / (xk – xi), donde los productos se
extienden sobre todos los valores posibles de i entre 0 y n, excepto k, y resulta l k(xi) = 1
si i = k y lk(xi) = 0 si i k. De esta manera, el polinomio
f(xk) lk(x),
Este método de Lagrange tiene serios problemas de estabilidad que pueden corregirse
parcialmente con otras metodologías. De todas maneras, el uso de polinomios
interpolantes como técnica de relleno o de homogeneización de intervalos, debe ser
26
aplicado siempre con prudencia porque es una forma de crear información inexistente.
Es decir, se incorporan “datos” a la información disponible que originalmente no
estaban presentes y, por lo tanto, no son reales. Suele ocurrir que la serie interpolada de
datos tiene mayor varianza que la serie original.
Promedios ponderados
Otro criterio de interpolación se fundamenta en la distancia entre datos y el punto a
interpolar. Por ejemplo, si se dispone de un dato x1 a las 12 hs, otro x2 a las 15 hs y otro
x3 a las 16 hs y se requiere el mejor valor estimado a las 14 hs, es claro que x2 debería
ser más próximo que x1 y x3 al verdadero valor. Puede aproximarse el dato faltante por
medio de considerar la recíproca de la distancia cuadrática al punto de interés de los
datos existentes.
Se construye la suma S = 1/x1² + 1/x2² + 1/x3². El segundo término de esta suma será
mayor que los otros dos. Se asignan los pesos p1 = 1/x1² / S al dato p2 = x1, 1/x2² / S al
dato x2 y p3 = 1/x3² / S al dato x3, con lo cual la importancia asignada al dato 2 será
mayor que la correspondiente a los datos x1 y x3. Debe notarse que la suma de los pesos
vale 1.
En general se asignan pesos a los datos, bajo el requerimiento que la suma de los
pesos valga 1, sobre la base de algún criterio. El ejemplificado considera la distancia
cuadrática, pero la distancia puede evaluarse en módulo, alguna otra potencia par o
módulo de potencia impar, alguna función asimétrica que valorice de manera diferente
los datos a izquierda y derecha del punto en cuestión, etc.
Akai Cap. 6 – Burden Cap. 4 – González Cap. 6 – Scheid Caps 13, 14, 15, 16
T = (f(a) + f(b)) / 2
Para i = 1, ...., n-1
T = T + f(a + i * h)
T=h*T
La regla de Simpson consiste en aplicar una interpolación cuadrática sobre tres datos
en los cuales se discretiza el intervalo de integración. La integral en cada subintervalo
está dada por la expresión I = (f(xk) + 4 f(xk+1) + f(xk+2)) h / 6. Se deja como ejercicio
hallar la fórmula de la integral de una función, y el programa en pseudo lenguaje, si se
aplica la regla de Simpson.
Introducción
Las ecuaciones lineales suelen ser resolubles por medio de la aplicación de una
solución genérica de la forma f(x) = A exp(x), donde los coeficientes pueden ser
complejos, en particular cuando las soluciones son armónicas. La aplicación de esta
forma funcional conduce a obtener una ecuación polinómica en cuyas raíces, sumadas
a un número de condiciones iniciales y de contorno equivalentes al orden de la ecuación
diferencial y que permiten determinar las constantes de integración, llevan a la
resolución de la ecuación.
Si, por ejemplo, se plantea un sistema compuesto por un avión que vuela por efecto
de una fuerza impulsora F y frenado por la viscosidad turbulenta del aire. La segunda
ley de Newton conduce a una ecuación de la forma F - v = m a, donde representa el
coeficiente de viscosidad. Si se supone que la viscosidad es constante y se pretende que
la velocidad del avión también lo sea, o su aceleración constante, es muy fácil obtener
F. Sin embargo la viscosidad fluctúa en torno a un valor básico o en una magnitud ,
por lo cual se introducirán perturbaciones en la velocidad y en la constancia de la
aceleración, que puede escribirse como derivada de la velocidad. Puede notarse que esta
simple ecuación se transforma en un problema no lineal de muy difícil solución.
Puede notarse que los dos primeros términos del primer miembro deben ser iguales al
primer término del segundo, por suponer que el comportamiento básico del sistema
satisface la ecuación diferencial. Por otra parte, el último término del primer miembro
debe despreciarse por ser producto de perturbaciones y, por lo tanto, una perturbación
de segundo orden. En consecuencia la ecuación se reduce a
- o v – vo = m dv/dt,
Por lo tanto, cuando no queda alternativa más que recurrir al modelado, se plantea el
problema de la discretización de un sistema continuo, la cual, como veremos, conduce a
un conjunto de cuestiones complejas.
La forma más simple de discretizar el campo continuo es por medio del método de
las diferencias finitas. La hipótesis básica parte de aplicar el teorema del valor medio
del análisis, que nos dice que en una función continua en un intervalo [a, b], existe un
punto xo en el intervalo para el cual la tangente coincide con la secante entre los puntos
a y b. Para este punto la derivada de la función f’(xo) = (f(b) – f(a)) / (b-a). Si se asume
que el intervalo es un entorno de xo de tamaño x y que la secante coincide con la
tangente en el punto medio del intervalo, se escribe
Es necesario evaluar en qué medida y en qué sentido es un esquema mejor que otro y
si son todos igualmente válidos. Para ello se proponen algunos requisitos que todos los
esquemas deben cumplir. El primer requisito es la consistencia, en el que se plantea que
el esquema en diferencias finitas debe tender, en el límite cuando el intervalo de
discretización tiende a cero, a la forma de la derivada.
Puede verse que en el límite cuando x tiende a cero, el cociente tiende a la derivada. Si
se desprecian en la aproximación los términos de orden superior a uno en el desarrollo,
resulta que el error en la aproximación de la derivada por la secante está dado por un
desarrollo que se conoce como “error de truncado”. El orden de x en el primer
término, que contiene una constante (f’’i/2) que multiplica a x, indica el orden del
error de truncado de la aproximación discreta y se dice que en el método adelantado es
de primer orden porque x tiene como exponente uno.
La expresión
fi-1 = fi + f’i (-x) + f’’i (-x)²/2! + f’’’i (-x)³/3!
En el caso del método centrado, pueden restarse las expresiones de fi+1 y de fi-1. Se
observa que los términos de orden par en el desarrollo se cancelan y la expresión de la
derivada resulta
32
Convergencia y estabilidad
Veremos, sin embargo, que para verificar la estabilidad no existe una metodología
tan simple como la verificación de la consistencia, y que requiere el estudio de la
respuesta del esquema en diferencias finitas para casos particulares del comportamiento
del sistema.
Métodos de relajación
Puede suponerse que en esta ecuación sólo se posee información acerca del valor de
la constante para ciertos estiramientos medidos del resorte, es decir, de un campo
escalar de números que pueden interpolarse para ser adaptados a la grilla en la que se ha
discretizado el continuo posición.
33
Si se dispone de N+1 puntos discretos, de los cuales N-1 serán interiores al eje
discretizado y dos serán condiciones de borde, se observa que resulta un sistema de N-1
ecuaciones similares a la propuesta y dos ecuaciones que contienen las condiciones de
borde, con lo cual se dispone de un sistema (tridiagonal) de N+1 ecuaciones con N+1
incógnitas. Este sistema es resoluble para dominios pequeños, pero si el dominio
contiene varios cientos de puntos, el número de operaciones resultaría muy grande (del
orden de (N+1)³), sin embargo ofrece la ventaja de no ser un método iterativo sino
exacto. Recuérdese además que se ha planteado un problema lineal, cuando en la
práctica interesan dominios bidimensionales y volúmenes.
Esta ecuación es la que permite ajustar iterativamente el valor de fi. Puede notarse
que al modificar el valor de fi para todo i, en realidad se pretenderá que se anule la
expresión
(fi+1,h+1 + fi-1,h+1 – 2fi,h+1) – t² Fi = 0,
termina cuando el residuo es menor que una cota preestablecida (Ri,h < ). Puede
notarse que el error se evalúa en cada punto, por lo tanto se impone el como una cota
superior del error admitido. Pero también puede imponerse un límite en la suma de los
módulos o la suma de los cuadrados o varios criterios simultáneos.
El método de relajación secuencial propone la forma fi+1, h + fi-1, h+1 – 2 fi, h - x² Fi
= Ri, h. De esta manera, imponiendo una solución inicial sólo en i = 0 e i = 1, se obtiene
el resto de los coeficientes. Para acelerar el proceso se suele utilizar un coeficiente de
sobrerelajación (Ri,h / 2), lo cual requiere un análisis cuidadoso para que el método no
se inestabilice. En general estos métodos no se recomienda que sean aplicados a
dominios excesivamente grandes, dependiendo esto de la velocidad y capacidad del
sistema.
Métodos espectrales
Como la igualdad debe valer para todo x, y por ortogonalidad de los armónicos y de las
funciones seno y coseno, debe valer
aj = – Aj / (2j/n)² y bj = – Bj / (2j/n)².
fn+1 – fn = xFn+1.
Es claro que despejar el valor de fn+1 en función de fn, x y xn requerirá operar sobre
Fn+1 para extraer el valor de fn+1, por lo cual se lo llama implícito. Resulta, por lo tanto,
de una mayor complejidad algebraica.
fn+1* = fn + x fn,
con este valor de fn se calcula el término Fn+1 = F(fn+1*, xn+1), el cual se aplica a la
obtención del “verdadero” fn+1.
fn+1* = fn + x fn,
fn+1 = fn + x (Fn+1* + Fn) / 2.
Evaluación de la estabilidad
En el caso adelantado puede verse que = 1+², por lo cual es siempre >1 y
el esquema resulta inestable siempre, absolutamente inestable o incondicionalmente
inestable. El error en la fase se calcula a través de un desarrollo en serie de = - ³/3
+ .... El error relativo, dado por |( - ) / | = ²/3 = ²x²/3, que se reduce
cuadráticamente con la reducción de x y que tras n iteraciones valdrá n ²x²/3. Este
error en general tiene poca importancia en ondas de baja frecuencia ( chico). En
primera aproximación del desarrollo de la raíz cuadrada, se observa que el error en la
amplitud resulta n 1 + n ²x²/2. Puede notarse que este error también tiene
poca importancia en la baja frecuencia, pero para valores altos de tanto el error en la
fase como en la amplitud comienzan a ser importantes.
Con estos esquemas suele usarse el esquema adelantado como primer paso de
integración y luego aplicar el esquema en tres niveles. A medida que transcurre el
proceso de cálculo, el modo físico se irá “contaminando” con soluciones del modo
computacional. Para que este proceso se atenúe se promedian ambos modos cada cierto
número de pasos, pero nunca se resuelve el problema en forma definitiva. El esquema es
condicionalmente estable para las ondas que cumplen 1. El error de truncado es
de segundo orden. El modo físico es atrasado en la fase y el computacional es
adelantado. En las altas frecuencias se observan saltos de fase en el modo
computacional.
Ecuación advectiva
f/t + c f/x = 0.
Dispersión computacional
Al hablar de ondas dispersivas dijimos que son ondas cuya velocidad de fase
depende de la frecuencia. En estos sistemas c = c() = c(k), donde k es el número de
onda y es la frecuencia. La aplicación del criterio CFL en la ecuación advectiva
resulta entonces más compleja porque habrá inestabilidad para algunas ondas mientras
que otras serán estables. En general las ondas cortas se inestabilizan mientras que se
conserva la estabilidad en las ondas largas.
“Aliasing”
En los sistemas lineales es posible eliminar el efecto si se eliminan las ondas de alta
frecuencia no visibles por el modelo en los datos iniciales, pero veremos que esto no
puede hacerse en los sistemas no lineales en los que el modelo genera su propia alta
frecuencia por interacción entre escalas de variabilidad.
Una variante de mayor interés que los modelos anidados son los modelos acoplados.
Por ejemplo, si se quiere simular el comportamiento del río Paraná frente a nuestras
costas, deberá considerarse el efecto de las mareas, las cuales serán resueltas por un
modelo oceánico, el efecto del viento y la lluvia, que será resuelto por un modelo
atmosférico, y el comportamiento del Paraná será descripto por un modelo propio.
Además podría modelarse el comportamiento de los afluentes, de las napas freáticas, del
impacto de las ciudades y las islas. Cada uno de estos subsistemas requerirán el diseño
de un modelo adecuado a cada sistema y luego deberán comunicarse entre sí o
“acoplarse” para dar cuenta del funcionamiento del sistema completo. La comunicación
entre modelos se realiza por medio de ecuaciones que tienen en cuenta las interacciones.
Por ejemplo, el caudal aportado por los afluentes, las descargas urbanas e industriales,
una ecuación que responda al forzante del viento y al efecto de las mareas. Estas
ecuaciones son bidireccionales, es decir que no tienen en cuenta sólo el efecto de los
subsistemas sobre el que se pretende describir sino las interacciones. Así resulta posible
generar un acople progresivo de modelos que incorporen diferentes fuentes de
variabilidad asociadas con un sistema bajo estudio.
42
Elementos finitos
La solución dependerá del número y forma de los elementos finitos, pero también de
las funciones de interpolación seleccionadas. Se eligen funciones interpolantes cuyos
valores y derivadas sean continuas en el contorno del recinto.
En este caso hay seis pasos esenciales para derivar la forma estructural de una matriz
elemental.
1. Asumir la forma funcional del campo de desplazamientos dentro de un elemento.
2. Expresar el campo de desplazamientos en términos de los desplazamientos
definidos en los nodos.
3. Introducir las ecuaciones que relacionan las tensiones con los desplazamientos y
determinar el estado de tensiones del elemento correspondiente a determinado
campo de desplazamientos.
4. Escribir las ecuaciones que expresan las leyes físicas asociadas al sistema, e
introducir la influencia de las propiedades del material del elemento.
5. Escribir las ecuaciones de equilibrio para el elemento para establecer las
relaciones entre los desplazamientos nodales y las fuerzas nodales.
6. Combinar los resultados de los pasos 1 a 5 y derivar algebraicamente la matriz
del elemento.
Proponemos una expresión para D(f) de la forma D(f) = bii(x), con lo cual resulta
donde los Aji = jD(i) dx dy dz y (j, F) = j F(x,t) dx dy dz. Puede verse así que
queda un sistema de ecuaciones en los ci(t) donde t corresponde al de F(x,t) y es posible
así obtener la evolución temporal de los coeficientes.