Métodos de resolución de sistemas de ecuaciones...

28
Métodos Numéricos y Computación: (Carreras IRH – IA) 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales Trataremos en esta sección la resolución de un sistema de N ecuaciones con N incógnitas. Cada término de cada ecuación contiene una sola incógnita, la cual aparece a la primera potencia . Un sistema así se llama lineal. Hay 2 tipos de métodos: A) Métodos directos : son métodos que en un solo proceso realizan el cálculo de todas la incógnitas. El método más conocido es el método de eliminación de Gauss. B) Métodos indirectos o iterativos: son métodos que partiendo de una solución inicial aproximada; mediante iteraciones se van refinando los valores de las incógnitas hasta llegar a una convergencia dada por algún criterio y tolerancia definidos de antemano. El método base más conocido de este tipo es el de Gauss-Seidel. Método de Gauss para resolución de un sistema de ecuaciones lineales. El sistema mas conocido (que aplicamos manualmente) para resolver un sistema de ecuaciones lineales algebraicas (SEA), es el método de sustitución, el cual consiste en despejar x 1 el la ecuación 1 y lo sustituímos en las ecuacion 2. Si tenemos el SEA: a 11 x 1 + a 12 x 2 + a 13 x 3 = b 1 a 21 x 1 + a 22 x 2 + a 23 x 3 = b 2 a 31 x 1 + a 32 x 2 + a 33 x 3 = b 3 Para eliminar el término en x 1 de las filas 2 y 3 se despeja x 1 de la fila 1 y se lo reemplaza en las filas 2 y 3 x 1 = 1 ( b 1 - a 12 x 2 - a 13 x 3 ) a 11 la fila 2 queda: a 21 . 1 ( b 1 - a 12 x 2 - a 13 x 3 ) + a 22 x 2 + a 23 x 3 = b 2 a 11 la fila 3 queda: a 31 . 1 ( b 1 - a 12 x 2 - a 13 x 3 ) + a 32 x 2 + a 33 x 3 = b 3 a 11 Agrupando según las x en fila 2 : (a 21 - a21 ) . a 11)* x 1 + (a 22 - a 12 .a21 ) . x 2 + (a 23 - a21 . a 13 ) . x 3 = b 2 - a21 . b 1 a 11 a 11 a 11 a 11 ------- 0 ------- Se anula en la fila 2 el término en x 1 . Lo mismo ocurre en la fila 3 El sistema entonces toma la forma: a 11 x 1 + a 12 x 2 + a 13 x 3 = b 1 a’ 22 x 2 + a’ 23 x 3 = b’ 2 a’ 32 x 2 + a’ 33 x 3 = b’ 3 Donde con a’ i,j denotamos que los valores de los coeficientes que han cambiado:

Transcript of Métodos de resolución de sistemas de ecuaciones...

Page 1: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

1 de 28

Métodos de resolución de sistemas de ecuaciones lineales

Trataremos en esta sección la resolución de un sistema de N ecuaciones con N incógnitas. Cada término de cada ecuación contiene una sola incógnita, la cual aparece a la primera potencia . Un sistema así se llama lineal. Hay 2 tipos de métodos: A) Métodos directos : son métodos que en un solo proceso realizan el cálculo de todas la incógnitas. El método más conocido es el método de eliminación de Gauss. B) Métodos indirectos o iterativos: son métodos que partiendo de una solución inicial aproximada; mediante iteraciones se van refinando los valores de las incógnitas hasta llegar a una convergencia dada por algún criterio y tolerancia definidos de antemano. El método base más conocido de este tipo es el de Gauss-Seidel. Método de Gauss para resolución de un sistema de ecuaciones lineales.

El sistema mas conocido (que aplicamos manualmente) para resolver un sistema de ecuaciones lineales algebraicas (SEA), es el método de sustitución, el cual consiste en despejar x1 el la ecuación 1 y lo sustituímos en las ecuacion 2. Si tenemos el SEA: a11 x1 + a12 x2 + a13 x3 = b1 a21 x1 + a22 x2 + a23 x3 = b2 a31 x1 + a32 x2 + a33 x3 = b3 Para eliminar el término en x1 de las filas 2 y 3 se despeja x1 de la fila 1 y se lo reemplaza en las filas 2 y 3 x1 = 1 ( b1 - a12 x2 - a13 x3 ) a11 la fila 2 queda:

a21 . 1 ( b1 - a12 x2 - a13 x3 ) + a22 x2 + a23 x3 = b2 a11 la fila 3 queda:

a31 . 1 ( b1 - a12 x2 - a13 x3 ) + a32 x2 + a33 x3 = b3 a11

Agrupando según las x en fila 2 : (a21 - a21 ) . a11)* x1 + (a22 - a12 .a21 ) . x2 + (a23 - a21 . a13 ) . x3 = b2 - a21 . b1 a11 a11 a11 a11 ------- 0 ------- Se anula en la fila 2 el término en x1 . Lo mismo ocurre en la fila 3 El sistema entonces toma la forma: a11 x1 + a12 x2 + a13 x3 = b1 a’22 x2 + a’23 x3 = b’2 a’32 x2 + a’33 x3 = b’3 Donde con a’i,j denotamos que los valores de los coeficientes que han cambiado:

Page 2: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

2 de 28

Esta ‘explicación’ muestra que mediante un método manual como el de sustitución se ha ‘reducido’ el sistema a un sistema equivalente al original. Pero nosostros debemos ‘sistematizar’ el proceso para aplicarlo en un programa de computadora. Sistematización del proceso Para sistematizar el método a fin de programarlo en una computadora, introducimos las operaciones algebraicas permitidas en matrices. Si explicamos el proceso como operaciónes entre matrices, lo que se va a realizar es una serie de combinaciones lineales, que permite obtener una matriz equivalente a la original, la operación consiste en : Sumarle a la fila 2 la fila 1 multiplicada por un coeficiente C = - a21 a11 Sumarle a la fila 3 la fila 1 multiplicada por un coeficiente C = - a31 a11 Esta operación que se realizó con cada fila de la matriz en álgebra lineal, se conoce como combinación lineal que se puede realizar pues pues consta de 2 operaciones permitidas.

♦ multiplicar una fila o columna de la matriz por un coeficiente (C ) ♦ y a una fila de una matriz sumarle o restarle otra.

