Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López ETSI Minas de la Universidad Politécnica de Madrid EJERCICIO RESUELTO SOBRE MÉTODOS ITERATIVOS DE RESOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES Dado el sistema de ecuaciones lineales: ⎧ x + 2y = 3 ⎨ ⎩2 x + 5y = 7 Se pide: a) Determinar si es resoluble por el método de gradiente conjugado. b) Obtener la funcional cuadrática asociada a este sistema. c) Realizar dos iteraciones del método de gradiente conjugado a partir del vector semilla x(0) = (2, 2)T. Solución: a) El sistema dado puede escribirse como Ax = b, con: ⎛1 2⎞ A=⎜ ⎟ ⎝2 5⎠ ⎛ 3⎞ b=⎜ ⎟ ⎝7⎠ ⎛ x⎞ x=⎜ ⎟ ⎝ y⎠ Para que el método de gradiente conjugado pueda aplicarse es necesario que la matriz A sea definida positiva, lo cual puede comprobarse viendo si todos sus valores propios son reales y estrictamente positivos: 2 ⎞ ⎧ λ1 = 5.82… ⎛1 − λ det ( Α − λ I ) = det ⎜ ⎟ = (1 − λ )( 5 − λ ) − 4 = 0 ⇒ ⎨λ = 0.17 … 5−λ⎠ ⎝ 2 ⎩ 2 luego la matriz A es definida positiva. b) La funcional cuadrática asociada es: J ( x, y ) = = c) ⎡1 2⎤ ⎛ x ⎞ ⎛ x⎞ y) ⎢ ⎜ ⎟ − (3 7) ⎜ ⎟ + c = ⎥ ⎣2 5⎦ ⎝ y ⎠ ⎝ y⎠ 1 T 1 x Ax - bT x + c = ( x 2 2 1 2 5 x + 2 xy + y 2 − 3 x + 7 y + c 2 2 La primera dirección de descenso es: ⎛ 3 ⎞ ⎡ 1 2 ⎤ ⎛ 2 ⎞ ⎛ −3 ⎞ 0 0 0 d( ) = r ( ) = b − Ax( ) = ⎜ ⎟ − ⎢ ⎥⎜ ⎟ = ⎜ ⎟ ⎝ 7 ⎠ ⎣ 2 5 ⎦ ⎝ 2 ⎠ ⎝ −7 ⎠ y el parámetro de descenso: 1 Programación y Métodos Numéricos ρ= ( ) ( d( ) ) A d( ) d( 0 0) T T d( 0) 0 Carlos Conde, Arturo Hidalgo y Alfredo López ETSI Minas de la Universidad Politécnica de Madrid ⎛ 3⎞ 7) ⎜ ⎟ 58 ⎝7⎠ = = = 0.1715976331 ⎛ 1 2 ⎞⎛ 3 ⎞ 338 (3 7) ⎜ ⎟⎜ ⎟ ⎝ 2 5 ⎠⎝ 7 ⎠ (3 ⎛ 2⎞ ⎛ −3 ⎞ ⎛ 1.485207101 ⎞ 1 0 0 x( ) = x( ) + ρ d( ) = ⎜ ⎟ + 0.1715976331⎜ ⎟ = ⎜ ⎟ ⎝ 2⎠ ⎝ −7 ⎠ ⎝ 0.798816568 ⎠ ⎛ −3 ⎞ ⎛ 1 2 ⎞ ⎛ −3 ⎞ ⎛ -0.082840237 ⎞ 1 0 0 r ( ) = r ( ) − ρ Ad( ) = ⎜ ⎟ − 0.1715976331⎜ ⎟⎜ ⎟ = ⎜ ⎟ ⎝ −7 ⎠ ⎝ 2 5 ⎠ ⎝ −7 ⎠ ⎝ 0.035502957 ⎠ ( ) (r( ) ) r( ) 1 α= 0 ( -0.082840237 T r( ) T ( 0) 1 r = ⎛ -0.082840237 ⎞ 0.035502957 ) ⎜ ⎟ ⎝ 0.035502957 ⎠ = 0.0001400511176 ⎛ 3⎞ (3 7) ⎜ ⎟ ⎝7⎠ ⎛ -0.082840237 ⎞ ⎛ -3 ⎞ ⎛ -0.08326039035 ⎞ 1 1 0 d( ) = r ( ) + α d( ) = ⎜ ⎟ + 0.0001400511176 ⎜ ⎟ = ⎜ ⎟ ⎝ 0.035502957 ⎠ ⎝ -7 ⎠ ⎝ 0.03452259918 ⎠ (r ) r (d( ) ) Ad( ) T (1) ρ= 1 T (1) 1 ⎛ -0.082840237 ⎞ 0.035502957 ) ⎜ ⎟ 0.035502957 ⎠ ⎝ = = ⎛ 1 2 ⎞ ⎛ -0.08326039035 ⎞ ( -0.08326039035 0.03452259918 ) ⎜ ⎟⎜ ⎟ ⎝ 2 5 ⎠ ⎝ 0.03452259918 ⎠ ( -0.082840237 = 5.827586205 ⎛ 1.485207101 ⎞ ⎛ -0.08326039035 ⎞ ⎛ 0.9999999988 ⎞ 2 1 1 x( ) = x( ) + ρ d ( ) = ⎜ ⎟ + 5.827586205 ⎜ ⎟=⎜ ⎟ ⎝ 0.798816568 ⎠ ⎝ 0.03452259918 ⎠ ⎝ 0.9999999907 ⎠ NOTA: puede comprobarse fácilmente que la solución del sistema propuesto es (1,1)T y esta debería haber sido la solución obtenida por el método de gradiente conjugado al ser éste un método exacto en n iteraciones. La diferencia se debe exclusivamente a los errores de redondeo. 2