T - PowerPoint PPT Presentation

1 / 62
About This Presentation
Title:

T

Description:

La Universidad del Zulia Facultad de Ingenier a Divisi n de Estudios para Graduados Asignatura: T picos Especiales en Computaci n Num rica Ecuaciones algebraicas ... – PowerPoint PPT presentation

Number of Views:77
Avg rating:3.0/5.0
Slides: 63
Provided by: LuisZ3
Category:

less

Transcript and Presenter's Notes

Title: T


1
La Universidad del Zulia Facultad de
Ingeniería División de Estudios para Graduados
Asignatura Tópicos Especiales en Computación
Numérica
  • Ecuaciones algebraicas lineales
  • Eliminación de Gauss
  • Descomposición LU e inversión de matrices
  • Matrices especiales y método de Gauss-Siedel

Prof. Luis Zerpa, M.Sc. Email lzerpa_at_ica.luz.ve
2
Motivación
  • En el tema anterior (Raíces de ecuaciones) se
    estudiaron métodos para determinar el valor de x
    que satisface a una sola ecuación, f(x) 0
  • Ahora, nos ocuparemos del caso para determinar
    los valores de x1, x2, xn que en forma
    simultánea satisfacen a un conjunto de ecuaciones
    algebraicas lineales

3
Motivación
  • Estudiaremos métodos para resolver conjuntos de
    ecuaciones algebraicas lineales que son de la
    forma general,

a coeficientes constantes b constantes n No.
de ecuaciones
4
Métodos empleados antes de la era de las
computadoras
  • Para pocas ecuaciones (n 3), las ecuaciones
    lineales se pueden resolver con rapidez mediante
    técnicas simples
  • Método gráfico
  • Para n 2 ? la solución corresponde a la
    intersección de líneas rectas
  • Para n 3 ? cada ecuación representa un plano.
    La solución corresponde al punto donde se
    intersectan los 3 planos
  • Para n gt 3 ? los métodos gráficos no funcionan
  • Caso que pueden ocasionar problemas

Dos líneas coinciden Número infinito de
soluciones Sistemas singulares
Sistemas cercanos a situación singular (mal
condicionados) Sensibles a errores de redondeo
Líneas paralelas que jamás se cruzan
5
Métodos empleados antes de la era de las
computadoras
  • Determinantes y Regla de Cramer
  • Determinante de una matriz de coeficientes 2?2
  • Determinante de una matriz de coeficientes 3?3

6
Métodos empleados antes de la era de las
computadoras
  • los sistemas singulares tienen determinante
    igual a cero
  • Los sistemas mal condicionados (casi singulares)
    tienen determinante cercano a cero

7
Métodos empleados antes de la era de las
computadoras
  • Regla de Cramer
  • Cada incógnita en un sistema de ecuaciones
    algebraicas lineales puede ser expresada como una
    fracción de dos determinantes
  • El denominador es el determinante de la matriz de
    coeficientes
  • El numerador es el determinante de una matriz en
    la cual se reemplaza la columna de coeficientes
    de la incógnita por el vector de constantes B
  • Para 3 ecuaciones resulta práctica
  • Para n gt 3 no es muy eficiente porque la
    evaluación de determinantes consume tiempo

8
Ecuaciones algebraicas lineales y práctica de la
ingeniería
  • Muchas de las ecuaciones fundamentales de
    ingeniería están basadas en leyes de conservación
  • En términos matemáticos, esos principios conducen
    a ecuaciones de balance que relacionan el
    comportamiento del sistema con las propiedades o
    características y los estímulos externos que
    actúan sobre el sistema
  • En el capítulo anterior se trabajó con sistemas
    de un solo componente que resultaba en una sola
    ecuación que se resolvía con métodos de cálculo
    de raíces
  • Los sistemas multicomponentes resultan en un
    conjunto agrupado de ecuaciones matemáticas que
    deben ser resueltas simultáneamente