Combinación lineal sobre la fila 2 para eliminar a21 x1 Veamos el proceso para eliminar de la fila 2 el término a21 Tenemos la fila 2: a21 x1 + a22 x2 + a23 x3 = b2 Tenemos es el coeficiente C = - a21 a11 Le sumamos a la fila 2 la fila 1 multiplicada por C - a21 . (a11 x1 + a12 x2 + a13 x3 = b1) a11 Restamos agrupando , según x1 , x2 y x3: volvemos a tener la misma expresión que en la sustitución manual. (a21 - a21 ) . a11)* x1 + (a22 - a12 .a21 ) . x2 + (a23 - a21 . a13 ) . x3 = b2 - a21 . b1 a11 a11 a11 a11 ------- 0 ------- De manera similar se elimina el término a31 x1 en la fila 3.

Combinación lineal para la eliminación del término en x2 en la fila 3

Tenemos la matriz A a11 x1 + a12 x2 + a13 x3 = b1 a’22 x2 + a’23 x3 = b’2 a’32 x2 + a’33 x3 = b’3

Page 3: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

3 de 28

Tomamos la fila 3: a’32 x2 + a’33 x3 = b’3 Definimos el coeficiente C = - a’32 a’22 Le sumamos a la fila 3 la fila 2 multiplicada por C - a’32 . (a’22 x2 + a’23 x3 = b’2) a’22 Restamos agrupando , según x2 y x3 la fila 3 queda: (a’32 - a’32 ) . a’22)* x2 + (a’33 - a’32 . a’23 ) . x3 = b3 – a’32 . b2 a’22 a’22 a’22 ------- 0 -------- Se obtiene una matriz triangular inferior puesta a 0 : a11 x1 + a12 x2 + a13 x3 = b1 a’22 x2 + a’23 x3 = b2 a’’33 x3 = b3

Es decir que el coeficiente a’’33 cambió nuevamente su valor por eso se indica con ’’

Al tener este sistema la solución es automática pues se despeja x3 de la fila 3 y luego

teniendo el valor de x3 se los sustituye en la ecuación 2 y se despeja x2 y luego con x2 y

x3 en la ecuación 1 se despeja x1 .Este proceso se conoce como Sustitución Inversa.

Sustitución Inversa Ahora se debe sistematizar el proceso, se puede despejar directamente el valor de x3 como x3 = b3 a33

Y conocido en valor de x3 se reemplaza en la fila 2 y se despeja x2 , así sucesivamente

hasta llegar a la fila 1.

x2 = b2 - a23 x3

a22

x1 = b1 - a12 x2 - a13 x3 a11

Generalizando tenemos que cada inógnita se despeja mediante la fórmula:

xk = bi - ΣΣΣΣ aik xk con k que va de i +1 hasta n aii

Page 4: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

4 de 28

Resumen de la sitematización del proceso

El proceso se puede indicar sintéticamente con:

Resumen de la eliminación hacia adelante

a' ij = ai,j - ak,j . aik donde i = k+1, k + 2

akk j = k+1, k +2 ....

Cada fila es fi = fi + C. fk

donde C = - aik donde k es la fila pivote y las i son las k + 1 restantes

akk

Así cada valor de aij se tranforma en otro valor producto de estas operaciones. En la explicación se indicó con apóstrofes los cambios que iban sufriendo los coeficientes aij pero en el programa esto no es necesario pues los valores ocupan los mismo lugares de memoria y cambian su valor a medida que se van realizando las operaciones.

Al tener la matriz en el triángulo inferior puesta a 0 se hace la sustitución inversa. Con este nuevo algoritmo:

Resumen del proceso de sustitución inversa para el Método de Gauss bn xnn = ann n bi - ΣΣΣΣ aik xk xi = k=i+1

aii

La condición para aplicar el método es que no halla coeficientes nulos en la diagonal

principal es decir que los coeficientes aii debe ser distintos de cero.

Si alguno de los valores de los aii es nulo se reacomodan las filas para que esto no

ocurra. También en sistemas muy grandes se recomienda reacomodar las filas para que

los elemento de mayor valor absoluto queden ubicados en la diagonal principal, pues al

usarlos como divisores cuando mayor sean sus valores se minimizan los errores de

redondeo.

Errores: En la aplicación del método se van cometiendo errores de redondeo al evaluar los nuevos coeficientes, es decir que al resolver el sistema se tienen valores de las xi aproximados. Si reemplazamos los valores de las xi halladas en el sistema se obtiene valores de Bi tambien aproximados a los valores de los bi originales es decir que hay un error ßi pues cada raíz tiene un valor aproximado xi = xi ± ei Es decir que el sistema de soluciones es: ΣΣΣΣaij (xi ± ei ) = bi ± ßi Si resolvemos el sistema: ΣΣΣΣaij ei = ßi Encontramos los valores de que hay que sumar para ajustar mejor la solución.

Observar que en este sistema solamente hay que recalcular los valores de los ßi pues los la

matriz de coeficientes aij ya fue reformada a la matriz triangular superior.

Page 5: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

5 de 28

c PROGRAMA EJEMPLO METODO DE ELIMINACION DE GAUSS DIMENSION A(3,3),B(3),X(3) REAL*4 A,X,B N=3 C DEFINICION DEL SISTEMA DATA A / 2., 1. ,2. , 6. , 2., 9., 4., 4.,5. / , B / 2.,2.,6. / PRINT *,'Soluci¢n de Sist. de Ec. M‚todo de eliminaci¢n de Gauss' PRINT *,'=======================================================' PRINT *,' SISTEMA ORIGINAL' DO I = 1 , N PRINT 10,I,(A(I,J),J=1,N),B(I) ENDDO 10 FORMAT (I4,' - ',3F6.2,' = ',F8.2) DO L = 2 , N K = L-1 DO I = L , N BM = A(I,K) / A(K,K) DO J = K+1 , N A(I,J) = A(I,J) - BM * A(K,J) ENDDO B(I) = B(I) - BM * B(K) ENDDO ENDDO PRINT *, ' ' PRINT *,' Matriz equivalente luego de la eliminaci¢n' DO I = 1 , N PRINT 10,I,(A(I,J),J=1,N),B(I) ENDDO C SUSTITUCION INVERSA X(N) = B(N) / A(N,N) DO I = N - 1 , 1 , -1 S = B(I) DO J = I+1 , N S = S - A(I,J) * X(J) ENDDO X(I) = S / A(I,I) ENDDO PRINT *, ' ' PRINT *,' SOLUCION ' DO I = 1 , N PRINT 20,I,X(I) 20 FORMAT (" X",I1," = ",F10.5) ENDDO END Solución de Sist. de Ec. Método de eliminación de Gauss =============================================== SISTEMA ORIGINAL 1 - 2.00 6.00 4.00 = 2.00 2 - 1.00 2.00 4.00 = 2.00 3 - 2.00 9.00 5.00 = 6.00 Matriz equivalente luego de la eliminación 1 - 2.00 6.00 4.00 = 2.00 2 - 1.00 -1.00 2.00 = 1.00 3 - 2.00 3.00 7.00 = 7.00 SOLUCION X1 = -4.00000 X2 = 1.00000 X3 = 1.00000

