SlideShare una empresa de Scribd logo
Métodos iterativos para sistemas lineales Programación numérica
Normas de vectores y matrices Una norma vectorial en R n  es una función ||  ·  ||, de R n  en R con las siguientes propiedades: (i) ||  x  ||    0 para todo  x     R n . (ii) ||  x  || = 0 si y solo si  x  = (0,0,...,0) t      0 . (iii) ||   x  || = |  ||  x  || para todo       R y  x     R n . (iv) ||  x  +  y  ||    ||  x  || + ||  y  || para todo  x ,  y     R n .
Vector en R n El vector Se denotará por:  x  =( x 1 ,  x 2 , ..., x n ) t
Norma  l 2  y  l  La norma  l 2  o norma euclidiana se define como La norma  l   se define como x 1 x 2 (1,0) (0,-1) (0,1) (-1,0) Los vectores en R 2  con la norma l 2  menos 1 se encuentran dentro de esta figura. x 1 x 2 (1,0) (0,-1) (0,1) (-1,0) Los vectores en R 2  con la norme l   menos 1 se encuentran dentro de esta figura.
Distancias Si  x  =( x 1 ,  x 2 , ..., x n ) t  y  y  =( y 1 ,  y 2 , ..., y n ) t  son vectores en R n  las distancias  l 2  y  l    éntre  x  y  y  están definidas por
Ejemplo 3.3330x 1  + 15920x 2   – 10.333x 3  = 15913 2.2220x 1  + 16.710x 2  + 9.6120x 3  = 28.544 1.5611x 1  + 5.1791x 2  + 1.6852x 3  = 8.4254 Solución:  x  = (1.0000,1.0000,1.0000) t Con Gauss:  x’  = (1.2001,0.99991,0.92538) t || x  –  x’ ||   = 0.2001 || x  –  x’ || 2  = 0.21356
Convergencia Se dice que una sucesión  de vectores en R n  converge a  x  respecto a la norma || . || si dado cualquier    > 0, existe un entero  N (  ) tal que ||  x ( k )  –  x || <    para todo k     N (  ) La sucesión { x ( k ) } converge a x respecto a || . ||   si y solo si Para cada  k  = 1, 2, ...,  n . Para todo x    R n , ||x||      ||x|| 2      n ||x|| 
Norma matricial Una norma matricial sobre el conjunto de todas las matrices  n  x  n  es una función ||  ·  ||, definida en ese conjunto y que satisface para todas las matrices  A ,  B  de  n  x  n  y todos los números   : (i) ||  A  ||    0 (ii) ||  A  || = 0 si y solo si  A  es 0 . (iii) ||   A  || = |  ||  A  || (iv) ||  A   +  B  ||    ||  A  || + ||  B  || (v) ||  AB  ||    ||  A  || ||  B  || Una distancia entre A y B es ||  A      B  ||
Norma matricial  l 2  y  l  Norma  l  Norma  l 2
Cálculo de la norma  l  Norma  l   se calcula con
Cálculo de la norma  l 2 Norma  l 2  se calcula con Donde    es el  radio espectral  de  A t A . El radio espectral es el máximo de los valores de propios de la matriz, calculadas con la ecuación
Ejemplo O –  3  + 14  2  – 42   = 0 Resolviendo se encuentra  || A || 2  = 3.16
Normas en Octave norm  ( a, p ) Computa la norm p de la matriz  a . Si no hay segundo argumento, se supone p = 2.  Si  a  es una matriz:  p  = 1 norma 1, la suma de la columna mayor de los valores absolutos de a.  p  = 2 El mayor valor singular de  a .  p  = Inf norma Infinita, la suma del renglón de los valores absolutos de  a .  p  = &quot;fro&quot; la norm Frobenius de  a , sqrt (sum (diag ( a ' *  a ))).
Métodos iterativos Un método de solución de A x  =  b Comienza con una aproximación  x (0)  y genera la sucesión de vectores { x (k) }  k = 0 ..   Los métodos iterativos se utilizan para sistemas de un gran número de ecuaciones con un alto porcentaje de elementos cero.
Método de solución El sistema  A x  =  b  se escribe de la forma x  =  T x  +  c Donde  T  es una matriz fija y un vector  c . La sucesión de vectores se genera calculando   x (k)  =  T  x (k–1)  +  c
Ejemplo E1: 10x 1  - x 2  + 2x 3   = 6 E2:  -x 1 + 11x 2  – x 3  + 3x 4  = 25 E3: 2x 1  - x 2  + 10x 3  -  x 4  = -11 E4:  3x 2  -  x 3  + 8x 4  = 15 Despejando  x i  de la ecuación  i : x 1  =  1/10x 2  – 1/5x 3   + 3/5 x 2  = 1/11x 1   + 1/11x 3  – 3/11x 4  + 25/11 x 3  =-1/5x 1  + 1/10x 2   +  1/10x 4  –11/10 x 4  =  - 3/8x 2  +  1/8x 3   +15/8
 
Tarea 32 Resuelva con Excel los siguientes sistemas usando el método iterativo de Jacobi.  3x 1  - x 2  + x 3   = 1           10 x 1  - x 2            = 0  3x 1  +6x 2 +2x 3    =0                 -x 1  +10x 2  - 2x 3  = 7 3x 1  +3x 2 +7x 3    = 4                      - 2x 2  +10x 3  = 6 10 x 1  + 5 x 2                 = 6               4x 1  + x 2  - x 3  + x 4  =  -2  5 x 1  + 10 x 2  -  4 x 3        = 25                  x 1  + x 2  - x 3  x 4  =  -1        - 4 x 2  +  8 x 3   - x 4  = -11             -x 1  - x 2  + 5x 3  + x 4  =  0                   -   x 3 + 5x 4  = -11              x 1  - x 2  + x 3  +3 x 4  =  1
Método iterativo de Jacobi Se resuelve la i-ésima ecuación para  x i : Siempre que  a ii     0
Método iterativo de Jacobi Escribimos la matriz del sistema como A =  D - L - U
Método iterativo de Jacobi A x  =  b ( D – L – U ) x  =  b D x  = ( L + U ) x  +  b x  =  D -1 ( L + U ) x  +  D -1 b x (k)  =  D -1 ( L + U ) x  (k-1)   +  D -1 b   k = 1, 2, ... x (k)  =  T j x  (k-1)   +  c j
Código en matlab function [x,J,c] = jacobi(A,b,n,z) %  n -- número de iteraciones %  z -- vector inicial(default 0) %  x -- solución final %  J -- matriz de Jacobi %  c -- vector de Jacobi if nargin <=3, z=0*b; end D = diag(diag(A)); J = D\(D - A); c = D\b; x=z; for k = 1:n x = J*x + c; fprintf(1,'%3d  ',k) fprintf(1,'%5.4f  ',x') fprintf(1,'\n') end
Método iterativo de Jacobi Entrada: número de ecuaciones, elementos  a ij , los elementos  b i , X0 los valores iniciales de  x , Tol la tolerancia, el número de iteraciones N. Salida: la solución aproximada, o el mensaje de que no hay solución. 1. k = 1 2. Mientras k <= N hacer pasos 3-9 3.  Para i = 1 hasta N 4. 5.  Si || x  –  x0 || < TOL 6.  Regresar (x1, x2, ..., xn) y parar 7.  k = k +1 8.  Para j = 1 hasta N 9.  X0j = xj 10. Salida(“no se encontro solución”)
Método de Jacobi en Matlab function y = jacobi(a,b,x0,tol,maxi) [n muda] = size(a); k = 1; x = x0; while k<=maxi for i=1:n suma = 0; for j=1:n if i~=j suma = suma - a(i,j)*x(j); end end x(i) = (suma+b(i))/a(i,i); end if norm(x-x0)<tol y = x; return end k = k + 1; x0 = x; end fprintf('No se  encontró solución')
Ejemplo de corrida >> a=[10,-1,2,0;-1,11,-1,3;2,-1,10,-1;0,3,-1,8]; >> b = [6,25,-11,15]‘; >> jacobi(a,b,[0,0,0,0],1e-3,20) ans = 1.0001  2.0000  -1.0000  1.0000 >>  E1: 10x 1  - x 2  + 2x 3   = 6 E2:  -x 1 + 11x 2  – x 3  + 3x 4  = 25 E3: 2x 1  - x 2  + 10x 3  -  x 4  = -11 E4:  3x 2  -  x 3  + 8x 4  = 15
Método iterativo de Gauss-Seidel En el paso k se utilizan las  x i   ya calculadas. Excepto por esta fórmula, el algoritmo es el mismo que el de Jacobi.
Gauss-Seidel en Matlav function [x,G,c] = gsmp(A,b,n,z) %  n -- número de iteraciones %  z -- vector inicial (default 0) %  x -- iteración final %  G -- matriz Gauss-Seidel %  c -- vector Gauss-Seidel if nargin <=3, z=0*b; end LD = tril(A); G = -LD\triu(A,1); c = LD\b; x=z; for i = 1:n x = G*x + c; fprintf(1,'%3d  ',i) fprintf(1,'%5.5f  ',x') fprintf(1,'\n') end
Ejemplo a = 4  3  0 3  4  -1 0  -1  4 b = 24 30 -24 gsmp(a,b,7,[1 1 1]') 1  5.25000  3.81250  -5.04688  2  3.14062  3.88281  -5.02930  3  3.08789  3.92676  -5.01831  4  3.05493  3.95422  -5.01144  5  3.03433  3.97139  -5.00715  6  3.02146  3.98212  -5.00447  7  3.01341  3.98882  -5.00279
Métodos de relajación Los métodos de relajación tiene el siguiente esquema. Si 0 < w < 1 se llama subrelajación y se utiliza cuando el método de Gauss-Seidel no converge. Si 1 < w se llama sobrerrelajación y sirve para acelerar la convergencia. Valores típicos de 1.2 a 1.7.
Métodos de relajación En forma matricial ( D  +  wL ) x  = [(1 –  w ) D  –  wU ] x  +  w b x  = ( D  +  wL ) –1  [(1 –  w ) D  –  wU ] x  + ( D  +  wL )  –1  w b
Relajación en Matlab function [x,G,c] = relaj(A,b,n,w,z) %  n -- número de iteraciones %  z -- vector inicial (default 0) %  x -- iteración final %  G -- matriz Gauss-Seidel %  c -- vector Gauss-Seidel %  w -- Coeficiente de relajación if nargin <=3, z=0*b; end D = diag(diag(A)); LD = inv(D+w*tril(A,-1)); G = LD*((1-w)*D-w*triu(A,1)); c = w*LD*b; x=z; for i = 1:n x = (G*x + c); fprintf(1,'%3d  ',i) fprintf(1,'%5.5f  ',x') fprintf(1,'\n') end
Ejemplo a = 4  3  0 3  4  -1 0  -1  4 b = 24 30 -24 relaj(a,b,7,1.25,[1 1 1]') 1  6.31250  3.51953  -6.65015  2  2.62231  3.95853  -4.60042  3  3.13330  4.01026  -5.09669  4  2.95705  4.00748  -4.97349  5  3.00372  4.00292  -5.00571  6  2.99633  4.00093  -4.99828  7  3.00005  4.00026  -5.00035
Tarea 33 Resuelva los problemas anteriores por Gauss Seidel y relajación en Excel.

Más contenido relacionado

PDF
propiedades de matrices y determinantes
PDF
MéTodo De IteracióN De Punto Fijo
PPTX
Vectores tangente unitario y normal unitario
PDF
EJERCICIOS CON LA ECUACION DE CAUCHY RIEMANN DEL 1 AL 15 (1).pdf
PDF
Extremos condicionados
PPTX
Ecuaciones diferenciales no lineales
PDF
Derivadas de funciones paramétricas
propiedades de matrices y determinantes
MéTodo De IteracióN De Punto Fijo
Vectores tangente unitario y normal unitario
EJERCICIOS CON LA ECUACION DE CAUCHY RIEMANN DEL 1 AL 15 (1).pdf
Extremos condicionados
Ecuaciones diferenciales no lineales
Derivadas de funciones paramétricas

La actualidad más candente (20)

DOC
Apuntes metodos-numericos-aproximacion-funcional-e-interpolacion
PPTX
Metodo de biseccion y regla falsa
PPSX
Cuadratura de gauss
PPTX
Integrales dobles
PPTX
Ecuaciones Lineales Homogéneas con coeficientes constantes
PDF
Transformadas de laplace 1
PPTX
Sistemas de Ecuaciones Lineales y Matriz Inversa por Método de Gauss-Jordan. ...
PDF
5.metodo del punto fijo
PDF
Problemas sobre vaciado de tanques
DOCX
Conjunto generador
PDF
Métodos numéricos- Problemario
PDF
Rotacional de un campo vectorial
DOCX
Solución de sistemas de ecuaciones lineaes
PDF
Métodos de Diferencias Finitas
PDF
Ejercicios Resueltos de Calculo Vectorial e Integrales de linea
PPT
Serie de-taylor-y-maclaurin
DOC
Ejercicios resueltos de integrales indefinidas
PDF
Tabla de derivadas
PPTX
Operador anulador
PPT
Presentación Métodos Numéricos
Apuntes metodos-numericos-aproximacion-funcional-e-interpolacion
Metodo de biseccion y regla falsa
Cuadratura de gauss
Integrales dobles
Ecuaciones Lineales Homogéneas con coeficientes constantes
Transformadas de laplace 1
Sistemas de Ecuaciones Lineales y Matriz Inversa por Método de Gauss-Jordan. ...
5.metodo del punto fijo
Problemas sobre vaciado de tanques
Conjunto generador
Métodos numéricos- Problemario
Rotacional de un campo vectorial
Solución de sistemas de ecuaciones lineaes
Métodos de Diferencias Finitas
Ejercicios Resueltos de Calculo Vectorial e Integrales de linea
Serie de-taylor-y-maclaurin
Ejercicios resueltos de integrales indefinidas
Tabla de derivadas
Operador anulador
Presentación Métodos Numéricos
Publicidad

Similar a Metodos iterativos (20)

PPT
4 sel metodos iterativos
PDF
Oper.2305.m03.lectura.v1
PPTX
Método de jacobi
PPTX
Método de jacobi
PDF
Jacobi y Gauss Seidel
PPT
sistemas_lineales_iterativos. jesusparadappt
PPTX
Método de jacobi Metodos Numericos
PPSX
Método de jacobi Métodos Númericos
PPTX
Clase 11 MDJ
PPTX
Teoría de un método Iterativo
DOCX
Unidad 6 metodos
PDF
Trabajo practico - Grafos y Matrices (332) - UNA
DOCX
C:\Documents And Settings\Administrador\Mis Documentos\MéTodos NuméRicos Intr...
PPTX
Métodos numéricos
PPT
Metodos numericos 5
PPT
Metodos numericos 5
PPT
3 SEL Métodos_Directos.opóppópópópópópóp
PDF
catedra-metodos-numericos-2015-unsch-08.pdf
PPTX
Algebra
PPTX
4 sel metodos iterativos
Oper.2305.m03.lectura.v1
Método de jacobi
Método de jacobi
Jacobi y Gauss Seidel
sistemas_lineales_iterativos. jesusparadappt
Método de jacobi Metodos Numericos
Método de jacobi Métodos Númericos
Clase 11 MDJ
Teoría de un método Iterativo
Unidad 6 metodos
Trabajo practico - Grafos y Matrices (332) - UNA
C:\Documents And Settings\Administrador\Mis Documentos\MéTodos NuméRicos Intr...
Métodos numéricos
Metodos numericos 5
Metodos numericos 5
3 SEL Métodos_Directos.opóppópópópópópóp
catedra-metodos-numericos-2015-unsch-08.pdf
Algebra
Publicidad

Más de fabianchopinto (20)

XLSX
Taller refuerzo
DOCX
DOCX
Fixedpoint
XLSX
Taller ej 1 gauss seidel
XLSX
Metodos especiales ejercicio en clase
PPT
Metodo Jacobiano
PPT
Metodo Jacobiano
XLSX
Metodos especiales
PDF
Gauss con pivoteo
PDF
Curso programación y_métodos_numéricos_linux
PDF
02 ec no_lineales_v4.128
PDF
Sny cap7
PDF
Sesion practica i[1]
PDF
P46 articulo gcc
PPT
Multifasico
PDF
Multifasico
PDF
Cavm0 b3x
PDF
Taller refuerzo
Fixedpoint
Taller ej 1 gauss seidel
Metodos especiales ejercicio en clase
Metodo Jacobiano
Metodo Jacobiano
Metodos especiales
Gauss con pivoteo
Curso programación y_métodos_numéricos_linux
02 ec no_lineales_v4.128
Sny cap7
Sesion practica i[1]
P46 articulo gcc
Multifasico
Multifasico
Cavm0 b3x

Metodos iterativos

  • 1. Métodos iterativos para sistemas lineales Programación numérica
  • 2. Normas de vectores y matrices Una norma vectorial en R n es una función || · ||, de R n en R con las siguientes propiedades: (i) || x ||  0 para todo x  R n . (ii) || x || = 0 si y solo si x = (0,0,...,0) t  0 . (iii) ||  x || = |  || x || para todo   R y x  R n . (iv) || x + y ||  || x || + || y || para todo x , y  R n .
  • 3. Vector en R n El vector Se denotará por: x =( x 1 , x 2 , ..., x n ) t
  • 4. Norma l 2 y l  La norma l 2 o norma euclidiana se define como La norma l  se define como x 1 x 2 (1,0) (0,-1) (0,1) (-1,0) Los vectores en R 2 con la norma l 2 menos 1 se encuentran dentro de esta figura. x 1 x 2 (1,0) (0,-1) (0,1) (-1,0) Los vectores en R 2 con la norme l  menos 1 se encuentran dentro de esta figura.
  • 5. Distancias Si x =( x 1 , x 2 , ..., x n ) t y y =( y 1 , y 2 , ..., y n ) t son vectores en R n las distancias l 2 y l  éntre x y y están definidas por
  • 6. Ejemplo 3.3330x 1 + 15920x 2 – 10.333x 3 = 15913 2.2220x 1 + 16.710x 2 + 9.6120x 3 = 28.544 1.5611x 1 + 5.1791x 2 + 1.6852x 3 = 8.4254 Solución: x = (1.0000,1.0000,1.0000) t Con Gauss: x’ = (1.2001,0.99991,0.92538) t || x – x’ ||  = 0.2001 || x – x’ || 2 = 0.21356
  • 7. Convergencia Se dice que una sucesión de vectores en R n converge a x respecto a la norma || . || si dado cualquier  > 0, existe un entero N (  ) tal que || x ( k ) – x || <  para todo k  N (  ) La sucesión { x ( k ) } converge a x respecto a || . ||  si y solo si Para cada k = 1, 2, ..., n . Para todo x  R n , ||x||   ||x|| 2   n ||x|| 
  • 8. Norma matricial Una norma matricial sobre el conjunto de todas las matrices n x n es una función || · ||, definida en ese conjunto y que satisface para todas las matrices A , B de n x n y todos los números  : (i) || A ||  0 (ii) || A || = 0 si y solo si A es 0 . (iii) ||  A || = |  || A || (iv) || A + B ||  || A || + || B || (v) || AB ||  || A || || B || Una distancia entre A y B es || A  B ||
  • 9. Norma matricial l 2 y l  Norma l  Norma l 2
  • 10. Cálculo de la norma l  Norma l  se calcula con
  • 11. Cálculo de la norma l 2 Norma l 2 se calcula con Donde  es el radio espectral de A t A . El radio espectral es el máximo de los valores de propios de la matriz, calculadas con la ecuación
  • 12. Ejemplo O –  3 + 14  2 – 42  = 0 Resolviendo se encuentra || A || 2 = 3.16
  • 13. Normas en Octave norm ( a, p ) Computa la norm p de la matriz a . Si no hay segundo argumento, se supone p = 2. Si a es una matriz: p = 1 norma 1, la suma de la columna mayor de los valores absolutos de a. p = 2 El mayor valor singular de a . p = Inf norma Infinita, la suma del renglón de los valores absolutos de a . p = &quot;fro&quot; la norm Frobenius de a , sqrt (sum (diag ( a ' * a ))).
  • 14. Métodos iterativos Un método de solución de A x = b Comienza con una aproximación x (0) y genera la sucesión de vectores { x (k) } k = 0 ..  Los métodos iterativos se utilizan para sistemas de un gran número de ecuaciones con un alto porcentaje de elementos cero.
  • 15. Método de solución El sistema A x = b se escribe de la forma x = T x + c Donde T es una matriz fija y un vector c . La sucesión de vectores se genera calculando x (k) = T x (k–1) + c
  • 16. Ejemplo E1: 10x 1 - x 2 + 2x 3 = 6 E2: -x 1 + 11x 2 – x 3 + 3x 4 = 25 E3: 2x 1 - x 2 + 10x 3 - x 4 = -11 E4: 3x 2 - x 3 + 8x 4 = 15 Despejando x i de la ecuación i : x 1 = 1/10x 2 – 1/5x 3 + 3/5 x 2 = 1/11x 1 + 1/11x 3 – 3/11x 4 + 25/11 x 3 =-1/5x 1 + 1/10x 2 + 1/10x 4 –11/10 x 4 = - 3/8x 2 + 1/8x 3 +15/8
  • 17.  
  • 18. Tarea 32 Resuelva con Excel los siguientes sistemas usando el método iterativo de Jacobi. 3x 1 - x 2 + x 3   = 1           10 x 1 - x 2            = 0  3x 1 +6x 2 +2x 3    =0                 -x 1 +10x 2 - 2x 3 = 7 3x 1 +3x 2 +7x 3    = 4                     - 2x 2 +10x 3 = 6 10 x 1 + 5 x 2                 = 6               4x 1 + x 2 - x 3 + x 4 =  -2  5 x 1 + 10 x 2 -  4 x 3        = 25                  x 1 + x 2 - x 3 x 4 =  -1        - 4 x 2 +  8 x 3   - x 4 = -11             -x 1 - x 2 + 5x 3 + x 4 =  0                   -   x 3 + 5x 4 = -11              x 1 - x 2 + x 3 +3 x 4 =  1
  • 19. Método iterativo de Jacobi Se resuelve la i-ésima ecuación para x i : Siempre que a ii  0
  • 20. Método iterativo de Jacobi Escribimos la matriz del sistema como A = D - L - U
  • 21. Método iterativo de Jacobi A x = b ( D – L – U ) x = b D x = ( L + U ) x + b x = D -1 ( L + U ) x + D -1 b x (k) = D -1 ( L + U ) x (k-1) + D -1 b k = 1, 2, ... x (k) = T j x (k-1) + c j
  • 22. Código en matlab function [x,J,c] = jacobi(A,b,n,z) % n -- número de iteraciones % z -- vector inicial(default 0) % x -- solución final % J -- matriz de Jacobi % c -- vector de Jacobi if nargin <=3, z=0*b; end D = diag(diag(A)); J = D\(D - A); c = D\b; x=z; for k = 1:n x = J*x + c; fprintf(1,'%3d ',k) fprintf(1,'%5.4f ',x') fprintf(1,'\n') end
  • 23. Método iterativo de Jacobi Entrada: número de ecuaciones, elementos a ij , los elementos b i , X0 los valores iniciales de x , Tol la tolerancia, el número de iteraciones N. Salida: la solución aproximada, o el mensaje de que no hay solución. 1. k = 1 2. Mientras k <= N hacer pasos 3-9 3. Para i = 1 hasta N 4. 5. Si || x – x0 || < TOL 6. Regresar (x1, x2, ..., xn) y parar 7. k = k +1 8. Para j = 1 hasta N 9. X0j = xj 10. Salida(“no se encontro solución”)
  • 24. Método de Jacobi en Matlab function y = jacobi(a,b,x0,tol,maxi) [n muda] = size(a); k = 1; x = x0; while k<=maxi for i=1:n suma = 0; for j=1:n if i~=j suma = suma - a(i,j)*x(j); end end x(i) = (suma+b(i))/a(i,i); end if norm(x-x0)<tol y = x; return end k = k + 1; x0 = x; end fprintf('No se encontró solución')
  • 25. Ejemplo de corrida >> a=[10,-1,2,0;-1,11,-1,3;2,-1,10,-1;0,3,-1,8]; >> b = [6,25,-11,15]‘; >> jacobi(a,b,[0,0,0,0],1e-3,20) ans = 1.0001 2.0000 -1.0000 1.0000 >> E1: 10x 1 - x 2 + 2x 3 = 6 E2: -x 1 + 11x 2 – x 3 + 3x 4 = 25 E3: 2x 1 - x 2 + 10x 3 - x 4 = -11 E4: 3x 2 - x 3 + 8x 4 = 15
  • 26. Método iterativo de Gauss-Seidel En el paso k se utilizan las x i ya calculadas. Excepto por esta fórmula, el algoritmo es el mismo que el de Jacobi.
  • 27. Gauss-Seidel en Matlav function [x,G,c] = gsmp(A,b,n,z) % n -- número de iteraciones % z -- vector inicial (default 0) % x -- iteración final % G -- matriz Gauss-Seidel % c -- vector Gauss-Seidel if nargin <=3, z=0*b; end LD = tril(A); G = -LD\triu(A,1); c = LD\b; x=z; for i = 1:n x = G*x + c; fprintf(1,'%3d ',i) fprintf(1,'%5.5f ',x') fprintf(1,'\n') end
  • 28. Ejemplo a = 4 3 0 3 4 -1 0 -1 4 b = 24 30 -24 gsmp(a,b,7,[1 1 1]') 1 5.25000 3.81250 -5.04688 2 3.14062 3.88281 -5.02930 3 3.08789 3.92676 -5.01831 4 3.05493 3.95422 -5.01144 5 3.03433 3.97139 -5.00715 6 3.02146 3.98212 -5.00447 7 3.01341 3.98882 -5.00279
  • 29. Métodos de relajación Los métodos de relajación tiene el siguiente esquema. Si 0 < w < 1 se llama subrelajación y se utiliza cuando el método de Gauss-Seidel no converge. Si 1 < w se llama sobrerrelajación y sirve para acelerar la convergencia. Valores típicos de 1.2 a 1.7.
  • 30. Métodos de relajación En forma matricial ( D + wL ) x = [(1 – w ) D – wU ] x + w b x = ( D + wL ) –1 [(1 – w ) D – wU ] x + ( D + wL ) –1 w b
  • 31. Relajación en Matlab function [x,G,c] = relaj(A,b,n,w,z) % n -- número de iteraciones % z -- vector inicial (default 0) % x -- iteración final % G -- matriz Gauss-Seidel % c -- vector Gauss-Seidel % w -- Coeficiente de relajación if nargin <=3, z=0*b; end D = diag(diag(A)); LD = inv(D+w*tril(A,-1)); G = LD*((1-w)*D-w*triu(A,1)); c = w*LD*b; x=z; for i = 1:n x = (G*x + c); fprintf(1,'%3d ',i) fprintf(1,'%5.5f ',x') fprintf(1,'\n') end
  • 32. Ejemplo a = 4 3 0 3 4 -1 0 -1 4 b = 24 30 -24 relaj(a,b,7,1.25,[1 1 1]') 1 6.31250 3.51953 -6.65015 2 2.62231 3.95853 -4.60042 3 3.13330 4.01026 -5.09669 4 2.95705 4.00748 -4.97349 5 3.00372 4.00292 -5.00571 6 2.99633 4.00093 -4.99828 7 3.00005 4.00026 -5.00035
  • 33. Tarea 33 Resuelva los problemas anteriores por Gauss Seidel y relajación en Excel.