9
Ecuaciones algebraicas lineales y práctica de la
ingeniería
  • Problemas multicomponentes surgen tanto de
    modelos matemáticos de variables agrupadas como
    de variables distribuidas
  • Los problemas de variables agrupadas involucran
    componentes finitos acoplados
  • Armaduras
  • Reactores
  • Circuitos eléctricos
  • Los problemas de variables distribuidas intentan
    describir detalles espaciales de los sistemas
    sobre una base continua
  • Las ecuaciones diferenciales derivadas a partir
    de leyes de conservación especifican la
    distribución de la variable dependiente para
    tales sistemas
  • Esas ecuaciones se pueden resolver numéricamente
    al convertirlas en un sistema equivalente de
    ecuaciones algebraicas simultáneas

10
Ecuaciones algebraicas lineales y práctica de la
ingeniería
  • Además de los problemas físicos, las ecuaciones
    algebraicas lineales simultáneas surgen también
    en diferentes contextos de problemas matemáticos
  • Algunas técnicas numéricas de uso general que
    emplean ecuaciones simultáneas son el análisis de
    regresión y la interpolación segmentaria

11
Antecedentes matemáticos necesarios
  • Notación matricial
  • En la solución de ecuaciones algebraicas lineales
  • No. de ecuaciones No. de filas
  • No. de variables No. de columnas

Columnas
Filas
Debe ser igual para que una solución única sea
posible
12
Antecedentes matemáticos necesarios
  • Operaciones de matrices
  • Suma
  • Multiplicación de una matriz por un escalar se
    multiplica cada elemento de la matriz por el
    escalar
  • Multiplicación de dos matrices

Es imposible multiplicar dos matrices si el
número de columnas de la primera no es igual al
número de filas de la segunda
13
Antecedentes matemáticos necesarios
  • Operaciones de matrices
  • División la división de una matriz no es una
    operación definidasin embargo, si una matriz A
    es cuadrada y no singular, existe otra matriz
    A-1, llamada inversa de A para la cual A?A-1
    A-1?AI
  • Transpuesta de una matriz consiste en
    transformar sus filas en columnas y viceversa
  • Traza de una matriz es la suma de los elementos
    de su diagonal principal

14
Representación de ecuaciones algebraicas lineales
en forma matricial
  • Una manera formal para obtener la solución usando
    algebra matricial es multiplicando cada lado de
    la ecuación por la inversa de A
  • No resulta muy eficiente por la obtención de la
    inversa de la matriz
  • Es necesario métodos numéricos

15
Métodos numéricos para la solución de ecuaciones
algebraicas lineales
  • Eliminación de Gauss
  • Descomposición LU ? valiosa para casos donde se
    necesita evaluar muchos vectores del lado
    derecho. Permite hacer eficiente el cálculo de la
    matriz inversa
  • Técnicas eficientes para la solución de sistemas
    tridiagonales (matrices en banda)
  • Método de Gauss-Seidel ? método iterativo

16
Eliminación de Gauss
  • Este método involucra una combinación de
    ecuaciones para eliminar las incógnitas
  • Es uno de los métodos más antiguos y sigue siendo
    uno de los algoritmos de mayor importancia

17
Eliminación de Gauss
  • Eliminación de incógnitas
  • La estrategia básica es multiplicar las
    ecuaciones por constantes, de tal forma que se
    elimine una de las incógnitas cuando se combinen
    las ecuaciones
  • El resultado es una sola ecuación que se puede
    resolver para la incógnita restante
  • Este valor se sustituye en las ecuaciones
    originales para calcular la otra variable
  • Este método representa la base para la
    eliminación de Gauss
  • Se puede extender a grandes sistemas de
    ecuaciones desarrollando un esquema sistemático
    para eliminar incógnitas y sustituir hacia atrás