Page 6: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

6 de 28

Método de Gauss-Jordan.

Si se aplican las operaciones de eliminación de los coeficientes de la fila k no solo hacia

las filas inferiores, sino también en las superiores y entonces se eliminan todos los

coeficientes que no forman parte de la diagonal principal y el sistema se reduce a la

forma: a11 x1 = b1 a22 x2 = b2 a33 x3 = b3 Y así se pueden despejar directamente los valores de las x.

Se parte del sistema triangular superior:

a11 x1 + a12 x2 + a13 x3 = b1 0 + a22 x2 + a23 x3 = b2 0 + 0 + a33 x3 = b3

Se puede sistematizar esta eliminación hacia atrás o ‘inversa’. 1 a11 a12 a13 b1

2 0 a22 a23 b2 3 0 0 a33 b3

Eliminación de los elementos a23 y a13.

Nos ubicamos en la última fila (la 3 en este caso)

1) Pivote

Se toma la fila 3 se la divide por a33 (pivote) al dividir b3 se está calculando x3

luego se divide a33 / a33 para dar un nuevo a33=1.

2) Eliminación de a23

A la fila 2 se le resta la 3 multiplicada por a23 como el único no nulo de la fila 3 es

a33 , el cual vale 1 se afecta solo al elemento a23 que queda en 0 (a23 - a23* 1).

Se hace la misma operación sobre el nuevo b’2 = b2 – a23* b3 .

3) Eliminación de a13 a la fila 1 se le resta la 3 multiplicada por a13 como el único no nulo de la fila 3 es a33 , que vale 1 se afecta solamente al elemento a13 el

cual queda en 0 (a13 – a13* 1).

Se hace la misma operación sobre el nuevo b’1 = b1 – a13* b3 .

La nueva forma de nuestro sistema es ahora:

1 a11 a12 0 b’1

2 0 a22 0 b’2 3 0 0 1 x3

Se ‘sube’ a la fila 2 y se usa esta como fila final o pivote.

Page 7: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

7 de 28

Se repite el proceso para eliminar a12

1) Pivote:

Se toma la fila 2 se la divide por a22 (pivote) al dividir b’2 se está calculando x2

luego se divide a22 / a22 para dar un nuevo a22=1.

2) Eliminación de a12

A la fila 1 se le resta la 2 multiplicada por a12 como el único no nulo de la fila 2 es

a22 , el cual vale 1 se afecta solo al elemento a12 que queda en 0 (a12 – a12* 1).

Se hace la misma operación sobre el nuevo b’’1 = b’1 – a12* b’2 .

Aquí tenemos solo dos pasos pues se llegó a la primera fila.

Final:

Se realizan las mismas operaciones en la fila 1 para el pivote, solo para calcular x1.

1) Pivote:

Se toma la fila 1 se la divide por a11 (pivote) al dividir b’’1 se está calculando x1

luego se divide a11 / a11 para dar un nuevo a11=1.

Se obtiene finalmente la solución del sistema de la forma: 1 1 0 0 x1

2 0 1 0 x2 3 0 0 1 x3

Page 8: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

8 de 28

C PROGRAMA EJEMPLO METODO DE ELIMINACION DE GAUSS-JORDAN DIMENSION A(3,3),B(3) REAL*4 A,B N=3 C DEFINICION DEL SISTEMA DATA A / 2. , -1. , 3. , 1., 3., 1., -3., 2.,-3. / DATA B / -1.,12.,0. / PRINT *,'Solución de Sist. de Ec. Lin. Método de Gauss-Jordan' PRINT *,'======================================================' PRINT *,' SISTEMA ORIGINAL' DO I= 1,N PRINT 10,I, (A(I,J),J=1,N) ,B(I) ENDDO 10 FORMAT (I3,10F6.2) C ELIMINACION HACIA ADELANTE DO L = 2 , N K = L-1 DO I = L , N BM = A(I,K) / A(K,K) DO J = K+1 , N J=2 a 3 A(I,J) = A(I,J) - BM * A(K,J) ENDDO B(I) = B(I) - BM * B(K) ENDDO ENDDO PRINT *, ' ' PRINT *,' Matriz equivalente luego de eliminación hacia adelante' DO I= 1,N PRINT 10,I, (A(I,J),J=1,N) ,B(I) ENDDO C ELIMINACION HACIA ATRAS DO K = N , 1 , -1 B(K) = B(K)/A(K,K) (primero se divide B(K)/A(K,K)) A(K,K) = A(K,K) / A(K,K) (porque luego A(K,K) pasa a valer 1) DO J = K-1, 1 , -1 B(J)= B(J)- A(J,K) * B(K) A(J,K) = A(J,K)- A(J,K)*A(K,K) ENDDO ENDDO PRINT *,' Matriz equivalente luego de eliminación hacia atrás DO I= 1,N PRINT 10,I, (A(I,J),J=1,N) ,B(I) ENDDO PRINT *,' SOLUCION ' DO I = 1 , N PRINT '(" X:",I2,F10.2)',I,B(I) ENDDO END

Page 9: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

9 de 28

Solución de Sist. de Ec. Lin. Método de Gauss-Jordan ============================================ SISTEMA ORIGINAL 1 2.00 1.00 -3.00 = -1.00 2 -1.00 3.00 2.00 = 12.00 3 3.00 1.00 -3.00 = 0.00 Matriz equivalente luego de la eliminación hacia adelante 1 2.00 1.00 -3.00 = -1.00 2 0.00 3.50 0.50 =11.50 3 0.00 0.00 1.57 = 3.14 Matriz Identidad y solución luego de la eliminación hacia atrás 1 1.00 0.00 0.00 = 1.00 2 0.00 1.00 0.00 = 3.00 3 0.00 0.00 1.00 = 2.00

SOLUCION X(1) = 1.00 X(2) = 3.00 X(3) = 2.00

Page 10: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

10 de 28

Cálculo de la Inversa

Otra aplicación del método de Gauss sirve para calcular la inversa de la matriz.

Sabemos que si aplicamos los procesos a una matriz ‘ampliada’ con la matriz identidad

a la derecha , se genera una matriz identidad a la izquierda y como resultado la matriz

identidad agregada luego del proceso es la inversa de la matriz original.