18
Eliminación de Gauss
  • Eliminación de Gauss simple ? el método consiste
    en dos fases
  • Eliminación de incógnitas
  • Reduce el conjunto de ecuaciones a un sistema
    triangular superior
  • Primero se elimina la primera incógnita, x1,
    desde la segunda hasta la n-enésima fila,
    multiplicando por a21/a11 a la primera ecuación,
    luego restando ésta a la segunda
  • El procedimiento es repetido para las ecuaciones
    restantes
  • Para este paso la ecuación 1 es la ecuación
    pivote y a11 es el coeficiente pivote
  • Solución por sustitución hacia atrás
  • Al finalizar la eliminación, la ecuación n puede
    resolverse para xn

Para evaluar las x restantes
19
Eliminación de Gauss
  • Seudo código
  • DO k 1, n-1
  • DO i k1, n
  • Factor ai,k/ak,k
  • DO j k1, n
  • ai,j ai,j - factor ak,j
  • END DO
  • bi bi -factor bk
  • END DO
  • END DO
  • xn bn / an,n
  • DO i n-1, 1, -1
  • sum 0
  • DO j i1, n
  • sum sum ai,j xj
  • END DO
  • xi (bi - sum) / ai,i
  • END DO

20
Eliminación de Gauss
  • Ejemplo
  • Eliminación

B 7.85 -19.3 71.4
A 3 -0.1 -0.2 0.1 7 -0.3 0.3 -0.2 10
A 3.0000 -0.1000 -0.2000 0
7.0033 -0.2933 0.3000 -0.2000
10.0000
B 7.8500 -19.5617 71.4000
A 3.0000 -0.1000 -0.2000 0
7.0033 -0.2933 0 -0.1900 10.0200
B 7.8500 -19.5617 70.6150
X 3.0000 -2.5000 7.0000
A 3.0000 -0.1000 -0.2000 0
7.0033 -0.2933 0 0 10.0120
B 7.8500 -19.5617 70.0843
Sustitución
21
Eliminación de Gauss
  • Número de operaciones de punto flotante para
    Gauss simple
  • Para un sistema que se hace cada vez más grande,
    el tiempo de cálculo se incrementa
    considerablemente
  • La mayor parte del esfuerzo ocurre en el paso de
    la eliminación. Por lo que se hace necesario
    hacer más eficiente el procedimiento

22
Desventajas del método de eliminación de Gauss
  • División entre cero
  • Durante las fases de eliminación y sustitución es
    posible que ocurra división entre cero
  • También se pueden presentar problemas cuando el
    coeficiente es muy cercano a cero
  • Para evitar estos problemas se utiliza una
    técnica de pivoteo

La normalización de la primera fila involucra una
división entre cero, a11 0
23
Desventajas del método de eliminación de Gauss
  • Errores de redondeo
  • Debido a que las computadoras manejan sólo un
    número limitado de cifras significativas, pueden
    ocurrir errores de redondeo y se deben considerar
    al evaluar los resultados
  • Estos errores pueden ser importantes para
    sistemas con un gran número de ecuaciones
  • Debido a que cada resultado depende del anterior,
    el error de los primeros pasos tiende a
    propagarse
  • Una regla general es la de suponer que los
    errores de redondeo son importantes cuando n
    100
  • Siempre se debe sustituir los resultados en las
    ecuaciones originales y verificar si ha ocurrido
    un error sustancial

24
Desventajas del método de eliminación de Gauss
  • Sistemas mal condicionados
  • Sistemas bien condicionados son aquellos en los
    que un pequeño cambio en uno o más coeficientes
    provoca un pequeño cambio en la solución
  • Sistemas mal condicionados son aquellos en donde
    pequeños cambios en los coeficientes generan
    grandes cambios en la solución
  • Es decir un amplio rango de soluciones puede
    satisfacer las ecuaciones en forma aproximada
  • Los errores de redondeo pueden inducir pequeños
    cambios en los coeficientes, si el sistema está
    mal condicionado estos cambios artificiales
    pueden generar grandes errores en la solución

25
Desventajas del método de eliminación de Gauss
  • Sistemas mal condicionados
  • Ejemplo
  • Cambiando a21 de 1.1 a 1.05
  • sustituyendo en las ecuaciones originales

Solución
Solución
La solución es aproximada
26
Desventajas del método de eliminación de Gauss
  • Sistemas mal condicionados
  • Esta situación se puede caracterizar de forma
    matemática, escribiendo las ecuaciones en su
    forma general
  • Arreglando las ecuaciones en un formato de líneas
    rectas
  • Si las pendientes son casi iguales

Un sistema mal condicionado es aquel en el cual
su determinante es cercano a cero Si el
determinante es exactamente cero, las pendientes
son idénticas, y el sistema no tiene solución o
hay un número infinito de soluciones
27
Desventajas del método de eliminación de Gauss
  • Sistemas singulares
  • Son aquellos donde dos o más ecuaciones son
    iguales
  • En el caso donde dos ecuaciones son iguales se
    pierde un grado de libertad siendo imposible
    resolver el problema de n-1 ecuaciones con n
    incógnitas
  • Tales casos podrían no ser obvios cuando se
    trabaja con grandes conjuntos de ecuaciones
  • Se hace necesario tener una forma que de manera
    automática detecte la singularidad del sistema
  • Esto se logra debido al hecho de que el
    determinante de un sistema singular es cero
  • Durante el proceso de eliminación se chequea si
    un elemento de la diagonal es cero, al descubrir
    uno se puede terminar inmediatamente y generar
    una excepción o mensaje de error

28
Técnicas para mejorar las soluciones del método
de eliminación de Gauss
  • Uso de más cifras significativas
  • La solución más simple para el mal
    condicionamiento es usar más cifras
    significativas en los cálculos
  • El uso de la precisión expandida tiene un precio
    que se eleva en forma de tiempo de cálculo y
    cantidad de memoria
  • Pivoteo
  • Ocurren problemas de división por cero cuando el
    coeficiente pivote es cero
  • Cuando el coeficiente pivote es cercano a cero se
    pueden introducir errores de redondeo, porque su
    magnitud puede ser muy pequeña al compararla con
    la de los demás coeficientes
  • Para evitar esto se utiliza el pivoteo parcial

29
Técnicas para mejorar las soluciones del método
de eliminación de Gauss
  • Pivoteo parcial
  • Antes de normalizar cada fila, se determina el
    mayor coeficiente pivote disponible en la columna
    que está por debajo del elemento pivote
  • Las filas se intercambian de manera tal que el
    coeficiente más grande sea el pivote
  • Ventajas del pivoteo parcial
  • Evita la división entre cero
  • Minimiza el error de redondeo

30
Técnicas para mejorar las soluciones del método
de eliminación de Gauss
  • Pivoteo parcial
  • Ejemplo

Problema original
Con pivoteo
a11 es cercano a cero
Restando a la 2da ecuación
Restando a la 2da ecuación
Se restan dos números casi iguales
31
Seudo código para implementar el pivoteo parcial
  • Se puede usar como una subrutina que podría ser
    llamada directamente después del inicio del
    primer ciclo de eliminación
  • Aquí se intercambian de forma física las filas.
    Para grandes matrices esto puede consumir mucho
    tiempo
  • Lo que se hace es no intercambiar las filas sino
    que se guarda el orden de los pivotes en un
    vector, y según este orden se llevan a cabo las
    operaciones de eliminación y sustitución
  • SUB pivot(a, b, n, k)
  • p k
  • big abs(ak,k)
  • DO ii k1, n
  • dummy abs(aii,k)
  • IF (dummy gt big)
  • big dummy
  • p ii
  • END IF
  • END DO
  • IF (p ? k)
  • DO jj k, n
  • dummy ap,jj
  • ap,jj ak,jj
  • ak,jj dummy
  • END DO
  • dummy bp
  • bp bk
  • bk dummy

32
Técnicas para mejorar las soluciones del método
de eliminación de Gauss
  • Escalamiento
  • El escalamiento revela si el pivoteo es necesario
  • Si es necesario, se pivotea pero se retienen los
    coeficientes originales de la ecuación escalada
  • El escalamiento se usa para calcular los valores
    escalados de los coeficientes que servirán como
    un criterio de pivoteo
  • Ejemplo