c PROGRAMA ANINVERSA ( ELIMINACION DE GAUSS PARA CALCULAR LA INVERSA) DIMENSION A(3,3),B(3,3) CHARACTER*70 Leyenda REAL*4 A,B N=3 c DEFINICION DEL SISTEMA c 1 2 3 c 1 1 0 c 1 0 2 DATA A / 1., 1., 1., 2. , 1., 0., 3., 0. , 2. / DATA B / 1., 0., 0., 0. , 1., 0., 0., 0. , 1. / PRINT *,'Inversión de una matriz utilizando eliminaci¢n de Gauss' PRINT *,'==============================================' Leyenda=' SISTEMA ORIGINAL A + B (B:Matriz Identidad)' CALL IMPRIME(A,B,N,Leyenda) c ELIMINACION HACIA ADELANTE DO L = 2 , N K = L-1 DO I = L , N BM = A(I,K) / A(K,K) DO J = 1 , N A(I,J) = A(I,J) - BM * A(K,J) B(I,J) = B(I,J) - BM * B(K,J) ENDDO ENDDO ENDDO Leyenda='Matrices luego de eliminación hacia adelante' CALL IMPRIME(A,B,N,Leyenda) c CALCULO DEL DETERMINANTE DET=1. DO I= 1 ,N DET=DET*A(I,I) ENDDO PRINT * PRINT *,"DETERMINANTE",DET PRINT * IF (DET .EQ.0) THEN PRINT *,' EL DETERMINANTE ES NULO ' STOP ENDIF c ELIMINACION HACIA ATRAS DO K = N , 1 , -1 PIV=A(K,K) DO J= 1,N B(K,J) = B(K,J)/PIV A(K,J) = A(K,J)/PIV ENDDO DO I = K-1, 1 , -1 C = A(I,K) DO J=1,N B(I,J) = B(I,J)- C * B(K,J) A(I,J) = A(I,J)- C * A(K,J) ENDDO ENDDO ENDDO

Page 11: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

11 de 28

(Continuación del programa ANINVERSA) Leyenda=' Matriz Identidad y Matriz Inversa ' CALL IMPRIME(A,B,N,Leyenda) STOP END SUBROUTINE IMPRIME(A,B,N,Leyenda) DIMENSION A(3,3),B(3,3) CHARACTER*70 Leyenda PRINT *,' ' PRINT 20, Leyenda DO I= 1,N PRINT 10,I, (A(I,J),J=1,N) ,(B(I,J),J=1,N) ENDDO 10 FORMAT (I3,6F10.4) 20 FORMAT (A) RETURN END

RESULTADO

Inversión de una matriz utilizando eliminación de Gauss ============================================== SISTEMA ORIGINAL A + B (B:Matriz Identidad) 1 1.0000 2.0000 3.0000 1.0000 0.0000 0.0000 2 1.0000 1.0000 0.0000 0.0000 1.0000 0.0000 3 1.0000 0.0000 2.0000 0.0000 0.0000 1.0000 Matrices luego de eliminación hacia adelante 1 1.0000 2.0000 3.0000 1.0000 0.0000 0.0000 2 0.0000 -1.0000 -3.0000 -1.0000 1.0000 0.0000 3 0.0000 0.0000 5.0000 1.0000 -2.0000 1.0000 DETERMINANTE -5. Matriz Identidad y Matriz Inversa 1 1.0000 0.0000 0.0000 -0.4000 0.8000 0.6000 2 0.0000 1.0000 0.0000 0.4000 0.2000 -0.6000

3 0.0000 0.0000 1.0000 0.2000 -0.4000 0.2000

COMPROBACION CON MATLAB/Octave

(Multiplicamos la matriz A original por la B resultado)

» A=[ 1 2 3 ; 1 1 0 ; 1 0 2] » B=[-0.4 0.8 0.6 ; 0.4 0.2 -0.6 ; 0.2 -0.4 0.2 ] » C=A*B C = 1.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 1.0000

Page 12: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

12 de 28

Métodos iterativos de solución

Método de Gauss-Seidel

Consideremos tres ecuaciones con tres incógnitas. Si aii ≠ 0 i = 1,2,3

podemos (despejando cada incógnita) reescribirlas en la forma:

1) x1 = 1 (b1 - a12 x2 - a13 x3)

a11

2) x2 = 1 (b2 - a21 x1 - a23 x3)

a22

3) x 3= 1 (b3 - a31 x1 - a32 x2)

a33

Tomemos una aproximación a la solución a la que llamamos x1(0), x2 (0),

Recordemos que la aproximación se puede estimar de acuerdo al conocimiento del

problema que estamos tratando de resolver; no tiene sentido fijar cualquier valor inicial,

sino valores coherentes con el sentido físico o matemático del problema.

x3(0). Despejamos de (1) la nueva aproximación ax1:

x1 (1) = 1 (b1 - a12 x2(0) - a13 x3(0))

a11

usando x1 (1) y x3 (0) despejamos x2 de 2)

x2 (1) = 1 (b2 - a21 x1(1) - a23 x3(0))

a22 usando x1 (1) y x2 (1) calculamos

x3 (1) = 1 (b3 - a31 x1(1) - a32 x2(1))

a33 Esto constituye una iteración completa. Podemos repetir el ciclo nuevamente. La k-

ésima aproximación está dada por :

x1 (k) = 1 (b1 - a12 x2(k-1) - a13 x3(k-1))

a11

x2 (k) = 1 (b2 - a21 x1(k) - a23 x3(k-1))

a22

x3 (k) = 1 (b3 - a31 x1(k) - a32 x2(k))

a33

Notar que siempre calculamos los valores de x calculados más recientemente y

que no podemos calcular x2 (k) hasta no haber calculado x1 (k).

Page 13: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

13 de 28

Resumen del Método de Gauss-Seidel

Se despeja cada incógnitas de su fila homónima

n

x1 = 1 bi - ∑ aij xj aii i≠j i=1

Se le dan valores iniciales

i-1 n+1 n (n)

x1n+1 = 1 bi - ∑ aij xj - ∑ aij xj aii j=1 j=i+1

Veamos bajo que condiciones podemos asegurar la convergencia del método.

Establecemos el criterio para n = 2 y luego generalizaremos.

a11 x + a12 y = b1 a21 x + a22 y = b2

∴ x (k) = 1 [b1 - a12 y (k-1)]

a11

y (k) = 1 [b2 - a21 x (k)]

a22

Definimos como diferencia entre dos iteraciones a:

∆x (k) = x - x (k) (*)

∆y (k) = y - y (k)

de (**) ∆x=x-x(k) x = 1 (b1 - a12.y) y x(k) = 1 (b1 - a12 y(k-1)) a11 a11

por lo tanto ∆xk = - 1 . a12 . y - a12 . y(k-1) a11

∆x (k) = a12 ∆y (k-1) a11

∆y (k) = a21 ∆x (k) a22

∆y (k-1) = a21 ∆x (k-1) a22