Escalamiento como criterio de pivoteo Manteniendo
coeficientes originales
Problema original
Escalando y pivoteando
33
Descomposición LU e Inversión de matrices
  • Descomposición LU
  • El principal atractivo de este método es que el
    paso de eliminación, que consume tiempo, se puede
    reformular de tal manera que involucre sólo
    operaciones sobre los elementos de la matriz de
    coeficientes, A
  • De esta forma, es muy adecuado para aquellas
    situaciones donde se debe evaluar muchos vectores
    B
  • El método de eliminación de Gauss puede
    implementarse como una descomposición LU
  • La descomposición LU proporciona un medio eficaz
    para calcular la matriz inversa, la cual a su vez
    permite evaluar la condición de un sistema

34
Descomposición LU
  • Partiendo de un sistema de ecuaciones lineales de
    la forma,
  • Este se puede ordenar como,
  • El primer paso de la eliminación de Gauss
    resulta en un sistema con una matriz triángular
    superior
  • Que puede ser expresada como,
  • Ahora, suponga que existe una matriz triangular
    inferior con números 1 sobre la diagonal
  • que tiene la siguiente propiedad
  • si esta propiedad se cumple, de las reglas de
    multiplicación de matrices se obtiene,

35
Descomposición LU
  • Estrategia para resolver el sistema
  • Paso de descomposición LU la matriz A, se
    factoriza o descompone en matrices triangulares
    inferior L y superior U
  • Paso de sustitución L y U se usan par
    determinar una solución X para un vector B.
    Este paso consta de dos subpasos
  • Se determina el vector intermedio D resolviendo
    LDB por sustitución hacia delante, debido
    a que L es una matriz triangular inferior
  • Se determina X resolviendo UXD por
    sustitución hacia atrás

36
Descomposición LU
  • Descomposición LU con base en la eliminación de
    Gauss
  • Partiendo de una matriz de coeficientes, se llega
    a una matriz triangular superior
  • Para llegar a esta matriz U

La matriz triangular inferior que tiene la
propiedad requerida para la descomposición LU es
  • se multiplicó la fila 1 por el factor f21
    a21/a11 y restando el resultado a la fila 2 se
    eliminó a21
  • se multiplicó la fila 1 por el factor f31
    a31/a11 y restando el resultado a la fila 3 se
    eliminó a31
  • se multiplicó la fila 2 por el factor f32
    a32/a22 y restando el resultado a la fila 3 se
    eliminó a32

37
Descomposición LU
  • Descomposición LU con base en la eliminación de
    Gauss
  • Paso de descomposición LU la matriz A, se
    factoriza o descompone en matrices triangulares
    inferior L y superior U
  • Paso de sustitución L y U se usan par
    determinar una solución X para un vector B.
    Este paso consta de dos subpasos
  • Se determina el vector intermedio D resolviendo
    LDB por sustitución hacia delante
  • Se determina X resolviendo UXD por
    sustitución hacia atrás