Combinando estas dos últimas ecuaciones

Page 14: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

14 de 28

∆x (k) = a12 a21 ∆x (k-1) a11 a22

Similarmente

∆x (k-1) = a12 a21 ∆x (k-2) a11 a22

2

∆x (k) = a12 a21 ∆x (k-2) a11 a22

k

∆x (k) = a12 a21 ∆x (0) del mismo modo

a11 a22

k

∆y (k) = a12 a21 ∆y (0) a11 a22

Entonces el proceso converge si

a12 a21 < 1 a11 a22

Esto se satisface si

a11 > a12 (i) a22 ≥ a21

a11 ≥ a12 o si (ii) a22 ≥ a21

Esto quiere decir que los términos de la diagonal a11 y a22 deben ser

"dominantes", es decir, que deben ser al menos tan grandes como los términos que no

pertenecen a la diagonal principal y al menos en un caso, deben ser estrictamente mayor.

Notar que (i) (ii) son condiciones suficientes para la convergencia, pero no

necesarias.

(i) indica que la 1ra. ecuación representa una recta de pendiente mayor que

(ii) indica que la 2da. ecuación representa una recta de pendiente menor que 1.

Vamos a generalizar las condiciones suficientes para la convergencia de este

método para un sistema de n ecuaciones.

Si las ecuaciones son irreducibles (o sea que no pueden ser reacomodadas de tal

manera que algunas de las variables se puedan resolver mediante un número menor de

ecuaciones) y si

Page 15: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

15 de 28

aii ≥ ai1 + ...... ai, i-1 + ai, i+1 + ..... + ain ∀ i y

por lo menos para uno se verifica la desigualdad estricta, entonces el método de Guass-

Seidel converge.

Cabe señalar que la condición suficiente para la convergencia del método puede

dejar de verificarse si se altera el orden de las ecuaciones.

Mejoramiento de la convergencia usando relajación.

Si después de cada nuevo valor calculado de x (Xn) se le aplica un coeficiente λ (es decir se lo aumenta o disminuye el valor del Xn calculado) se puede lograr un

significativo avance en la velocidad de convergencia (menos iteraciones) en el método

de Gauss Seidel.

Esta técnica que se denomina relajación generalmente modifica el valor de X calculado

mediante el promedio pesado de las iteraciones anteriores y actuales.

El valor del coeficiente de ralajación se encuentra generalmente entre 1 y 2.

Así el nuevo valor de Xn queda calculado en función de Xn , Xv y

λ : Coeficiente de relajación

Xn = λ * Xn + (1 - λ) * Xv Xn X de la iteración actual Xv X de la iteración anterior.

Si λ es igual a 1 (1 - λ) es cero y no se modifica Xn.

Si nuestro problema exige la solución en numerosas ocasiones de un gran sistema de

ecuaciones lineales simultáneas (como se da en la modelación con diferencias finitas),

tratar de fijar un coeficiente de relajación sería altamente positivo para reducir los

tiempos de cálculo.

Si el sistema es pequeño o se debe resolver una sola vez, el método no se justificaría.

Page 16: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

16 de 28

c PROGRAMA EJEMPLO METODO DE GAUSS SEIDEL c ' 3 X(1) + 1 X(2) - 2 X(3) = -2.00 c ' 1 X(1) - 5 X(2) + 3 X(3) = 0.50 c ' 2 X(1) - 1 X(2) + 2 X(3) = 4.50 DIMENSION A(3,3),B(3),X(3) REAL*4 A,X,B N=3 C DEFINICION DEL SISTEMA DATA A / 3.,1.,2. , 1., -5.,-1., -2.,3.,2. / DATA B / -2.,0.5,4.5 / PRINT *,'Ej. Solución de Sist. de Ec. Gauss-Seidel' PRINT *,'================================' PRINT *,' SISTEMA ORIGINAL' PRINT '(I4,4F6.1,)',( I, (A(I,J),J=1,N) ,B(I) , I=1,N) DO I=1 , N PRINT * ,'VALOR INICIAL DE X',I READ *,X(I) ENDDO PRINT *,'INGRESE EL ERROR MAXIMO' READ *,TOLER PRINT *,'INGRESE NRO. ITERACIONES : ' READ *,NITER PRINT *,'INGRESE EL COEF. DE RELAJACION' READ *,RELA C COMIENZO DE ITERACIONES MODO=1 ITER=0 DO WHILE (MODO .EQ. 1) ERROR=0 ITER=ITER+1 DO I=1 , N SUMA=0 DO J=1 , N IF (J.NE.I) THEN SUMA=SUMA+A(I,J)*X(J) ENDIF END DO XNN=(B(I)-SUMA)/A(I,I) XN=XNN*RELA+X(I)*(1.0-RELA) XERROR=ABS(XN-X(I)) X(I)=XN IF (XERROR .GT. ERROR) THEN ERROR =XERROR ENDIF END DO IF (ERROR .LT. TOLER) THEN MODO=2 ENDIF IF (ITER .GT. NITER) THEN MODO=3 ENDIF END DO IF (MODO .EQ.2) THEN PRINT *,'**** SOLUCION EN : ',ITER,' ITERACIONES ****' PRINT '(I4,F6.1)',(I,X(I),I=1,N) ELSE PRINT *,'****************************************' PRINT *,'******* EL SISTEMA NO CONVERGE *********' PRINT *,'****************************************' PRINT '(I4,F6.1)',(I,X(I),I=1,N) ENDIF STOP END

Page 17: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

17 de 28

Luego se ejecuta el programa variando el coeficiente de relajación con valores: 1 ,0.5 ,0.7 y 0.9. RESULTADOS Ej. Solución de Sist. de Ec. Gauss-Seidel ========================================= SISTEMA ORIGINAL 1 3.0 1.0 -2.0 -2.0 2 1.0 -5.0 3.0 0.5 3 2.0 -1.0 2.0 4.5 VALOR INICIAL DE X 1 1 VALOR INICIAL DE X 2 1 VALOR INICIAL DE X 3 1 INGRESE EL ERROR MAXIMO 0.01 INGRESE NRO. ITERACIONES : 50 INGRESE EL COEF. DE RELAJACION 1 **** SOLUCION EN : 15 ITERACIONES **** 1 0.5 2 1.5 3 2.5 Y variando el coeficiente de relajación se obtienen los siguientes resultados Coeficiente 0.50 : 11 iteraciones Coeficiente 0.70 : 7 iteraciones Coeficiente 0.95 : 10 iteracioens De lo que se deduce una reducción de las iteraciones con el Coeficiente=0.7

Page 18: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

18 de 28

Ajuste de curvas por mínimos cuadrados

0.00

0.00 0.50 1.00 1.50 2.00 2.50 3.00 3.50 4.00

X

Y

Datos experimentales

Si tenemos XD y Yt = f(XD) ∑ YD - Yt ⇒ mínimo

o ∑ YD - Yt ⇒ mínimo

XD y YD son los datos e Yt es el Y teórico calculado por la función de ajuste.

El problema es que la función valor absoluto no es derivable.

Entonces adoptamos el criterio:

∑ (YD - Yt)2 ⇒ mínimo Si la función es cuadrática (parábola)

∑ (YD - a x2 - bx -c)2 ⇒ mínimo

a b y c son quienes lo hacen mínimo, así que tenemos un funcional

ϕ(a,b,c) = ∑ (YD - a x2 - bx -c)2 que la hará mínima en función de a b y c o sea que debemos derivar en función de a b y c e igualar a 0.

δϕ = -2 . ∑ (Y - a x2 - bx -c) . x2 = 0 δa

δϕ = -2 . ∑ (Y - a x2 - bx -c) . x = 0 δb

δϕ = -2 . ∑ (Y - a x2 - bx -c) . 1 = 0

δc

reacomodamos y eliminamos la constante -2

Page 19: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

19 de 28

a ∑ x4 + b ∑ x3+ c ∑ x2 = ∑ y . x2 resolviendo este sistema obtendremos

a ∑ x3 + b ∑ x2+ c ∑ x = ∑ y . x los valores que hacen mínimo el funcional

a ∑ x2 + b ∑ x+ n c = ∑ y y obtenemos los valores de a b y c.

Genéricamente para un ajuste de grado m tenemos :

a n+1 ∑ x2n + a n ∑ x2n-1 + a1 ∑ xn = Ζ y . xn

a n+1 ∑ xn+1 + a n ∑ xn = ∑ y . x

a n+1 ∑ xn + a n ∑ xn-1 + a1. n = ∑ y

Observar que en sistemas las incógnitas son las ai y los coeficientes salen de hacer las

m m

sumatorias ∑ x 4i o ∑ yi. x2i i=1 i=1

Además los coeficientes se repiten en diagonales inversas.

Si el sistema se resuelve con Gauss, no hay peligro de error en diagonal principal.

Se debe lograr siempre al derivar que el sistema resulte un sistema de ecuaciones

lineales pues sino es muy difícil resolver los sistemas no lineales.

Page 20: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

20 de 28

Otras expresiones de ajuste:

Ejemplo: Si queremos ajustar con una función exponencial:

Conviene aplicar logaritmo para “linealizar” el sistema

1) Ajuste con una función exponencial

y = a . bx → ln y = ln a + x ln b EXPONENCIAL

→ Y = A + x B = B . x + A

a = antilog A B ∑ x2 + A ∑ x = ∑ ln y . x ⇐ b = antilog B B ∑ x + A n = ∑ ln y

2) Ajuste con una función potencial, aplicamos el mismo método :

y = a . x b → ln y = ln a + b ln x POTENCIAL

→ y = A + b . X = b . x + A

a = antilog A B ∑ (ln x)2 + A ∑ (ln x) = ∑ ln y .ln x

B ∑ ln x + A n = ∑ ln y

3) Función exponencial en base e

y = a . e b . x

→ ln y = ln a + b . x ln(e) como ln(e)=1

→ Y = A + b . x

4) Función inversa

y = a . x → 1 = b + 1 .

b + x y a x a

→ Y = 1 X = 1 C = b A = 1

y x a a

Y = C . X + A es decir que se hacen las sumatorias de las inversas.

Recordemos que graficando los datos con una planilla de cálculo con la opción agregar

línea de tendencia nos podemos orientar a la elección de la función de ajuste mas

adecuada.

Page 21: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

21 de 28

Regresión lineal múltiple

Es el caso donde y es función lineal de 2 variables x1 y x2

y = a0 + a1 *. x1 + a2 . x2 es decir que tenemos un plano de ajuste en el espacio. de

los datos experimentales

Las sumatorias para minimizar errores dan:

S = ∑ (yi - a0 - a1 . x1i - a2 . x2i )

dS = - 2 . ∑ ( yi - a0 - a1 . x1i - a2 . x2i ) da0

dS = - 2 . x1i . ∑ ( yi - a0 - a1 . x1i - a2 . x2i ) da1

dS = - 2 . x2i . ∑ ( yi - a0 - a1 . x1i - a2 . x2i ) da2

El sistema a resolver queda entonces como:

n . a0 + ∑ a1 . x1i + ∑ a2 . x2i = ∑ yi

∑. a0 . x1i + ∑ a1 . x1i2 + ∑ a2 . x2i . x1i = ∑ yi . x1i

∑. a0 . x2i + ∑ a1 . x1i . x2i + ∑ a2 . x2i2

= ∑ yi . x2i

y las sumatorias a realizar del set de datos serán:

∑ yi ∑ x2x1i ∑ x2i ∑ x1i .x2i ∑ x1i2 ∑ x2i

2 ∑ yi ∑ yi. x1i ∑ yi .x2i

Page 22: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

22 de 28

Ajuste de curvas con combinación lineal de funciones

Usando funciones simples podemos ajustar con una función Q(x) tal que

Q(x) = a f1(x) + b f2(x) + c f3(x) +....

funcional suponiendo una combinación lineal de 3 funciones será::

ϕ(a,b,c) = ∑ (YD – a . f1(x) – b . f2(x) – c . f3(x) )2 que la hará mínima en función se obtiene de derivar en función de a b y c e igualar a 0.

δϕ = - 2 ∑ (Y - a . f1(x) – b . f2(x) – c . f3(x)) . f1(x) = 0 δa

δϕ = - 2 ∑ (Y - a . f1(x) – b . f2(x) – c . f3(x)) . f2(x) = 0 δb

δϕ = - 2 ∑ (Y - a . f1(x) – b . f2(x) – c . f3(x)) . f3(x) = 0 δc

Ejemplo: supongamos una combinación lineal tal que:

Q(x) = a . 1 + b . x + c . ex

Entonces : f1(x) = 1 (cte) f2(x) = x f3(x) = ex

δϕ = - 2 ∑ (Y - a . 1 – b . x – c . ex ) . 1 = 0 δa

δϕ = - 2 ∑ (Y - a . 1 – b . x – c . ex ) . x = 0 δb

δϕ = - 2 ∑ (Y - a . 1 – b . x – c . ex ) . ex = 0 δc

Y el sistema de ecuaciones es:

a . ∑ 1 .1 – b . ∑ x .1 – c . ∑ ex .1 = ∑ Y

a . ∑ 1.x – b . ∑ x .x – c . ∑ ex . x = ∑ Y . x