38
Seudo código para descomposición LU
SUB Ludecomp(a, b, n, tol, x, er) DIM on, sn er
0 CALL Decompose(a, n, tol, o, s, er) IF er
ltgt -1 THEN CALL Substitute(a, o, n, b, x) END
IF END Ludecomp
39
Seudo código para descomposición LU
SUB Decompose(a, n, tol, o, s, er) DO i
1,n oi i si ABS(ai,1) DO j 2,n IF
ABS(ai,j)gt si THEN si ABS(ai,j) END DO END
DO DO k 1,n-1 CALL Pivot(a, o, s, n, k) IF
ABS(ao(k),k/so(k)) lt tol THEN er -1 PRINT
ao(k),k/so(k) EXIT DO END IF DO i
k1,n factor ao(i),k/ao(k),k ao(i),k
factor DO j k1,n ao(i),j ao(i),j -
factora END DO END DO END DO IF
ABS(ao(k),k/so(k))lt tol THEN er -1 PRINT
ao(k),k/so(k) END IF END Decompose
40
Seudo código para descomposición LU
SUB Substitute(a, o, n, b, x) DO i 2,n sum
bo(i) DO 1,i-1 sum sum -
ao(i),jbo(j) END DO bo(i) sum END DO xn
bo(n)/ao(n),n DO i n-1,1,-1 sum 0 DO j
i1,n sum sum ao(i),jxj END DO xi
(bo(i) - sum)/ao(i),i END DO END Substitute
SUB Pivot(a, o, s, n, k) p k big
ABS(ao(k),k/so(k)) DO ii k1,n dummy
ABS(ao(ii),k/so(ii)) IF dummy gt big THEN big
dummy p ii END IF END DO dummy
op op ok ok dummy END Pivot
41
Matriz inversa
  • Para una matriz cuadrada A, hay otra matriz
    A-1 conocida como la inversa de A, para la
    cual se cumple,
  • A A-1 A-1A I
  • La matriz inversa se puede calcular en una forma
    de columna por columna a partir de vectores
    unitarios como vector de constantes del sistema
    de ecuaciones lineales algebraicas
  • Por ejemplo, para determinar la primera columna
    de la matriz inversa se resuelve el sistema con
    el vector de constantes B1 0 0T
  • para determinar la segunda columna se usa B0 1
    0T
  • y así sucesivamente

42
Matriz inversa
  • La descomposición LU representa la mejor forma
    para implementar el cálculo de la matriz inversa,
    ya que una vez obtenida la descomposición LU de
    la matriz A se puede calcular su inversa
    resolviendo cada columna con los vectores
    unitarios como constantes
  • Ejemplo Determinar la inversa de

A 3 -0.1 -0.2 0.1 7 -0.3 0.3 -0.2 10
1. Descomposición LU de la matriz A
B1 1 0 0
B2 0 1 0
B3 0 0 1
LU(A) 3 -0.1 -0.2 0.0333 7.0033 -0.2933 0.1
-0.0271 10.0120
2. Sustitución,
InvA(1) 0.3325 -0.0052 -0.0101
InvA(2) 0.0049 0.1429 0.0027
InvA(3) 0.0068 0.0042 0.0999
43
Análisis de error y condición del sistema
  • La matriz inversa permite determinar si un
    sistema está mal condicionado, para esto existen
    3 métodos
  • Escalar la matriz de coeficientes A, de tal
    manera que el elemento más grande en cada fila
    sea 1. Si al invertir la matriz escalada existen
    elementos de la inversa A-1 que sean varios
    ordenes de magnitud mayores que la unidad, es
    probable que el sistema esté mal condicionado
  • Multiplicar la inversa por la matriz de
    coeficientes original y verificar que AA-1 ?
    I. Si no es así, indica que el sistema está mal
    condicionado
  • Invertir la matriz inversa y verificar que el
    resultado está lo suficientemente cercano a la
    matriz original. Si no es así, indica que el
    sistema está mal condicionado

44
Número de condición de una matriz
  • Este número mide la sensibilidad de la solución
    de un sistema de ecuaciones lineales a errores en
    los datos
  • Valores cercanos a 1 indican que el sistema está
    bien condicionado
  • Valores grandes indican que la matriz es casi
    singular

45
Número de condición de una matriz
Norma columna-suma
Norma Euclidiana - Para vector - Para matriz
  • Norma 2, o normal espectral
  • ?max es el eigenvalor más grande de ATA. Esta
    es la la norma mínima, por lo tanto proporciona
    la medida de tamaño más ajustada

Norma infinita / matriz uniforme / fila-suma
Norma de Frobenius
46
Matrices especiales
  • Matrices banda
  • Matrices simétricas
  • Una matriz banda es una matriz cuadrada en la que
    todos sus elementos son cero, con excepción de
    una banda centrada sobre la diagonal principal