a . ∑ 1 . ex – b . ∑ x. ex – c . ∑ ex . ex = ∑ Y . ex

Page 23: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

23 de 28

PROGRAMA ANMINCOM.FOR c PROGRAMA EJEMPLO DE AJUSTE CON COMBINACION LINEAL DE FUNCIONES c SE AJUSTA CON LA FUNCION Y = a1 + a2 * X + a3 * exp(X) C Funcion 1: 1 Funcion 2: X Funcion 3: exp(X) DIMENSION XD(7),YD(7),A(3,3),B(3),X(3) C DATOS DE LA MUESTRA XD, YD DATA XD / 0, 1 , 2 , 3, 4 ,5, 6 / DATA YD / 1.0,2.,3.30,4.50,6.,9.10,14.50/ C ND:CANT.DE DATOS NF:NUMERO DE FUNCIONES (3) ND=7 NF=3 N=3 C VALOR INICIAL DE LAS SUMATORIAS DO I=1,NF DO J=1,NF A(I,J)= 0.0 ENDDO B(I)= 0.0 ENDDO C ARMADO DE LAS SUMATORIAS DO I= 1,NF DO J=1,NF DO K=1,ND A(I,J)= A(I,J)+FUNCIO(I,XD(K))*FUNCIO(J,XD(K)) ENDDO ENDDO DO K=1,ND B(I)= B(I)+YD(K)*FUNCIO(I,XD(K)) ENDDO ENDDO N=NF PRINT *,' Sist. de ecuaciones generado' PRINT *,'==========================================' PRINT '(I3,4F10.2)',( I, (A(I,J),J=1,N) ,B(I) , I=1,N) C SOLUCION DEL SISTEMA POR EL METODO DE ELIMINACION DE GAUSS DO L = 2 , N K = L-1 DO I = L , N BM = A(I,K) / A(K,K) DO J = 1 , N A(I,J) = A(I,J) - BM * A(K,J) ENDDO B(I) = B(I) - BM * B(K) ENDDO ENDDO PRINT *, ' ' PRINT *,'Matriz equivalente luego de la eliminación' PRINT *,'==========================================' PRINT '(I3,4F10.2)',( I, (A(I,J),J=1,N) ,B(I) , I=1,N) C SUSTITUCION INVERSA X(N) = B(N) / A(N,N) DO I = N - 1 , 1 , -1 S = B(I) DO J = I+1 , N S = S - A(I,J) * X(J) ENDDO X(I) = S / A(I,I) ENDDO PRINT *, ' ' PRINT *,' SOLUCION ' DO I = 1 , N PRINT 10, I,X(I) 10 FORMAT ( 15X,'a',I1,' = ',F7.3) ENDDO STOP END

Page 24: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

24 de 28

PROGRAMA ANMINCOM.FOR (Continuación) FUNCTION FUNCIO(NUFUN,XDATO) IF (NUFUN .EQ. 1) FUNCIO=1 IF (NUFUN .EQ. 2) FUNCIO=XDATO IF (NUFUN .EQ. 3) FUNCIO=EXP(XDATO) RETURN END ----------------------------------------------------------------------

Resultados obtenidos Sist. de ecuaciones generado ========================================== 1 7.00 21.00 637.63 40.40 2 21.00 91.00 3458.78 178.60 3 637.63 3458.78 188228.64 7649.07 Matriz equivalente luego de la eliminación ========================================== 1 7.00 21.00 637.63 40.40 2 0.00 28.00 1545.89 57.40 3 0.00 0.00 44797.77 799.95 SOLUCION a1 = 0.952 a2 = 1.064 a3 = 0.018 Se realiza una planilla de cálculo y se tabula y grafica la combinación de funciones con los coeficientes del ajuste obtenido:

Ajuste con combinacion lineal de funciones

0.00

2.00

4.00

6.00

8.00

10.00

12.00

14.00

16.00

0.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00

y Dato

y Ajuste

Page 25: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

25 de 28

Ajuste con una regresión lineal múltiple Fórmula del ajuste : y = a0 + a1 . x1 + a2 . x2 El sistema de ecuaciones que se genera con este ajuste es:

a0 + a1 . x1i + a2 . x2i = yi

a0 . x1i + a1 . x1i^2 + a2 . x2i . x1i = yi . x1i

a0 . x2i + a1 . x1i . x2i + a2 . x2i^2 = yi . x2i

El archivo reg_lin_mul.txt contiene estos datos: 1ra.col es x1 la 2da. X2 y la

3ra. y

1.00 0.00 1.55

1.50 3.90 -0.30

2.00 4.60 -0.50

2.50 7.00 -1.50

3.00 8.90 -2.35

3.50 10.00 -2.80

Script en Matlab A=load('reg_lin_mul.txt') x1=A(:,1:1) x2=A(:,2:2) y=A(:,3:3) n=length(y) S(1,1)=n ; S(1,2)=sum(x1) ; S(1,3)=sum(x2) ; S(2,1)=sum(x1) ; S(2,2)=sum(x1.*x1) ; S(2,3)=sum(x2.*x1) ; S(3,1)=sum(x2) ; S(3,2)=sum(x1.*x2) ; S(3,3)=sum(x2.*x2) ; b(1)=sum(y) ; b(2)=sum(y.*x1) ; b(3)=sum(y.*x2) ; S b' a=S\b' ------------------------------------------------------------------------------

Ajuste con una combinación lineal de funciones Fórmula del ajuste : y = a . 1 + b . X + c . exp(X) El sistema de ecuaciones que se genera con este ajuste es: a . * 1 .1 - b . * x .1 - c . * ex .1 = * Y

a . * 1. x - b . * x .x - c . * ex . x = * Y . x

a . * 1 . ex - b . * x. ex - c . * ex . ex = * Y . ex

Script en Matlab format long x= [0 , 1 , 2 , 3 , 4 ,5 , 6 ] y= [1.0 ,2. ,3.30,4.50,6. , 9.10, 14.50] n=length(x) S(1,1)=n ; S(1,2)=sum(x); S(1,3)=sum(exp(x)) ; S(2,1)=sum(x) ; S(2,2)=sum(x.*x) ; S(2,3)=sum(x.*exp(x)) ; S(3,1)=sum(exp(x)) ; S(3,2)=sum(x.*exp(x)) ; S(3,3)=sum(exp(x).^2) ; b(1)=sum(y) ;; b(2)=sum(y.*x) ; b(3)=sum(y.*exp(x)) ; S b' a=S\b'

Page 26: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

26 de 28

Polinomios interpolantes

Se interpreta por interpolar a la operación que nos permite hacer pasar una función (en este

caso un polinomio) por los puntos datos dados. Estos datos se los tiene en una tabla de

valores x-y

Si realizamos la interpolación lineal entre los puntos 1 y 2 como se muestra en la figura, se

cumple la siguiente relación:

f(x) – f(x1) = f(x1)- f(x2)

(x – x1) (x2 – x1)

Despejando f(x) f(x) = f(x2) – f(x1) . (x - x1 ) + f(x1)

(x2 – x1)

Multiplicando y agrupando según f(x1) f(x2) y sacando factor común (x2 – x1)

f(x) = ( x – x1) . f(x2) - (x – x1) f(x1) + (x2 – x1) f(x1)

(x2 – x1) (x2 – x1) (x2 – x1)

f(x) = (x – x1) f(x2) – x f(x1) + x1 (f(x1) + x2 f(x1) – x1 f(x1) simplificando según f(x1)

(x2 – x1) (x2 – x1)

f(x) = ( x – x1) f(x2) - ( x – x1) f(x1) (x2 – x1) (x2 – x1)

Cambiando el signo de (x2 – x1) en el divisor del 2º término la fórmula queda:

f(x) = ( x – x2) f(x1) + ( x – x1) f(x2)

(x1 – x2) (x2 – x1)

En ella se observa que si x = x1 , f(x) = f(x1) y si x = x2 , f(x) = f(x2)

Este mismo esquema se puede aplicar a una interpolación con una función cuadrática (o

grados superiores).

Para una función cuadrática de interpolación la expresión es:

f(x) = (x – x2) (x – x3) . f(x1) + (x – x1) (x – x3) f(x2) + (x –x1) (x – x2) f(x3)

(x1–x2) (x1–x3) (x2–x1) (x2–x3) (x3–x1) (x3–x2)

Page 27: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

27 de 28

Es decir que se puede interpolar los puntos con el polinomio p(x):

p(x) = L1(x) . f(x1) + L2(x) . f(x2) + L3(x) . f(x3) (**)

n

donde LJ(x) = Π (x – xi) tal que i ≠≠≠≠ j y donde n es la cantidad de puntos a interpolar i=1 (xj – xi)

A los términos Lj(x) se los denomina polinomios interpolantes de Lagrange.

Otra forma de presentar el método es a partir del postulado que un polinomio de grado n

pasará exactamente (ajustará o unirá) por n+1 puntos. Así una parábola pasa por 3 puntos.

Entonces podemos fijar una función que en base a polinomios defina uno que pase por los

puntos dados por nuestra tabla de datos (que bien puede ser producto de la tabulación de una

función f(x) que desconocemos.

Así:

Para todos los puntos:

f(x) = L1(x) * f(x1) + L2(x) * f(x2) + L3(x) * f(x3) + ….+ Ln(x) * f(xn)

Entonces cuando x = x1 f(x) = f(x1) ⇒ L1(x) = 1 y Lj(x) = 0 para todo j ≠ 1

Un operador que cumple esta condición es el que podemos formar con:

(x – x2) (x – x3) (x – x1)......(x – xn)

(x1–x2) (x1–x3) (x1–x4) ….(x1– xn)

Que son los operadores definidos en (**)

Veamos un ejemplo:

Interpolar entre los 3 puntos dados de la tabla:

Nº X y=f(x)

1 0 -1

2 1 2

3 2 7

f(x) = (x – 1) (x – 2) . (-1 ) + (x – 0) (x – 2) . 2 + (x – 0) (x – 1) . 7

(0 – 1) (0 – 2) (1 - 0 ) (1 – 2) (2 – 0) (2 – 1)

Agrupando según x obtenemos la expresión analítica para el polinomio interpolante p(x):

p(x) = x2 + 2 x - 1 Es decir que multiplicando y despejando x se obtiene la expresión analítica del polinomio. Luego dándole el valor de algún x intermedio se obtiene el valor correspondiente de y=f(x)

Así si x=0.50 p(0.50) = 0.502 – 2* 0.5 +1 = 0.25

También se comprueba que: si x=0 p(0) =1 si x=1 p(1) = 2 y si x=2 p(2) = 7

La ecuación (**) se puede programar para un grado N con unas pocas instrucciones en

FORTRAN

En el caso de realizar el programa lo que se obtiene es una herramienta para calcular el valor

de puntos interpolados entre los puntos datos, es decir que no tenemos la expresión analítica

sino los valores para cualquier punto intermedio.

Page 28: Métodos de resolución de sistemas de ecuaciones linealesinfofich.unl.edu.ar/upload/97cd7fc641209a306a1765... · 1 de 28 Métodos de resolución de sistemas de ecuaciones lineales

Métodos Numéricos y Computación: (Carreras IRH – IA)

28 de 28

En el caso del ejemplo en lugar de operar con la variable x operamos directamente con el

valor de x para el punto a interpolar

Si x= 0.5

Aplicando la misma expresión:

f(0.5) = (0.5 – 1) (0.5 – 2) . (-1 ) + (0.5 – 0) (0.5 – 2) . 2 + (0.5 – 0) (0.5 – 1) . 7

(0 – 1) (0 – 2) (1 - 0 ) (1 – 2) (2 – 0) (2 – 1)

f(0.5) = -0.5 * -1.5 *-1 + 0.5 * -1.5 * 2 + 0.5 * -0.5 * 7

-1 * -2 1 * -1 2 * 1

f(0.5) = -0.375 + 1.5 - 0.875 = 0.25

Igual al resultado obtenido al evaluar el polinomio hallado como función con x = 0.5

Ejemplo programa Polinomio interpolante de Lagrange: c Polinomio interpolante de Lagrange dimension x(3),y(3) c Datos x(i) data x / 0 , 1 , 2/ c Datos f(x) data y /-1 , 2 , 7/ c Valor a interpolar xd print *, 'Ingrese el valor a interpolar entre -1 y 3 ' read *, xd c n:cantidad de datos f:valor de la función n=3 f=0.00 print * , 'Datos ' do i=1,n z=1 print *, 'x',x(i),' f(x)',y(i) do j=1,n if (i .NE. j) z = z * (xd - x(j)) / (x(i) - x(j)) enddo f=f+z * y(i) enddo print *,' ' print *,' Resultado de la interpolación' print *, 'x=',xd,' f(x)=',f stop end Corrida del programa Ingrese el valor a interpolar entre -1 y 3 0.5 Datos x 0. f(x) -1. x 1. f(x) 2. x 2. f(x) 7. Resultado de la interpolación x= 0.5 f(x)= 0.25

Que es el mismo valor que obtuvimos con el p(x) = x2 + 2 x – 1 hallado anteriormente

si lo evaluamos en x=0.5