HBW1
  • Las dimensiones de un sistema de banda se pueden
    cuantificar con dos parámetros
  • Ancho de banda, BW
  • Ancho de media banda, HBW
  • Estos se relacionan por BW 2HBW 1
  • En general un sistema de banda es aquel para el
    cual aij 0 si i j gt HBW

Diagonal
HBW
BW
47
Matrices especiales
  • La eliminación de Gauss o la descomposición LU
    pueden emplearse para resolver sistemas de banda,
    pero si el pivoteo no es necesario resultan
    ineficientes, porque se utilizaría tiempo y
    espacio innecesario en el almacenamiento y manejo
    de ceros
  • Si se sabe de antemano que el pivoteo es
    innecesario, se pueden desarrollar algoritmos muy
    eficientes que no involucren los elementos cero
    fuera de la banda

48
Sistemas tridiagonales
  • Un sistema tridiagonal (ancho de banda 3) se
    puede expresar como
  • Se cambia la notación
  • a ? e, f, g
  • b ? r
  • para evitar guardar ceros, ahorrando espacio

49
Sistemas tridiagonales
  • Ejemplo

B 14.5000 -4 -6 -8 -10 -12 -14 -16 -30
A -5 1.5 0 0 0 0 0 0 0 2.5 -5 1.5 0 0 0 0 0
0 0 2.5 -5 1.5 0 0 0 0 0 0 0 2.5 -5 1.5 0 0 0
0 0 0 0 2.5 -5 1.5 0 0 0 0 0 0 0 2.5 -5 1.5 0
0 0 0 0 0 0 2.5 -5 1.5 0 0 0 0 0 0 0 2.5 -5
1.5 0 0 0 0 0 0 0 2.5 -5
f -5 -5 -5 -5 -5 -5 -5 -5 -5
g 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 0
e 0 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5
50
Algoritmo de Thomas (TDMA, tridiagonal matrix
algorithm)
  • El algoritmo consiste en tres pasos
  • Descomposición
  • Sustitución hacia delante
  • Sustitución hacia atrás
  • Manteniendo todas las ventajas de la
    descomposición LU

51
Seudo código para algoritmo de Thomas
  • a) Descomposición
  • DO k 2, n
  • ek ek/fk-1
  • fk fk - ekgk-1
  • END DO
  • b) Sustitución hacia adelante
  • DO k 2,n
  • rk rk - ekrk-1
  • END DO
  • c) Sustitución hacia atrás
  • xn rn/fn
  • DO k n-1,1,-1
  • xk (rk - gkxk1)/fk
  • END DO

52
Descomposición de Cholesky
  • La descomposición o factorización de Cholesky
    expresa una matriz simétrica como el producto de
    una matriz triangular y su transpuesta
  • A LLT ? L matriz triangular inferior
  • No todas las matrices simétricas se pueden
    factorizar de esta forma
  • Las matrices que tienen este tipo de
    factorización son las matrices simétricas
    definidas positivas. Esto implica que todos los
    elementos de la diagonal sean positivos y que los
    elementos fuera de la diagonal no sean muy
    grandes

53
Descomposición de Cholesky
  • Los términos de la descomposición se pueden
    multiplicar entre si. El resultado se puede
    expresar en forma simple por relaciones
    recurrentes
  • Para la fila k

54
Descomposición de Cholesky
  • Ejemplo,

Para k 1
Para k 2
Para k 3
Sustitución hacia adelante
Sustitución hacia atrás
55
Seudo código para la descomposición de Cholesky
  • for k 1n
  • for i 1k-1
  • sum 0
  • for j 1i-1
  • sum sum A(i,j)A(k,j)
  • end
  • A(k,i) (A(k,i) - sum)/A(i,i)
  • end
  • sum 0
  • for j 1k-1
  • sum sum A(k,j)2
  • end
  • A(k,k) sqrt(A(k,k) - sum)
  • end

56
Método de Gauss-Seidel
  • Este es un método iterativo
  • Dado un conjunto de ecuaciones, AX B
  • Si los elementos de la diagonal son diferentes de
    cero, se puede resolver la ecuación i para la
    variable i, donde i 1n
  • Se puede empezar el proceso de solución al
    escoger los valores iniciales de las variables x
    (xi 0)

57
Método de Gauss-Seidel
  • Los valores iniciales se sustituyen en la primera
    ecuación para calcular un nuevo valor para x1
  • Este nuevo valor de x1 junto con los demás
    valores iniciales se sustituyen en la segunda
    ecuación para calcular un nuevo valor para x2
  • Este proceso se repite hasta calcular los nuevos
    valores de las n variables
  • Después se regresa a la primera ecuación y se
    repite todo el procedimiento hasta que la
    solución converja a la solución real
  • La convergencia se puede verificar usando el
    criterio,

58
Criterio de convergencia del método de
Gauss-Seidel
  • Este método es similar en esencia al método de
    iteración de punto de fijo que se usa para el
    cálculo de raíces de una ecuación
  • Presenta las mismas desventajas
  • En algunos casos no converge
  • En algunos casos la convergencia es lenta
  • Las condiciones suficientes para la convergencia
    de dos ecuaciones no lineales también aplican
    para ecuaciones lineales cuando se usa
    Gauss-Seidel

59
Criterio de convergencia del método de
Gauss-Seidel
  • En el caso de dos ecuaciones el método de
    Gauss-Seidel se expresa como
  • Las derivadas parciales de estas ecuaciones con
    respecto a las variables son
  • Para que se cumplan las condiciones suficientes
    de convergencia

60
Criterio de convergencia del método de
Gauss-Seidel
  • El valor absoluto de la pendiente de las
    ecuaciones rectas debe ser menor que la unidad
    para asegurar convergencia
  • Rerformulando,
  • El elemento diagonal debe ser mayor que el
    elemento fuera de la diagonal para cada fila
    (sistemas diagonal dominantes)
  • Generalizando para n ecuaciones
  • El criterio es suficiente pero no necesario para
    convergencia

61
Mejoras a la convergencia por medio de relajación
  • La relajación representa una ligera modificación
    al método de Gauss-Seidel y está diseñada para
    mejorar la convergencia
  • Después de calcular cada nuevo valor de x, ese
    valor se modifica por un promedio ponderado de
    los resultados de las iteraciones anterior y
    actual
  • ? es el coeficiente de relajación que tiene un
    valor entre 0 y 2
  • Si ? 1 ? el resultado no se modifica
  • Si 0 lt ? lt 1 ? el resultado es un promedio
    ponderado de xinuevo y xianterior
    (subrelajación), se usa para hacer que un sistema
    no convergente, converja o converja más rápido al
    amortiguar sus oscilaciones
  • Si 1 lt ? lt 2 ? se le da una ponderación extra al
    valor actual (sobrerelajación), acelera la
    convergencia de un sistema que ya es convergente.
    También es conocida como sobrerelajación
    simultánea o sucesiva, SOR

62
Seudo código para el método de Gauss-Seidel con
relajación
  • SUBROUTINE Gseid(a,b,n,x,imax,es,lambda)
  • for i 1n
  • dummy a(i,i)
  • for j 1n
  • a(i,j) a(i,j)/dummy
  • end
  • b(i) b(i)/dummy
  • end
  • for i 1n
  • sum b(i)
  • for j 1n
  • if i j
  • sum sum - a(i,j)x(j)
  • end
  • end
  • x(i) sum
  • end
  • iter 1
  • while iter lt maxIteraciones
  • sentinel 1
  • for i 1n
  • old x(i)
  • sum b(i)
  • for j 1n
  • if i j
  • sum sum - a(i,j)x(j)
  • end
  • end
  • x(i) lambda sum (1.0-lambda)old
  • if sentinel 1 AND x(1) 0.0
  • ea abs((x(i)-old)/x(i))100
  • if ea gt es
  • sentinel 0
  • end
  • end
  • end
  • iter iter 1
Write a Comment
User Comments (0)
About PowerShow.com