2015 Universidad Politécnica Salesiana MÉTODOS NUMÉRICOS CON MATLAB Ing.William Caiza Métodos Numéricos Ing. William Caiza Copyright © 2015 por Ing. William Caiza. Todos los derechos reservados. 2 Métodos Numéricos Ing. William Caiza Dedicatoria ESTA PÁGINA ES OPCIONAL. 3 Métodos Numéricos Ing. William Caiza Agradecimientos ESTA PAGINA ES OPCIONAL 4 Métodos Numéricos Ing. William Caiza CONTENIDO CAPITULO I ERRORES ......................................................................................................................... 7 NÚMEROS DECIMALES ........................................................................................ 7 NOTACIÓN BINARIA ............................................................................................. 5 DE DECIMAL (CON DECIMAL) A BINARIO .................................................... 10 ANÁLISIS DE ERRORES .............................................................................................. 5 ERROR DE TRUNCAMIENTO ................................................................................... 16 SERIE DE TAYLOR ..................................................................................................... 17 Teorema de Taylor................................................................................................... 10 CAPITULO II RESOLUCIÓN DE ECUACIONES NO LINEALES ..................................................... 22 MÉTODO DE LA BISECCIÓN.- ................................................................................. 14 Algoritmo ................................................................................................................ 14 Error del Método de Bisección ................................................................................ 14 IMPLEMENTACIÓN DEL CÓDIGO EN MATLAB ............................................ 20 IMPLEMENTACIÒN DEL CÒDIGO EN MATLAB ........................................... 20 Método de la Falsa Posición.-..................................................................................... 50 Convergencia del Método de Falsa Posición ........................................................... 51 Interación de Punto Fijo.- ........................................................................................... 52 Algoritmo de interación del método de punto fijo: ................................................. 53 Implementación del Código en Matlab ................................................................... 56 Método de Newton-Raphson.- ..................................................................................... 57 TEOREMA: ............................................................................................................. 57 CAPITULO III SISTEMAS DE ECUACIONES LINEALES .................................................................. 62 INTRODUCCIÓN........................................................................................................ 62 Operaciones Elementales de Fila ............................................................................... 67 Cálculo de la matriz inversa........................................................................................ 67 Algoritmo ................................................................................................................ 67 Implementación del Código en Matlab ................................................................... 69 DEFINICIÓN: ............................................................................................................. 71 Teorema de Sustitución Regresiva .............................................................................. 72 Implementación del Código en Matlab ................................................................... 74 TEOREMA: ............................................................................................................. 75 TEOREMA: ............................................................................................................. 75 ELIMINACIÓN GAUSSIANA Y PIVOTEO ................................................................. 75 OBSERVACIÓN: .................................................................................................... 75 TEOREMA: OPERACIONES ELEMENTALES CON LAS FILAS .................... 75 DEFINICIÓN: PIVOTEO Y MULTIPLICADORES ............................................. 76 ELIMINACIÓN DE GAUSS-JORDAN ........................................................................ 79 DEFINICIÓN: ......................................................................................................... 79 ALGORITMO: ........................................................................................................ 80 DESCOMPOSICIÓN L.U- FACTORIZACIÓN TRIANGULAR.................................. 84 CAPITULO IV................................................................................................................. 124 5 Métodos Numéricos Ing. William Caiza INTERPOLACIÓN ....................................................................................................... 124 EJERCICIOS PROPUESTOS: ...................................................................................... 133 MÉTODOS DE LA BISECCIÓN ..............................¡ERROR! MARCADOR NO DEFINIDO. MÉTODO DE LA FALSA POSICIÓN .....................¡ERROR! MARCADOR NO DEFINIDO. SOLUCIONES DE EJERCICIOS PROPUESTOS ............ ¡ERROR! MARCADOR NO DEFINIDO. ANEXOS .......................................................................................................................... 180 6 Métodos Numéricos Ing. William Caiza CAPITULO 1: INTRODUCCIÓN 1.1 Números Decimales Comúnmente los seres humanos, realizamos los cálculos aritméticos usando el sistema numérico decimal (base 10); las computadoras hacen los cálculos aritméticos usando el sistema numérico binario (base 2). Al traducir los tipos numéricos existentes a notación binaria queda claro que las operaciones realizadas no necesariamente son exactas por lo tanto van acumulado diferencias (errores) en cada una de las operaciones. 1.1.1 Notación Decimal La expresión 1563 en base 10 se puede escribir ๐๐๐๐ = ๐๐๐๐๐๐ = ๐ × ๐๐๐ + ๐ × ๐๐๐ + ๐ × ๐๐๐ + ๐ × ๐๐๐ . Todo número en base 10 tiene la siguiente notación ๐ต๐๐ = ๐๐ ๐๐๐ + ๐๐โ๐ ๐๐๐โ๐ + โฏ + ๐๐ ๐๐๐ + ๐๐ ๐๐๐ โ ๐๐ = {๐, ๐, ๐, ๐, โฆ , ๐} โ ๐ต๐๐ = ๐๐ ๐๐โ๐ โฆ ๐๐ ๐๐ 7 Métodos Numéricos Ing. William Caiza 1.1.2 Notación Binaria Notación Decimal Notación Binaria 0 0 1 1 2 10 3 11 4 100 5 101 6 110 7 111 8 1000 9 1001 ๐ต๐ = ๐๐ ๐๐ + ๐๐โ๐ ๐๐โ๐ + โฏ + ๐๐ ๐๐ + ๐๐ ๐๐ โ ๐๐ = {๐, ๐} En el nivel superior se encuentra los números complejos, un ejemplo podría ser 3 + 4 ๐, donde la parte real es 3 y la parte imaginaria es 4. Todo número real se puede clasificar en un número racional e irracional, un número ๐ racional es de la forma , ๐, ๐ โ ๐ y un número es irracional cuando no se puede escribir de la forma ๐ ๐ , ejemplo ๐ = 3.141516 โฆ. ๐ 8 Métodos Numéricos Ing. William Caiza CLASIFICACIÓN DE LOS NÚMEROS Todo número racional se puede clasificar en entero y fraccionario, los números enteros se clasifican en enteros positivos o naturales, cero y enteros negativos; los fraccionarios se clasifican en decimal finito e infinito, de decimal finito si el residuo es cero. Las fracciones de decimal infinito se clasifican en periódicas y semi-periódicas. Las fracciones periódicas como 3,3333 โฆ = 3, 3ฬ , se puede obtener su fracción que es igual al cociente cuyo numerador es igual al número menos la parte periódica (33-3), y el denominador es tantos nueves como cifras (una) tenga la parte periódica (9). 3, 3ฬ = 33โ3 9 = 30 9 . Las fracciones semi-periódicas como 3,2455555 โฆ = 3,245ฬ, se puede obtener su forma fraccionaria, cuyo numerador es el número menos el número sin la parte periódica (3245-324), el denominador es tantos nueves como cifras tenga la parte periódica y tantos ceros como cifras tenga la parte no periódica (dos). 3,245ฬ = 3245 โ 324 2921 = 900 900 9 Métodos Numéricos Ing. William Caiza Ejemplo 1 Transformar el número de base 2 a un número en base 10 1 0 0 12 = 1 × 23 + 0 × 22 + 0 × 21 + 1 × 20 โ 8 + 0 + 0 + 1 = 9 Ejemplo 2 Transformar el número de base 10 a un número en base 2 10010 = 1 1 0 0 1 0 02 100 2 0 50 2 0 25 2 1 12 0 2 6 0 2 3 1 2 1 Comprobación: 1 1 0 0 1 0 02 = 1 × 26 + 1 × 25 + 0 × 24 + 0 × 23 + 1 × 22 + 0 × 21 + 0 × 20 = 64 + 32 + 0 + 0 + 4 + 0 + 0 โ 100 Regla de transformación de un número en notación base 10 con decimales a binario. 1. Se transforma la parte entera binaria. 2. Se sigue con la parte fraccionaria multiplicando por el número 2; si el resultado es mayor o igual a 1 se anota un 1; si es menor que 1 se anota un 0. (El producto se realiza con la parte original decimal y con la parte fraccionaria de las sucesivas multiplicaciones, hasta que la parte fraccionaria sea cero). 3. Después de realizar cada multiplicación, se coloca los números obtenidos en el orden de su obtención. 4. Algunos números se transforman en dígitos periódicos. 10 Métodos Numéricos Ing. William Caiza Ejemplo 3 Transformar 6,312510 a binario. Parte Entera 610 = ๐๐๐๐ 6 0 2 3 1 Parte Fraccionaria 0,3125 × 2 = 0,625 โ ๐ 0,625 × 2 = 1,25 โ ๐ 0,25 × 2 = 0,5 โ ๐ 0,5 × 2 = 1 โ ๐ 0×2= 0โ๐ 0×2= 0โ๐ 2 1 0,3125 = ๐ ๐ ๐ ๐ ๐ ๐ ๐ Verificación: Parte Entera ๐ ๐ ๐๐ = 1 × 22 + 1 × 21 + 0 × 21 = 4+2+0 =๐ Parte Fraccionaria ๐ ๐ ๐ ๐๐ = 0 × 2โ1 + 1 × 2โ2 + 0 × 2โ3 + 1 × 2โ4 + 0 × 2โ5 + 0 × 2โ6 1 1 = 0 + 4 + 0 + 16 + 0 + 0 4+1 5 = = = ๐, ๐๐๐๐ 16 16 โ ๐, ๐๐๐๐๐๐ = ๐ ๐ ๐, ๐ ๐ ๐ ๐ ๐ ๐ ๐ โฆ Ejemplo 4 Conversión de periódica (3.5ฬ ) 3. 5ฬ = 35 โ 3 32 = 9 9 Verificamos Parte Entera 32 9 50 3,55โฆ 50 =3.5 Ejemplo 5 11 Métodos Numéricos Ing. William Caiza Conversión de semi-periódica (3.25ฬ ) 3.25ฬ = Verificamos Parte Entera 293 90 230 3,255โฆ 500 500 325 โ 32 293 = 90 90 =3.25ฬ Ejemplo 6 5 Conversión de 1.3 + 3 13 5 39 + 50 89 + = = 10 3 30 30 Ejemplo 7 Conversión de 6.312510 6.3125 63125 12625 2525 505 101 โ 10000 = = = = = 10000 10000 2000 400 80 16 Ejemplo 8 Conversión de 6.312510 a binario Parte Entera 6 2 0 3 2 : 110 1 1 Parte Fraccionaria 0.3125*(2)= 0.625 = 0.625*(2)= 1.25 = 0.25*(2)= 0.5 = 0.5*(2)= 1 = 6.312510 = 110.01012 Ejemplo 9 ฬ ฬ ฬ ฬ a binario Conversión de 5.341 5341 โ 53 5288 2644 = = 990 990 495 Parte Entera 5 2 1 2 2 0 1 : 101. 1012 = 1(2)2 + 0(2)1 + 1(2)0 4 + 0 +1 =5 12 0 1 0 1 Métodos Numéricos Ing. William Caiza Parte Fraccionaria ฬ ฬ ฬ ฬ 0.341 0.341*(2)= 0.682 = 0 0.682*(2)= 1.364 = 1 0.364*(2)= 0.728 = 0 0.728*(2)= 1.456 = 1 0.456*(2)= 0.912 = 0 0.912*(2)= 1.824 = 1 0.824*(2)= 1.648 = 1 0.648*(2)= 1.296 = 1 0.296*(2)= 0.592 = 0 0.592*(2)= 1.184 = 1 0.184*(2)= 0.368 = 0 0.368*(2)= 0.736 = 0 0.736*(2)= 1.472 = 1 0.472*(2)= 0.944 = 0 0.944*(2)= 1.888 = 1 0.888*(2)= 1.776 = 1 Sin importar q sea periódica Verificación ฬ ฬ ฬ ฬ = 01010111 0.341 = 1(2)โ2 + 1(2)โ4 + 1(2)โ6 + 1(2)โ7 + 1(2)โ8 = 1 1 1 1 1 + + + + +โฏ 4 16 64 128 250 = 64 + 16 + 4 + 2 + 1 87 = 256 256 Representación de números en coma flotante Para representar números enteros muy grandes o fracciones muy pequeñas es necesario utilizar notación científica. La representación de un número en coma flotante tiene tres componentes: ๏ท Signo: indica si el número es positivo o negativo ๏ท Mantisa: representa la magnitud del número ๏ท Exponente: indica el desplazamiento de la coma fraccionaria 13 Métodos Numéricos Ing. William Caiza ± ๐๐๐๐ก๐๐ ๐. ๐ต๐๐ ๐ ๐๐ฅ๐๐๐๐๐๐ก๐ Los números decimales en coma flotante se normalizan, desplazando la coma fraccionaria de manera que la parte entera del número siempre valga cero. Ejemplo 346734556700 = 0.346734556700 × 1012 En la presente notación no es necesario representar la base del número, ya que está implícito en el formato y la parte entera de un número normalizado siempre es cero, tampoco es necesario representarlo, con las acotaciones anteriores la representación en coma flotante es Signo: + Mantisa: 346734556700 Exponente: 12 Números binarios en coma flotante Utilizando el formato de simple precisión, que utiliza 32 bits para la representación de números binarios en coma flotante Signo (1 bit) Exponente (8 bits) Mantisa (23 bits) Ejemplo: Dado el siguiente número en binario, expresarlo en punto flotante 0,0000101 = 0,101 × 2โ4 La forma normalizada siempre tiene un 1 en la posición más a la izquierda, por lo que no hay que almacenarlo, está implícito en la representación. Se podría aprovechar en la normalización otro bit, el 1 más a la izquierda esté en la parte entera 0,0000101 = 0,101 × 2โ4 = 1,01 × 2โ5 Para simplificar el formato es necesario evitar la necesidad de un bit para el signo del exponente, por lo cual el exponente se representa usando un formato denominado โen excesoโ, que consiste en sumar un desplazamiento al valor real del número. Si utilizamos 8 bits para representar el exponente, hay 28 combinaciones posibles, 255โ1 desde 0 hasta 255, el desplazamiento será = 127, el formato de simple precisión 2 tiene un exponente de 8 bits en formato exceso 127, se utiliza para representar exponentes con valores entre -126 y 127. 14 Métodos Numéricos Ing. William Caiza Ejemplo: Si el exponente tiene un valor de -126, 0, 1, ¿Cuál es el valor normalizado del exponente? ๐๐ฅ๐๐๐๐๐๐ก๐ = โ126 โ โ126 + 127 = 1 โ 00000001 ๐๐ฅ๐๐๐๐๐๐ก๐ = 0 โ 0 + 127 = 127 โ 01111111 ๐๐ฅ๐๐๐๐๐๐ก๐ = 1 โ 1 + 127 = 128 โ 10000000 = 1 × 27+ + 0 × 26 + 0 × 25 + 0 × 24 + 0 × 23 + 0 × 22 + 0 × 21 + 0 × 20 = 128 Casos especiales Si el exponente es -127, normalizando tenemos -127+127 =0, su correspondiente binario es 00000000, se tiene los siguientes casos: ๏ท Si la mantisa también es cero se está representando el cero. ๏ท Si la mantisa es distinto de cero se trata de un número no normalizado, supondremos que el bit implícito de la parte entera no es 1 sino 0, y el exponente es -126 Si el exponente es 128, normalizando tenemos 128+127= 255, su correspondiente binario es 11111111, se tiene los siguientes casos: ๏ท Si la mantisa es cero se está representando el infinito. ๏ท Si la mantisa es distinta de cero se está representando el resultado de una operación no válida (NaN โ no es un número). Ejemplo: Dado el siguiente número binario +1011010010001 transformado en binario con coma flotante ๏ท Es un número positivo, por lo que el bit del signo será un 0. ๏ท Normalizando el binario 1011010010001 โ 1,011010010001 × 212 ๏ท Calculando el valor de la mantisa 011010010001 ๏ท Calculando el valor del exponente y normalizando se tiene 12 โ 12 + 127 = 139 โ10001011 1 bit 8 bits 0 10001011 23 bits 01101001000100000000000 Ejemplo: Dado el siguiente número binario normalizado 1 bit 8 bits 1 10010001 23 bits 10001110001000000000000 15 Métodos Numéricos Ing. William Caiza El bit del signo es 1, por lo tanto es un número negativo, la mantisa nos proporciona la magnitud del número 1, 10001110001, el valor del exponente se calcula de la siguiente forma: El exponente: 10010001 = 1 × 27 + 0 × 26 + 0 × 25 + 1 × 24 + 0 × 23 + 0 × 22 + 0 × 21 + 1 × 20 = 128 + 16 + 1 = 145 โ 145 โ 127 = 18 resumiendo obtenemos el siguiente número binario โ1,10001110001 × 218 1.2 Análisis de errores En la práctica del cálculo numérico es importante tener en cuenta que las soluciones calculadas por el computador no son soluciones matemáticas exactas. La precisión de una solución numérica puede verse disminuida por diversos factores y la comprensión de estas dificultades puede guiarnos a menudo a desarrollar o construir algoritmos numéricos adecuados. Supongamos que pฬ (estimador) una aproximación de p, entonces se define el error absoluto como: ๐ธ๐ = |๐ โ ๐ฬ | ๐ธ๐๐๐๐ ๐๐๐ ๐๐๐ข๐ก๐ = |๐๐๐๐๐๐๐ก๐๐ โ ๐๐ ๐ก๐๐๐๐๐ ๐๐๐ ๐๐๐๐๐๐๐ก๐๐| ๐ธ๐๐๐๐ ๐๐๐ ๐๐๐ข๐ก๐ = |๐ฃ๐๐๐๐ ๐๐๐๐ โ ๐ฃ๐๐๐๐ ๐๐ ๐ก๐๐๐๐๐ | Y además tenemos el error relativo, el mismo que es un porcentaje de la diferencia entre su valor real y su aproximación: ๐ธ๐ = ๐ธ๐๐๐๐ ๐๐๐๐๐ก๐๐ฃ๐ = |๐ โ ๐ฬ | โ 100 |๐| |๐ฃ๐๐๐๐ ๐๐๐๐ โ ๐ฃ๐๐๐๐ ๐๐ ๐ก๐๐๐๐๐| โ 100 |๐ฃ๐๐๐๐ ๐๐๐๐| 1.2.1 Error de Truncamiento 16 Métodos Numéricos Ing. William Caiza La noción de error de truncamiento se refiere normalmente a los errores que se producen cuando una expresión matemática complicada se reemplaza por una fórmula más simple, por ejemplo: 2 ๐ ๐ฅ = 1 + ๐ฅ2 + ๐ฅ4 ๐ฅ6 ๐ฅ8 + + +โฏ 2! 3! 4! 1.3 Serie de Taylor Toda función puede ser expresada como un polinomio de orden ๐๐ (๐ฅ), la serie de Taylor proporciona un medio para predecir el valor de una función en un punto. Teorema de Taylor Dada la función f y sus n+1 derivadas son continuas, se dice que la expresión siguiente es el polinomio de Taylor de orden n y alrededor de a. ๐(๐ฅ) = ๐๐ (๐ฅ) = ๐(๐) + ๐ โฒ (๐)(๐ฅโ๐) 1! + ๐โฒโฒ(๐)(๐ฅโ๐)2 2! + ๐โฒโฒโฒ(๐)(๐ฅโ๐)3 3! +. . . + ๐ (๐) (๐)(๐ฅโ๐)๐ Donde ๐ธ๐ Si a=0, tenemos la serie de McLaurin: ๐(๐ฅ) = ๐(0) + ๐ โฒ (0)(๐ฅ) + ๐โฒโฒ(0)๐ฅ 2 ๐ (๐) (0)๐ฅ ๐ +. . . + +. .. 2! ๐! Ejemplo a): Encontrar la serie de McLaurin ๏ท ๐(๐) = ๐๐๐(๐) 17 ๐! + ๐ธ๐ Métodos Numéricos Ing. William Caiza ๐(0) = ๐ ๐๐(0) = 0 ๐ โฒ (๐ฅ) = cos(0) โ ๐ โฒ (0) = 1 ๐ โฒโฒ (๐ฅ) = โ๐ ๐๐(๐ฅ) โ ๐ โฒโฒ (๐ฅ) = 0 ๐ โฒโฒโฒ (๐ฅ) = โ cos(๐ฅ) โน ๐ โฒโฒโฒ (๐ฅ) = โ1 ๐๐๐(๐) = ๐ โ ๐๐ ๐๐ ๐๐ + โ +โฏ ๐! ๐! ๐! Ejemplo b): ๏ท ๐(๐) = ๐๐จ๐ฌ(๐) ๐(0) = cos(0) = 1 ๐ โฒ (๐ฅ) = โ๐ ๐๐(0) โ ๐ โฒ (0) = 0 ๐ โฒโฒ (๐ฅ) = โ cos(0) โ ๐ โฒโฒ (0) = โ1 ๐ โฒโฒโฒ (๐ฅ) = ๐ ๐๐(0) โ ๐ โฒโฒโฒ (0) = 0 ๐ (4) (๐ฅ) = cos(0) โ ๐ (4) (0) = 1 ๐๐ ๐๐ ๐๐ ๐๐จ๐ฌ(๐) = ๐ โ + โ + โฏ ๐! ๐! ๐! Ejemplo c): Encuentre Sen (3.5), utilizando la serie de Taylor con 3 términos ๐(๐ฅ) = ๐๐(๐ฅ) = ๐(๐) + ๐ โฒ (๐)(๐ฅ โ ๐) ๐ โฒโฒ (๐)(๐ฅ โ ๐)2 ๐ ๐ (๐)(๐ฅ โ ๐)๐ + + +โฏ 1! 2! ๐! ๐(๐ฅ) = ๐๐๐ (3.5) (3.5)3 (3.5)5 ๐๐๐ (3.5) = 3.5 โ + 3! 5! 18 Métodos Numéricos Ing. William Caiza ๐๐๐ (3.5) = 0.73098 ๐๐๐๐๐ ๐๐๐๐๐ฅ๐๐๐๐๐ ๐๐๐๐๐ ๐๐๐๐ โถ ๐๐๐(3.5) = โ0.35078 E๐ = |โ0.35078 โ 0.730981 | ๐๐ = ๐. ๐๐๐๐๐ E๐ = |โ0.35078 โ 0.730981 | โ 100 |โ0.35078| ๐๐ = ๐. ๐๐๐๐๐ Ejemplo d): ๐น(๐ฅ) = ๐๐๐ (๐ฅ) 1) 2) 3) 4) 5) ๐ โฒ (๐)(๐ฅ โ ๐) ๐ โฒโฒ (๐)(๐ฅ โ ๐)2 ๐ ๐ (๐)(๐ฅ โ ๐)๐ + + +โฏ 1! 2! ๐! Encuentre la serie de Taylor del Sen(x) Encuentre el valor de la serie en x =3.45 Encuentre el valor de la serie en a=3, x=3.45 Encuentre el error Conclusión 1) Sen(x) = Sen(a) + Cos(a)(x โ a) โ ๐(๐ฅ) = ๐(๐) + Sen(a)(xโa)2 2! โ Cos(a)(xโa)3 3! + Sen(a)(xโa)4 4! Cos(a)(xโa)5 5! 2) x3 x5 x7 Sen(x) = x โ 3! + 5! โ 7! + Sen(3.45) = 3.45 โ x9 9! +โฏ (3.45)3 (3.45)5 (3.45)7 (3.45)9 + โ + = โ0.284384 3! 5! 7! 9! 19 + Métodos Numéricos Ing. William Caiza Sen(3.45) = Sen(3) + Cos(3)(3.45 โ 3) โ 3) ๐๐๐(3)(3.45โ3)2 2! โ ๐ถ๐๐ (3)(3.45โ3)3 3! Sen(3)(3.45โ3)4 4! = - 0.303788 4) El valor exacto de Sen(3.45)= -0.303541, calculadora en radianes. El error para a=0. ๐ธ๐ = | ๐๐๐๐๐ ๐๐๐๐ โ ๐๐๐๐๐ ๐๐๐๐๐ฅ๐๐๐๐๐ | โ 100 ๐๐๐๐๐ ๐๐๐๐ ๐ธ๐ = | โ0.303541 + 0.284381 | โ 100 โ0.30541 ๐ฌ๐ = ๐. ๐๐๐๐ % 20 + Métodos Numéricos Ing. William Caiza El error para a=3 de Sen(3.45) ๐ธ๐ = | โ0.303541 + 0.303388 | โ 100 โ0.30541 ๐ฌ๐ = ๐. ๐๐๐๐ % 5) Conclusión: Cuando el valor de a es cercano a x el valor disminuye notablemente. Ejemplo e): ๐น(๐ฅ) = ๐๐๐ (โ๐ฅ) 1.- Encontrar la serie de Taylor del ๐ ๐๐ (โ๐ฅ) 2.- Encontrar el valor de la serie en x=3.45; a=3.4 con 5 términos ๐(๐ฅ) = ๐๐ = ๐(๐) + ๐ โฒ (๐)(๐ฅ โ ๐) ๐ โฒโฒ (๐)(๐ฅ โ ๐)2 ๐ ๐ (๐)(๐ฅ โ ๐)๐ + + +โฏ 1! 2! ๐! 1. ๐๐๐ (โ๐ฅ) = ๐๐๐ (โ๐) + ๐ถ๐๐ (โ๐) โ (๐ฅ โ ๐) 2โ๐ โโ๐ โ ๐๐๐ (โ๐) โ ๐ถ๐๐ (โ๐) (๐ฅ โ ๐)2 +( )โ 2! 4๐โ๐ 2. ๐๐๐ (โ3.45) = ๐๐๐ (โ3.4) + ๐ถ๐๐ (โ3.4) โ (3.45 โ 3.4) 2โ3.4 โ (3.45 โ 3.4)2 2! ๐๐๐ (โ3.45) = 0,958967 ๐ธ๐ = | 0.959204 โ 0,958967 | โ 100 0.959204 ๐ฌ๐ = ๐. ๐๐๐๐ % 21 +( โโ3.4 โ ๐๐๐ (โ3.4) โ ๐ถ๐๐ (โ3.4) 4(3.4)โ3.4 ) Métodos Numéricos Ing. William Caiza Ejemplo f): ๏ท Demostrar ๐(๐ฝ) = ๐๐๐ฝ = ๐๐จ๐ฌ(๐ฝ) + ๐๐๐๐(๐ฝ) ๐(0) = ๐ ๐๐ = ๐ ๐(0) = ๐ 0 = 1 ๐ โฒ (๐) = ๐๐ ๐๐ = ๐โฒ(0) = ๐ ๐ โฒโฒ (๐) = ๐ 2 ๐๐ ๐๐ = ๐ โฒโฒ (0) = ๐ 2 ๐ โฒโฒโฒ (๐) = ๐ 3 ๐๐ ๐๐ = ๐ โฒโฒโฒ (0) = ๐ 3 ๐ (4) (๐) = ๐ 4 ๐๐ ๐๐ = ๐ (4) (0) = ๐ 4 ๐ (5) (๐) = ๐ 5 ๐๐ ๐๐ = ๐ (5) (0) = ๐ 5 ๐ ๐๐ ๐ 2๐2 ๐ 3๐3 ๐ 4๐4 = 1 + ๐๐ + + + +. .. 2! 3! 4! ๐ ๐๐ = (1 โ ๐2 ๐4 ๐6 ๐3 ๐5 + โ + โฏ ) + ๐ (๐ โ + +โฏ) 2! 4! 6! 3! 5! ๐๐๐ฝ = ๐๐จ๐ฌ(๐ฝ) + ๐๐๐๐(๐ฝ) Polinomio de Taylor para funciones de dos variables Definición sea ๐: โ2 โ * Función escalar de variable vectorial * Función real de variable vectorial El polinomio de Taylor de orden n asociado a ๐ ๐๐ (๐, ๐)๐๐ : ๐(๐ฅ, ๐ฆ) = ๐๐(๐, ๐) 1 ๐ ๐ = ๐(๐, ๐) + ( ๐(๐, ๐)(๐ฅ โ ๐) + ๐(๐, ๐)(๐ฆ โ ๐)) 1! ๐๐ฅ ๐๐ฆ + 1 ๐2 ๐2 2๐ 2 ( 2 ๐(๐, ๐)(๐ฅ โ ๐)2 + 2 ๐(๐, ๐)(๐ฆ โ ๐)2 + ๐(๐, ๐)(๐ฅ โ ๐)(๐ฆ โ ๐)) 2! ๐๐ฅ ๐๐ฆ ๐๐ฅ๐๐ฆ 22 Métodos Numéricos Ing. William Caiza + 1 ๐3 ๐3 3๐ 3 ( 3 ๐(๐, ๐)(๐ฅ โ ๐)3 + 3 ๐(๐, ๐)(๐ฆ โ ๐)3 + 2 ๐(๐, ๐)(๐ฅ โ ๐)2 (๐ฆ โ ๐) 3! ๐๐ฅ ๐๐ฆ ๐๐ฅ ๐๐ฆ 3๐ 3 + ๐(๐, ๐)(๐ฅ โ ๐)(๐ฆ โ ๐)2 ) +. . .. ๐๐ฅ๐๐ฆ 2 Ejemplo: Dada la función de: ๐: โ2 โ ๐ฆ f(x, y) = sen(x)sen(y) Encontrar el polinomio de Taylor de grado 3 asociado y evaluado ๐(0,1 ; 0,15): Programa de la serie de Taylor Código: % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) syms x; ingreso=char(inputdlg('ingrese funcion')); f=inline(ingreso); n=str2double(inputdlg('ingrese numero de expresiones para la serie')); ev=taylor(f(x),'order',n) fun=string(ev); set(handles.text1,'string',fun); Imagen 1.1: Ejecución del programa Teorema: Sea ๐ โ ๐ถ ๐ [๐, ๐], ๐ก๐๐ ๐๐ข๐ ๐ (๐+1) existe en [a,b] y c โ [a,b]. Entonces para todo x โ [a,b], f(x) = ๐๐ (๐ฅ) + ๐ ๐ (๐ฅ), donde ๐๐ (๐ฅ) es el polinomio de Taylor 23 Métodos Numéricos Ing. William Caiza ๐ (๐+1) (๐(๐ฅ)) ๐ ๐ (๐ฅ) = (๐ฅ โ ๐)๐+1 (๐ + 1)! Es el residuo, con ๐(๐ฅ) entre c y x, el teorema no permite evaluar exactamente el residuo, pero si permite acotarlo. |๐ ๐ (๐ฅ)| โค |x โ c|๐+1 max|๐ (๐+1) (๐ก)| (๐ + 1)! t โ (x,c). Ejemplo 5 Obtener el polinomio de Taylor de orden 2 de cos(x) alrededor de ฯ, acotar el error para x=3 y calcular el error. ๐2 (๐ฅ) = cos( ฯ) โ ๐ ๐๐( ฯ)(x โ ฯ) โ cos( ฯ) (๐ฅ โ ฯ)2 2 1 ๐2 (๐ฅ) = โ1 + ( ๐ฅ โ ฯ)2 2 |3 โ ฯ|3 |๐๐๐๐๐| โค ๐๐๐ฅ|๐ ๐๐(๐ก)|; ๐ก โ [3, ฯ]. 6 |๐๐๐๐๐| โค 0.0004731 ๐ ๐๐(3) |๐๐๐๐๐| โค 0.0004731 ๐ฅ 0.1411 = 0.0000668 Observación: Para calcular el valor de una función para x el valor de a, deberá estar alrededor de x. Ejercicios propuestos Ejercicios de notación decimal Escribir en notación decimal las siguientes cantidades: 1. 374= 2. 17350= 3. 1,0243= 24 Métodos Numéricos Ing. William Caiza 4. 745,36= 5. 1357, 924= Transformar de notación binaria a notación decimal 1. 100110112 = 2. 100110012 = 3. 11001002 = 4. 100110012 = 5. 01012 = Páginas web: http://www.montereyinstitute.org/courses/DevelopmentalMath/U03L1T1_RESOUR CE/U03_L1_T1_text_final_es.html http://es.wikihow.com/convertir-binario-a-decimal Series de Taylor 1. Calcular el polinomio de Taylor de la función ๐(๐ฅ) = ๐ ๐ฅ 2. Calcúlese la serie de Taylor de ๐(๐ฅ) = ๐๐(๐ฅ) 3. Encuentre una serie de Taylor para f(x)= cos(2x) 4. Encuentre la serie de Taylor para f(x) = x5 5. Encontrar la serie de Taylor para la función f(x)= log (cosx) Series de Mc- Claurin 1. Hallar el polinomio de Maclaurin para f(x)=e x, para n=0, n=1, n=2, n=3, y el polinomio general. 2. Encuentre una serie de Maclaurin para ๐(๐ฅ) = ๐ฅ 2 ๐ โ๐ฅ 3. Encontrar la serie de Maclaurin para f(x) = 4. Encontrar la serie de Maclaurin para f(x) = 5. Encontrar la serie de Maclaurin para f(x) = Páginas web: 25 ex + eโx 2 ex โ eโx 2 1 1+x2 Métodos Numéricos Ing. William Caiza http://es.scribd.com/doc/102297219/Series-de-Taylor-Ejemplos-y-Problemas http://www.wikimatematica.org/index.php?title=Series_de_Taylor_y_Maclaurin#Eje mplo_.231 http://www4.ujaen.es/~cisneros/Documentos/Des_Taylor.pdf CAPITULO 2: RESOLUCIÓN DE ECUACIONES NO LINEALES 2.1 Método de la bisección Descripción del método: Dado el intervalo [a, b], la primera aproximación a la raíz es el punto medio del intervalo se calcula como la suma de los dos puntos dividido para 2, encontrando un nuevo punto c1, luego se verifica si ๐(๐) × ๐(๐1 ) < 0 implicaría que la nueva raíz se encuentra en el intervalo [๐, ๐1 ] por lo tanto la nueva aproximación seria el punto medio de dicho intervalo. Y seguiríamos verificando si el ๐(๐๐ ) × ๐(๐๐ ) < 0 o ๐(๐๐ ) × ๐(๐๐ ) < 0 , en el intervalo que cumpla las definiciones anteriores se procederá otra vez a encontrar el punto medio que es la siguiente mejor aproximación a la raíz, así sucesivamente hasta obtener una aproximación deseada. Figura 2.1: descripción grafica del método de la bisección. 26 Métodos Numéricos Ing. William Caiza Las aproximaciones deseadas forman una sucesión que convergen a la raíz. โ {xn } = {c, c1 , c2 , โฆ . . , cn } โ {xn } = converge a la raíz Algoritmo de la bisección funcion=char(inputdlg('ingrese la funcion')); f=inline(funcion); x=-5:0.1:5; n=length(x); for i=1:n y(i)=f(x(i)); end plot(x,y); hold on; plot([-5 5],[0 0],'r'); grid on; plot([0 0],[-5 5],'r'); j=-5; for i=1:11 text(j,0,num2str(j)); j=j+1; end a=str2double(inputdlg('ingrese el valor de a')); b=str2double(inputdlg('ingrese el valor de b')); iteraciones=1; j=1; pmviejo=0; while iteraciones<5 pm=((a+b)/2); fa=f(a); fb=f(b); fpm=f(pm); aa(j)=a; bb(j)=b; ppm(j)=pm; errorf=abs(pm-pmviejo); err(j)=errorf; if fa*fpm<0 b=pm; end 27 Métodos Numéricos Ing. William Caiza if fb*fpm<0 a=pm; end pmviejo=pm; j=j+1; iteraciones=iteraciones+1; end set(handles.uitable1,'data',[aa' ppm' bb' err']); Figura 2.2 Ejecución del algoritmo de la bisección 1. Elija a y b de forma que la función cambie de signo, inicialmente el a y el b se podría escoger realizando el gráfico de la función. 2. La primera aproximación a la raíz es Ci y se obtiene ๐๐ + ๐๐ 2 3. Realice las siguientes evaluaciones para determinar en que subintervalos cae la raíz. ๐ถ๐ = 28 Métodos Numéricos Ing. William Caiza a) Si f(ai )f(Ci ) < 0 , entonces la raíz se encuentra dentro del subintervalo, por lo tanto bi = Ci , ai = ai ; y continúe en el paso 2. b) Si f(ai )f(Ci ) > 0 , entonces la raíz se encuentra dentro del subintervalo superior, por lo tanto ai = Ci , bi = bi ; y continúe en el paso 2. 4. Si f(ai )f(Ci ) = 0 , la raíz es igual a Ci , termina el cálculo. 2.1.2 Error Del Método de Bisección ๐ธ๐ = | ๐๐ข๐ง๐ฎ๐๐ฏ๐จ% โ ๐๐ข๐๐ง๐ญ๐๐ซ๐ข๐จ๐ซ | × ๐๐๐ ๐๐ข๐ง๐ฎ๐๐ฏ๐จ Ejemplo 1: Encontrar los ceros de la función y= -exp(x)tan(x) y= -exp(x)tan(x) 200 150 100 50 0 0 0,5 1 1,5 2 2,5 3 3,5 -50 -100 Figura2.3: grafico del método de la Bisección Cuadro de datos: f(ai )f(Ci ) > 0; ai = Ci , bi = bi 29 Métodos Numéricos Ing. William Caiza Figura2.4: tabla de datos. f(ai )f(Ci ) < 0; bi = Ci , ai = ai 1.- Ingresamos una función a ser evaluada, utilizamos el comando char que transforma lo que ingresamos mediante la función โinputdlgโ en string. 2.- Ingresamos el intervalo en el cual deseamos encontrar una raíz así como la tolerancia admisible para encontrar la raiz, además hacemos uso de la función str2double que transforma un โstringโ a double o número. 3.- Creamos la función con โinlineโ4.- Usamos el comando โwhileโ para definir las iteraciones que se van a realizar, para este caso el número de iteraciones es menor que 10 y la tolerancia debe ser menor al error. 5.- Aplicamos el algoritmo para obtener las raíces. 6.- y los resultados obtenidos enviamos a los objetos โuitableโ, como se puede observar en la ejecución del programa. 2.2 Método de la Falsa Posición 30 Métodos Numéricos Ing. William Caiza (r2,y2) r2 C1 (r2,y2) Figura 2.5: grafica del método de la falsa posición. Como en el método de la bisección, supongamos que f(a) y f (b) tienen distinto signo. En el método de la bisección se usa el punto medio del intervalo [a, b] para llevar a cabo, las iteraciones hasta obtener la raíz. Con el método de la falsa posición, suele conseguirse una aproximación mejor usando el punto (c, 0), en el que la recta secante L pasa por los puntos (a, f(a)), (b, f (b)) y el eje x. Para hallar la abscisa c, igualamos las dos fórmulas para la pendiente m de la recta secante L. Encontremos la expresión para el método de la falsa posición. Sea los puntos (๐, ๐(๐)) ๐ฆ (๐, ๐(๐)) ๐๐ฟ๐ ๐๐๐๐๐ก๐ = ๐(๐) โ ๐(๐) ๐โ๐ (1) Sean los puntos (๐, 0) ๐ฆ (๐, ๐(๐)) ๐๐ฟ๐ ๐๐๐๐๐ก๐ = 0 โ ๐(๐) ๐โ๐ Igualando las dos expresiones obtenemos 31 (2) Métodos Numéricos Ing. William Caiza ๐(๐) โ ๐(๐) โ๐(๐) = โ (๐ โ ๐)(๐(๐) โ ๐(๐)) = โ๐(๐)(๐ โ ๐) ๐โ๐ ๐โ๐ ๐=โ ๐(๐)(๐ โ ๐) ๐(๐)(๐ โ ๐) +๐ โ ๐ =๐โ ๐(๐) โ ๐(๐) ๐(๐) โ ๐(๐) Por lo tanto generalizando la expresión anterior tenemos: ๐ถ๐ = ๐๐ โ ๐(๐๐ )(๐๐ โ ๐๐ ) ๐(๐๐ ) โ ๐(๐๐ ) โ๐ = 1,2,3, โฆ Donde ๐ถ๐ forma una sucesión que converge a la raíz de la función. Las 3 posibilidades son las mismas que en el caso anterior: a) Si f(a) y f(c) tienen distintos signos, entonces hay un cero (raíz) en [a, c]. b) Si f(c) y f (b) tienen distinto signo, entonces hay un cero (raíz) en [c, b]. c) Si f(c)=0, entonces c es una raíz. 2.2.1 Convergencia del Método de Falsa Posición De la deducción anterior, tenemos que la aproximación ๐ถ๐ , es una sucesión de la forma {๐ถ๐ }โ ๐=0 la cual puede converger. Sin embargo, aunque la longitud del intervalo bk โ ak se hace más pequeño, es posible que no tiende a 0. El criterio de parada usada en el método de la bisección no es útil por lo tanto se utilizará aproximaciones sucesivas de |Ck โ Ckโ1 |. Ejemplo 3: Realizar la gráfica de la función tan(x)*cos(x) 32 Métodos Numéricos Ing. William Caiza tan(x)*cos(x) 1,5 1 0,5 0 -4 -2 -0,5 0 2 4 6 8 -1 -1,5 Figura 2.6: grafica ejercicio tan(x)*cos(x). Si f(c) y f (b) tienen distinto signo, entonces hay un 0 en [c, b]; por lo tanto c=a y b=b. Cuadro del Método de la Falsa Posición Figura 2.7: Cuadro de datos. Ejemplo 4: f(x)=ln(x^3+2)*tan(x) Gráfica de la función 33 Métodos Numéricos Ing. William Caiza Figura 2.8: grafica de la función f(x)=ln(x^3+2)*tan(x) Si f(c) y f (b) tienen distinto signo, entonces hay un 0 en [c, b]; por lo tanto c=a y b=b. Cuadro del Método de la Falsa Posición Figura 2.11: Cuadro de Datos, Ejemplo 2 2.3 Interacción de Punto fijo 2.3.1 Idea Gráfica del Punto Fijo funcion1=char(get(handles.edit1,'string')); funcion2=char(get(handles.edit2,'string')); funcion3=char(get(handles.edit3,'string')); x=-5:0.1:5; f1=inline(funcion1); f2=inline(funcion2); f3=inline(funcion3); n=length(x); for i=1:n y1(i)=f1(x(i)); y2(i)=f2(x(i)); y3(i)=f3(x(i)); 34 Métodos Numéricos Ing. William Caiza end plot(handles.axes1,x,y1); hold(handles.axes1,'on'); plot(handles.axes1,[-7 7],[0 0],'r'); plot(handles.axes1,[0 0],[-15 15],'r'); plot(handles.axes2,x,y2); hold(handles.axes2,'on'); plot(handles.axes2,x,y3); plot(handles.axes2,[-7 7],[0 0],'r'); plot(handles.axes2,[0 0],[-15 15],'r'); grid on; Figura 2.9: Respuestas del ejercicio ๐(๐) = ๐ Un punto fijo de una función g es un número p para el cual se cumple: Sea ๐(๐) = ๐๐ โ ๐๐ + ๐ y ๐ = ๐. Demuestre que para x=1 es un punto fijo: ๐(1) = 12 โ 2(1) + 2 = 1 โ 2 + 2 = 1 โ ๐(1) = 1 35 Métodos Numéricos Ing. William Caiza โ ๐ = ๐ โด ๐(๐) ๐๐ ๐๐ ๐๐๐๐๐ ๐๐๐๐ Dado un problema de buscar una raíz f (p)=0, podemos definir una función g, con un punto fijo p de diversas formas, por lo tanto sea g(x) = x โ f(x) si la función g tiene un punto fijo en p entonces, p es una raíz de f(x): Despejando de la expresión anterior tenemos ๐(๐) = ๐ โ ๐(๐), Y tiene un cero en p. Verifiquemos que f(x) tiene un cero en p โ ๐(๐) = ๐ โ ๐(๐) = ๐ โ ๐ = ๐, ya que p es punto fijo de g. โด p es raíz. Ejemplo 5: encuentre la siguiente expresión. La ecuación x 3 + 4x 2 โ 10 = 0 tiene una raíz única en el intervalo de [1,2], encuentre una expresión x=g(x) โ ๐ท๐๐๐ ๐ฅ 3 + 4๐ฅ 2 โ 10 = 0 4๐ฅ 2 = 10 โ ๐ฅ 3 โ๐ฅ 2 = โ 10 โ ๐ฅ 3 10 โ ๐ฅ 3 โ |๐ฅ| = ± 4 4 ๐ฅ=โ 10 โ ๐ฅ 3 4 (1) ๐ฅ = ๐(๐ฅ) ๐ฅ(๐ฅ 2 + 4๐ฅ) = 10 ๐ฅ= ๐ฅ2 10 + 4๐ฅ 36 (2) Métodos Numéricos Ing. William Caiza ๐ฅ = ๐(๐ฅ) ๐ฅ 3 = 10 โ 4๐ฅ 2 3 3 โ๐ฅ 3 = โ10 โ 4๐ฅ 2 3 ๐ฅ = โ10 โ 4๐ฅ 2 (3) ๐ฅ = g(x) Verificación de la ecuación (1) ๐(๐ฅ) = ๐ฅ โ ๐(๐ฅ) 10 โ ๐ฅ 3 ๐(๐ฅ) = ๐ฅ โ โ 4 ๐(๐ฅ) = ๐ฅ โ ๐(๐ฅ) = โ10 โ ๐ฅ 3 2 2๐ฅ โ โ10 โ ๐ฅ 3 2 ๐(๐ฅ) = 0 2๐ฅ โ โ10 โ ๐ฅ 3 =0 2 2๐ฅ โ โ10 โ ๐ฅ 3 = 0 (2๐ฅ)2 = (โ10 โ ๐ฅ 3 ) 2 4๐ฅ 2 = 10 โ ๐ฅ 3 ๐ฅ 3 + 4๐ฅ 2 โ 10 = 0 Algoritmo de interacción del método de punto fijo: ๐๐+1 = ๐(๐๐ ) ; ๐ = 0,1,2,3 โฆ Donde se tendrá que inicializar el algoritmo con p0 . 37 Métodos Numéricos Ing. William Caiza El error a calcular será de la forma: e = |xrnuevo โ xranterior | Ejemplo 6: resuelto en Excel ๐(๐) = ๐๐ โ ๐๐ + ๐๐ โ ๐ Despejando x se obtienen 3 ecuaciones: ๐ = โ๐๐ + ๐๐ โ ๐ ๐ ๐ = โ๐๐ โ ๐๐ + ๐ ๐= ๐ โ ๐๐ + ๐ ๐ ๐ (๐) (๐) (๐) Observación: El método de punto fijo es sensible al despeje de la función f(x) en x=g(x) Este algoritmo es sensible al despeje, en este caso el mejor despeje es el la ecuación (2). ๐ F(x)= ๐ฑ = โ๐ฑ ๐ โ ๐๐ฑ + ๐ F(x)= ๐=โ(๐&๐^๐โ๐๐+๐) 15 10 5 0 -4 -3 -2 -1 -5 0 1 2 3 -10 -15 -20 -25 Figura 1.10: grafica del método del punto fijo 38 4 5 Métodos Numéricos Ing. William Caiza Gráfico de la ecuación (2) en la cual las rectas se intersectan y las funciones convergen. k 0 1 2 3 4 5 6 7 8 9 pk 2 0,75 1,78515625 1,12446938 1,71065425 1,23009637 1,66295816 1,29165893 1,62835032 1,3334784 pk+1=g(pk) 0,75 1,78515625 1,12446938 1,71065425 1,23009637 1,66295816 1,29165893 1,62835032 1,3334784 1,60175513 Pk 2 1,44224957 1,49047078 1,4827081 1,48391569 1,48372676 1,48375629 1,48375168 1,4837524 1,48375229 pk+1=g(pk) 1,44224957 1,49047078 1,4827081 1,48391569 1,48372676 1,48375629 1,48375168 1,4837524 1,48375229 1,4837523 2.4 Método de Newton-Raphson Si ๐(๐ฅ), ๐ โฒ (๐ฅ), ๐โฒโฒ(๐ฅ) son continuas cercas de una raíz p, esta información sobre la naturaleza de f(x) puede usarse para desarrollar algoritmos que produzcan sucesiones {pk } que converjan a p más rápidamente. Sea ๐ฆ = ๐(๐ฅ) los puntos (๐ฅ1 ,0) y (๐ฅ2 , ๐(๐ฅ2 )) entonces la pendiente es igual: Figura 2.11: Grafica del método de newton Raphson ๐= 0 โ ๐(๐๐ฅ ) (1) ; ๐1 โ ๐0 Igualando tenemos que: 39 ๐ = ๐ โฒ (๐0 ) (2) Métodos Numéricos Ing. William Caiza ๐ โฒ (๐0 ) = 0 โ ๐(๐๐ฅ ) ๐1 โ ๐0 (๐1 โ ๐0 )๐ โฒ (๐0 ) = โ๐(๐0 ) ๐1 ๐ โฒ (๐0 ) โ ๐0 ๐ โฒ (๐๐ ) = โ๐(๐0 ) ๐1 = โ ๐(๐0 ) + ๐0 ๐ โฒ (๐0 ) ๐ โฒ (๐0 ) ๐1 = ๐0 โ ๐(๐0 ) ๐ โฒ (๐0 ) Este proceso puede repetirse para obtener la sucesión {pk } que converge ap. TEOREMA: Supongamos que la función f โ C2 [a, b] , es decir la función f debe ser continua e integrable en el intervalo [a, b] y debe existir un número p โ [a, b] tal que f (p)=0 โ ๐๐ = ๐(๐๐โ1 ) = ๐๐โ1 โ ๐(๐๐โ1 ) ; ๐ = 1,2, โฆ ๐ โฒ (๐ ) ๐โ1 Ejemplo 7: Aplicar el método de Newton-Raphson para resolver la siguiente ecuación ๐๐ ๐๐ = ๐. ๐ ๐๐ ๐ฅ 2 โ 0.7 = 0 โ ๐(๐ฅ) = ๐๐ ๐ฅ 2 โ 0.7 ๐(๐ฅ)=lnใ๐ฅ^2 ใโ0.7 3 2 1 0 -3 -2 -1 -1 0 1 2 3 4 5 -2 -3 -4 -5 -6 Figura 2.12: Grafica Del Método De Newton Raphson ๐ โฒ (๐ฅ) = 2 ๐ฅ 40 6 Métodos Numéricos Ing. William Caiza ๏ท ๐(๐ ) ๐๐+1 = ๐๐ โ ๐โฒ (๐๐ ) ๐ ๐๐+1 = 2 โ ๏ท ๐(๐ ) ๐๐(22 ) โ 0.7 โน ๐๐+1 = 1.3137 2 2 ๐๐+1 = ๐๐ โ ๐โฒ (๐๐ ) ๐ ๐๐+1 = 1.3137 โ ๐ธ๐ ๐ ๐๐ = |๐ฅ๐๐ข๐๐ฃ๐ โ ๐ฅ๐๐๐ก๐๐๐๐๐ | ๐๐(1.31372 ) โ 0.7 โน ๐๐+1 = 1.415 2 1.3137 ๐ธ๐ ๐ ๐๐ = |1.415 โ 1.3137| โ 0.101 ๏ท ๐(๐ ) ๐๐+1 = ๐๐ โ ๐โฒ (๐๐ ) ๐ ๐๐+1 = 1.415 โ ๐ธ๐ ๐ ๐๐ = |๐ฅ๐๐ข๐๐ฃ๐ โ ๐ฅ๐๐๐ก๐๐๐๐๐ | ๐๐(1.4152 ) โ 0.7 โน ๐๐+1 = 1.419 2 1.415 ๐ธ๐ ๐ ๐๐ = |1.419 โ 1.415| โ 0.004 ๏ท ๐(๐ ) ๐๐+1 = ๐๐ โ ๐โฒ (๐๐ ) ๐ ๐๐(1.4192 ) โ 0.7 ๐๐+1 = 1.419 โ โน ๐๐+1 = 1.419 2 1.419 ๐ธ๐ ๐ ๐๐ = |๐ฅ๐๐ข๐๐ฃ๐ โ ๐ฅ๐๐๐ก๐๐๐๐๐ | ๐ธ๐ ๐ ๐๐ = |1.419 โ 1.419| โ 0 Algoritmo del método de Newton Raphson Código: % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) syms x; 41 Métodos Numéricos Ing. William Caiza funcion=char(inputdlg('ingrese la funcion')); po=str2double(inputdlg('ingrese valor inicial para calcular la raiz')); f=inline(funcion); df=diff(sym(funcion)); dff=inline(df); p(1)=po; for i=1:5 p(i+1)=p(i)-(f(p(i))/(dff(p(i)))); end x=[0:1:5]; set(handles.uitable1,'data',p'); plot(x,p); Figura 2.13: Mascara De Interface Figura 2.18: Ejecución del programa 42 Métodos Numéricos Ing. William Caiza 2.5 Raíces múltiples Una raíz múltiple corresponde a un punto donde la función es tangencial al eje x, en dicho punto. ๐(๐) = (๐ + ๐)(๐ โ ๐)(๐ โ ๐) ๐(๐ฅ) = (๐ฅ + 3)(๐ฅ โ 1)2 = (๐ฅ + 3)( ๐ฅ 2 โ 2๐ฅ + 1) = ๐ฅ3 โ 2๐ฅ2 + ๐ฅ + 3๐ฅ2 โ 6๐ฅ + 3 = ๐ฅ3 + ๐ฅ2 โ 5๐ฅ + 3 En general, la multiplicidad impar de raíces cruza el eje x, mientras que la multiplicidad par no la cruza. Dificultad del método de raíces múltiples ๏ท El hecho de que la función no cambie de signo en raíces múltiples pares impide que converse en métodos cerrados. ๏ท Tanto f(x) como su derivada se aproxima a cero en la raíz, esto afecta a los métodos de newton Rapshon y secante los cuales contienen derivada en el numerador. ๏ท El método de Newton Rapshon y la secante convergen el punto lineal, en vez de formar cuadrática cuando hay raíces múltiples. Ejemplo 9: multiplicidad par. Sea f(x)= (x โ 2)2 , como se puede apreciar en el gráfico el cero es un punto que topa tangencialmente al eje de las x, por lo tanto esta función es de multiplicidad 2 f(x)=(x-2)^2 30 25 20 15 10 5 0 -4 -2 0 2 43 4 6 8 Métodos Numéricos Ing. William Caiza Figura 2.19: Multiplicidad Par Ejemplo 10: multiplicidad impar Sea f(x)=(x-2) ^3, se puede apreciar en el gráfico que el cero topa y corta tangencialmente al eje de las x. f(x)=(x-2)^3 20 10 0 -2 -1 -10 0 1 2 3 4 5 -20 -30 -40 Figura 2.20: Multiplicidad Impar El método de Newton Raphson, tiene que ser modificado para ser utilizado en raíces múltiples. ๐(๐ฅ) Sea ๐ข = ๐โฒ(๐ฅ) (1) ๐ข(๐ฅ ) Y, ๐ฅ๐+1 = ๐ฅ๐ โ ๐ขโฒ(๐ฅ๐ ) (2) ๐ ๐ขโฒ(๐ฅ๐ ) = ๐ โฒ (๐ฅ๐ ) ๐ โฒ (๐ฅ๐ )โ๐(๐ฅ)๐ โฒโฒ (๐ฅ๐ ) (๐ โฒ (๐ฅ๐ ))2 Remplazando (1) en (2) ๐(๐ฅ) ๐โฒ(๐ฅ๐ ) ๐ฅ๐+1 = ๐ฅ๐ โ โฒ (๐ (๐ฅ๐ ))2 โ ๐(๐ฅ๐ )๐ โฒโฒ (๐ฅ๐ )) (๐โฒ(๐ฅ๐ ))2 ๐(๐ฅ๐ )(๐โฒ(๐ฅ๐ ))2 ๐ฅ๐+1 = ๐ฅ๐ โ ๐โฒ(๐ฅ๐ )[(๐ โฒ (๐ฅ๐ ))2 โ ๐(๐ฅ๐ )๐ โฒโฒ (๐ฅ๐ ))] ๐(๐ฅ๐ )๐โฒ(๐ฅ๐ ) ๐ฅ๐+1 = ๐ฅ๐ โ โฒ (๐ (๐ฅ๐ ))2 โ ๐(๐ฅ๐ )๐ โฒโฒ (๐ฅ๐ )) Ejemplo 11: encontrar los ceros de la siguiente función 44 Métodos Numéricos Ing. William Caiza f(x)=(x-3)(x-1)^2 40 20 0 -3 -2 -1 0 1 2 3 4 5 6 -20 -40 -60 Figura 2.21: Multiplicidad Impar Cuadro del método de raíces múltiples Figura 2.22: Raíces Múltiples Ejercicio extra Ponemos los siguientes botones para realizar una gráfica varias funciones. Figura 2.23: Grafica Varias Funciones 45 Métodos Numéricos Ing. William Caiza Entonces utilizamos los siguientes códigos para la ejecución del programa function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) funcion=get(handles.edit1,'String'); f=inline(funcion); x=[-5:0.1:5]; [fx cx]=size(x); for i=1:cx; y(i)=f(x(i)); end plot(x,y); hold on; grid on; plot([-7 7],[0 0],'r-'); plot([0 0],[min(y) max(y)],'r'); title(get(handles.edit1,'String')); xlabel('x'); ylabel('y'); x1=str2double(get(handles.edit2,'String')); y1=str2double(get(handles.edit3,'String')); text(x1,y1,'x'); 1. Declaramos función la cogemos y enviamos, agregando texto al edit 1. 2. Creamos una función f con inline que nos convierte en un carácter la función simbólica, y este carácter lo vamos a convertir a una función que se pueda evaluar con inline. 3. Editamos el rango del gráfico y damos las filas y columnas. 4. Con plot dibujamos un gráfico en (x, y); con hold on y grid on lo graficamos con rejilla y mantenemos encendido. 5. Con title agregamos un título al gráfico actual. 6. Con xlabel/ylabel Agrega una identificación al eje horizontal/vertical del gráfico actual, 7. Finalmente con cogemos nuestros x1 y y1, y le enviamos al edit2 y 3 respectivamente. 46 Métodos Numéricos Ing. William Caiza Ejecutando el programa tenemos: Figura 2.25: Grafica Ejercicio Extra Ejercicios resueltos y propuestos Método de la bisección 1.- Use el método de la bisección para resolver la siguiente función ๐(x) = x โ cos(x) con una tolerancia de 0,001. METODO DE LA BISECCION 5 4 3 2 1 0 -3 -2 -1 -1 0 -2 47 1 2 3 4 5 Métodos Numéricos Ing. William Caiza Ejercicios propuestos 1. Determine las raíces reales de f(x) = โ2 + 7x โ 5x 2 + 16x 3 a) Gráficamente. b) Usando el método de la bisección para localizar la raíz más pequeña. Empleando los valores iniciales de xl = 0 y xu = 1 hasta que el error estumado ฮตa se encuentre debajo de ฮตs =10% Solución: xr=0,34375 2. Determine las raíces reales de la siguiente función: f(x) = โ26 + 82,3x โ 88x 2 + 45,4x 3 โ 9x 4 + 0,65x 5 a) Gráficamente. b) Usando el método de la bisección para localizar la raíz más grande con ฮตs = 10%, empleando los valores iniciales de xl = 0,5 y xu = 1 Solución: xr=0,59375 Falsa posición Ejercicios resueltos: 1.- Planteamiento del problema. Con el método de la falsa posición determine la raíz: c 9.8(68.1) f(c) = (1 โ eโ(68.1)10 ) โ 40 c Solución. Se empieza el cálculo con los valores iniciales xl = 12 y xu = 16. Primera iteración: xl = 12 f(xl) = 6.0699 xu = 16 f(xu) = โ 2.2688 โ2.2688(12 โ 16) xr = 16 โ = 14.9113 6.0669 โ (โ2.2688) Que tiene un error relativo verdadero de 0.89 por ciento. Segunda iteración: f(xl) f(xr) = โ 1.5426 48 Métodos Numéricos Ing. William Caiza Por lo tanto, la raíz se encuentra en el primer subintervalo y xr se vuelve ahora el límite superior para la siguiente iteración, xu = 14.9113 xl = 12 f(xl) = 6.0699 xu = 14.9113 f(xu) = โ 0.2543 โ0.2543(12 โ 14.9113) xr = 14.9113 โ = 14.7942 6.0669 โ (โ0.2543) El cual tiene errores relativos verdaderos y aproximados de 0.09 y 0.79 por ciento. Es posible realizar iteraciones adicionales para hacer una mejor aproximación de las raíces. 2.- Mediante el método de la falsa posición encontrar la raíz de f(x) = sen 10x + cos 3x con una toleracia de 0,001 2,5 2 1,5 1 0,5 0 -2 -1 -0,5 0 1 2 3 4 -1 -1,5 -2 -2,5 Ejercicios propuestos 1. Determine la raíz real de: (0.8 โ 0.3x) x Empleando tres iteraciones en el método de la falsa posición, con valores iniciales de xa = 1 a xu = 3. Calcule el error aproximado ฮตa y el error verdadero ฮตt en cada iteración. Solución: xr = 2,378601 ฮตa = 4,3 ฮตt = 5,7 f(x) = 49 5 Métodos Numéricos Ing. William Caiza 2. Calcule la raíz cuadrada positiva de f(x) = x 2 โ 15 usando el método de la falsa posición con ฮตs = 0.5%. Emplee como valores iníciales xl = 4 y xu = 5. Solución: xr = 3,872979 Método de la Falsa Posición.- Como en el método de la bisección, supongamos que f(a) y f(b) tienen distinto signo. En el método de la bisección se usa el punto medio del intervalo [a,b] para llevar a cabo el siguiente paso. Suele conseguirse una aproximación mejor usando el punto (c,0) en elque la recta secante L pasa por los puntos (a,f(a)) y (b,f(b)) y el eje x. (c,0) L secante Para hallar el punto c, igualamos dos fórmulas para la pendiente m de la recta secante L. b) (๐, 0) ๐ฆ (๐, ๐(๐)) a) (๐, ๐(๐)) ๐ฆ (๐, ๐(๐)) ๐๐ฟ๐ ๐๐๐๐๐ก๐ = ๐(๐) โ ๐(๐) ๐โ๐ (1) ๐๐ฟ๐ ๐๐๐๐๐ก๐ = 0 โ ๐(๐) ๐โ๐ (1)=(2) ๐(๐) โ ๐(๐) โ๐(๐) = โ (๐ โ ๐)(๐(๐) โ ๐(๐)) = โ๐(๐)(๐ โ ๐) ๐โ๐ ๐โ๐ ๐(๐)(๐ โ ๐) ๐(๐)(๐ โ ๐) +๐ โ ๐ =๐โ ๐(๐) โ ๐(๐) ๐(๐) โ ๐(๐) Por lo tanto generalizando tenemos: ๐=โ ๐ถ๐ = ๐๐ โ ๐(๐๐ )(๐๐ โ ๐๐ ) ๐(๐๐ ) โ ๐(๐๐ ) โ๐ = 1,2,3, โฆ โฆ. Las 3 posibilidades son las mismas que en el caso anterior: d) Si f(a) y f(c) tienen distintos signos, entonces hay un 0 en [a,c]. e) Si f(c) y f(b) tienen distinto signo, entonces hay un 0 en [c,b]. f) Si f(c)=0, entonces c es un 0(f). 50 (2) Métodos Numéricos Ing. William Caiza Convergencia del Método de Falsa Posición De la deducción anterior, tenemos que la aproximación ๐ถ๐ , es una sucesión de la forma {๐ถ๐ }โ ๐=0 la cual puede converger. Sin embargo, aunque la anchura del intervalo ๐๐ โ ๐๐ se hace más pequeño, es posible que no tiende a 0; si la curva ๐ฆ = ๐(๐ฅ) es convexa cerca de (r,0), entonces uno de los extremos ๐๐ o ๐๐ permanecen estacionarios y el otro tiende a la solución. El criterio de parada usada en el método de la bisección no es útil por lo tanto se utilizará aproximaciones sucesivas de |๐ถ๐ โ ๐ถ๐โ1 |. Ejemplo Excel: Tabla de valores para la función entre [0.1; 0.7] en pasos de 0.2 Gráfica de la función Si f(c) y f(b) tienen distinto signo, entonces hay un 0 en [c,b]; por lo tanto c=a y b=b. 51 Métodos Numéricos Ing. William Caiza Cuadro del Método de la Falsa Posición Interación de Punto Fijo.- Un punto fijo de una función g es un número p para el cual se cumple: ๐(๐) = ๐ EJEMPLO 1: Sea ๐(๐) = ๐๐ โ ๐๐ + ๐ y x=1. Demuestre que para x=1 es un punto fijo: ๐(1) = 12 โ 2(1) + 2 = 1 โ 2 + 2 = 1 โ ๐(1) = 1 โ ๐ = ๐ โด ๐(๐) ๐๐ ๐๐ ๐๐๐๐๐ ๐๐๐๐ Dado un problema de buscar una raíz f(p)=0, podemos definir una función g, con un punto fijo p de diversas formas, por lo tanto sea ๐(๐ฅ) = ๐ฅ โ ๐(๐ฅ) si la función g tiene un punto fijo en p entonces la función definida es: ๐(๐) = ๐ โ ๐(๐), ๐๐๐๐๐ ๐๐ ๐๐๐๐ ๐๐ ๐ Verifiquemos que f(x) tiene un cero en p Si x=p es punto fijo g(p)=p โ ๐(๐) = ๐ โ ๐(๐) = ๐ โ ๐ = ๐ โด ๐ ๐๐ ๐๐í๐ Ejemplo 2: La ecuación ๐ฅ 3 + 4๐ฅ 2 โ 10 = 0 tiene una raíz única en el intervalo de [1,2], encuentre una expresión x=g(x) โ ๐ท๐๐๐ ๐ฅ 3 + 4๐ฅ 2 โ 10 = 0 52 Métodos Numéricos Ing. William Caiza 4๐ฅ 2 = 10 โ ๐ฅ 3 ๐ฅ(๐ฅ 2 + 4๐ฅ) = 10 10 โ ๐ฅ 3 โ๐ฅ 2 = โ 4 10 โ |๐ฅ| = ±โ 4 10โ๐ฅ 3 ๐ฅ=โ 4 ๐ฅ= ๐ฅ3 10 ๐ฅ 2 + 4๐ฅ (2) ๐ฅ = ๐(๐ฅ) (1) ๐ฅ 3 = 10 โ 4๐ฅ 2 3 3 โ๐ฅ 3 = โ10 โ 4๐ฅ 2 3 ๐ฅ = ๐(๐ฅ) ๐ฅ = โ10 โ 4๐ฅ 2 (3) ๐ฅ = ๐(๐ฅ) VERIFICACIÓN DE LA ECUACIÓN (1): ๐(๐ฅ) = 0 ๐(๐ฅ) = ๐ฅ โ ๐(๐ฅ) 2๐ฅ โ โ10 โ ๐ฅ 3 =0 2 10 โ ๐ฅ 3 ๐(๐ฅ) = ๐ฅ โ โ 2๐ฅ โ โ10 โ ๐ฅ 3 = 0 4 2 (2๐ฅ)2 = (โ10 โ ๐ฅ 3 ) โ10 โ ๐ฅ 3 ๐(๐ฅ) = ๐ฅ โ 2 2๐ฅ โ โ10 โ ๐ฅ 3 ๐(๐ฅ) = 2 4๐ฅ 2 = 10 โ ๐ฅ 3 ๐ฅ 3 + 4๐ฅ 2 โ 10 = 0 Algoritmo de interación del método de punto fijo: ๐ท๐+๐ = ๐(๐ท๐ ) ; ๐ = ๐, ๐, ๐, ๐ โฆ Donde se tendrá que inicializar el algoritmo con ๐0 . El error a calcular será de la forma: ๐ = |๐ฅ๐๐๐ข๐๐ฃ๐ โ ๐ฅ๐๐๐๐ก๐๐๐๐๐ | Ejemplo Excel: 53 Métodos Numéricos Ing. William Caiza ๐(๐) = ๐๐ โ ๐๐ + ๐๐ โ ๐ Despejando x se obtienen 3 ecuaciones: ๐ = โ๐๐ + ๐๐๐ โ ๐ ๐ ๐ = โ๐๐ โ ๐๐๐ + ๐ ๐ โ ๐๐ + ๐ ๐ ๐= ๐๐ (๐) (๐) (๐) Tabla de valores para varias f(x)=g(x). A continuación se explicará que función utilizar. Gráfico de la función original para valores [-3,3] en pasos de 0.3 Gráfico para los valores de la ecuación (1), pero no se toma estos valores porque no se intersectan las rectas 54 Métodos Numéricos Ing. William Caiza Gráfico para la ecuación (2), pero aunque las rectas se intersecten, no convergen por lo que no se utiliza esta función. Esto se demuestra en el cuadro siguiente. Gráfico de la ecuación (3) en la cual las rectas se intersectan y las funciones convergen. Cuadro del Método de Punto Fijo 55 Métodos Numéricos Ing. William Caiza Implementación del Código en Matlab ๏ท Script (Código de Programación) ๏ท Ejecución del Programa 56 Métodos Numéricos Ing. William Caiza Método de Newton-Raphson.- Si f(x), f´(x) y f´´(x) son continuas cercas de una raíz p, esta información sobre la naturaleza de f(x) puede usarse para desarrollar algoritmos que produzcan sucesiones {๐๐ } que converjan a p más rápidamente. Sea y=f(x) los puntos (๐ฅ1 ,0) y (๐ฅ2 , ๐(๐ฅ2 )) entonces la pendiente es igual: ๐= 0 โ ๐(๐๐ฅ ) (1) ; ๐1 โ ๐0 ๐ = ๐ โฒ (๐0 ) (2) Igualando tenemos que: 0 โ ๐(๐๐ฅ ) ๐1 โ ๐0 (๐1 โ ๐0 )๐ โฒ (๐0 ) = โ๐(๐0 ) ๐1 ๐ โฒ (๐0 ) โ ๐0 ๐ โฒ (๐๐ ) = โ๐(๐0 ) ๐(๐0 ) + ๐0 ๐ โฒ (๐0 ) ๐1 = โ ๐ โฒ (๐0 ) ๐(๐0 ) ๐1 = ๐0 โ โฒ ๐ (๐0 ) Este proceso puede repetirse para obtener la sucesión {๐๐ } que converge ap. ๐ โฒ (๐0 ) = FORMULA DEL METODO DE NEWTON RAPSHON MODIFICADO ES: ๐(๐ฅ ) Xi+1 = Xi โ ๐โฒ(๐ฅ๐ ) ๐ TEOREMA: Supongamos que la función ๐ โ ๐ถ 2 [๐, ๐] Esto quiere decir, f elementos de las continuas e integrables en el intervalo [a, b] y que exista un número ๐ โ [๐, ๐] tal que f(p)=0 โ ๐๐ = ๐(๐๐โ1 ) = ๐๐โ1 โ 57 ๐(๐๐โ1 ) ; ๐ = 1,2, โฆ ๐ โฒ(๐๐โ1 ) Métodos Numéricos Ing. William Caiza Ejemplo: Aplicar el método de Newton-Raphson para resolver la siguiente ecuación: ๐ฅ๐ง ๐๐ = ๐. ๐ ln ๐ฅ 2 โ 0.7 = 0 โ ๐(๐ฅ) = ln ๐ฅ 2 โ 0.7 2 ๐ โฒ (๐ฅ) = ๐ฅ ๏ท ๐(๐ ) ๐๐+1 = ๐๐ โ ๐โฒ (๐๐ ) ๐ ๐๐+1 ๏ท ๐๐(22 ) โ 0.7 = 2โ โน ๐๐+1 = 1.3137 2 2 ๐(๐ ) ๐๐+1 = ๐๐ โ ๐โฒ (๐๐ ) ๐ ๐๐+1 = 1.3137 โ ๐ธ๐ ๐ ๐๐ = |๐ฅ๐๐ข๐๐ฃ๐ โ ๐ฅ๐๐๐ก๐๐๐๐๐ | ๐๐(1.31372 ) โ 0.7 โน ๐๐+1 = 1.415 2 1.3137 ๐ธ๐ ๐ ๐๐ = |1.415 โ 1.3137| โ 0.101 ๏ท ๐(๐ ) ๐๐+1 = ๐๐ โ ๐โฒ (๐๐ ) ๐ 58 Métodos Numéricos Ing. William Caiza ๐๐+1 = 1.415 โ ๐ธ๐ ๐ ๐๐ = |๐ฅ๐๐ข๐๐ฃ๐ โ ๐ฅ๐๐๐ก๐๐๐๐๐ | ๐๐(1.4152 ) โ 0.7 โน ๐๐+1 = 1.419 2 1.415 ๐ธ๐ ๐ ๐๐ = |1.419 โ 1.415| โ 0.004 ๏ท ๐(๐ ) ๐๐+1 = ๐๐ โ ๐โฒ (๐๐ ) ๐ ๐๐+1 = 1.419 โ ๐ธ๐ ๐ ๐๐ = |๐ฅ๐๐ข๐๐ฃ๐ โ ๐ฅ๐๐๐ก๐๐๐๐๐ | ๐๐(1.4192 ) โ 0.7 โน ๐๐+1 = 1.419 2 1.419 ๐ธ๐ ๐ ๐๐ = |1.419 โ 1.419| โ 0 59 Métodos Numéricos Ing. William Caiza Ejemplo: ๐ = (๐ โ ๐)(๐ + ๐) ๐ฆ = ๐ฅ 2 + 3๐ฅ โ ๐ฅ โ 3 ๐ฆ = ๐ฅ 2 + 2๐ฅ โ 3 โ๐ โ2 ๐ฟ๐๐๐ = = = โ1 2๐ 2(1) ๐๐๐๐ = (โ1)2 + 2(โ1) โ 3 -1-2-3 = -4. 5 -3 -1 -4 SI x=2 F(3)= 4+4-3 =5 (2 , 5) Encontramos la recta en x=2 m f(2)=2x+2 2(2)+2=6 yโ5=6(xโ2) y โ 5 = 6 x โ 12 1) y = 6x โ 7 x y 0 -7 1 1 60 1 2 Métodos Numéricos Ing. William Caiza 1) En y = 0 0 =6x โ 7 7= 6x X=7/6 Ahora encuentro la recta tg en x= 7/6. (7/6 , f(7/6)) 2 ๐(7โ6) = (7โ6) + 2(7โ6) โ 3 49/36 + 7/3 -3 49 + 84 โ 108 = 36 ๐๐ = ๐๐ ๐(7โ6) = 2(7โ6) + 2 7 7+6 ๐๐ = +2= = 3 3 ๐ ๐๐ ๐๐ ๐ = (๐ โ ) ๐ ๐ ๐ 13 13(7) 25 ๐ฆ= โ + 3 18 36 ๐โ ๐๐ ๐๐๐ ๐โ ๐ ๐๐ Si y = 0 en 2 13 157 0= ๐ฅโ 3 36 157 13 = ๐ฅ 36 3 ๐๐๐ ๐= = ๐. ๐๐๐ ๐๐๐ ๐) ๐ = 61 Métodos Numéricos Ing. William Caiza CAPITULO III SISTEMAS DE ECUACIONES LINEALES INTRODUCCIÓN Matriz escalonada Para precisar las ideas sobre la forma especial de los sistemas que pueden resolverse por el método de sustitución hacia atrás, se utiliza el concepto de matriz escalonada. Así se diría que un sistema con esta forma especial tiene como matriz aumentada una matriz en la forma escalonada. Definición (Matriz escalonada) Sea A una matriz n×m. A es escalonada si es nula o si satisface las tres condiciones siguientes: i. El primer elemento no nulo de cada fila, si existe, es un 1. ii. El primer 1 de la segunda fila y sucesivas está a la derecha del primer 1 de la fila anterior. iii. Bajo del elemento 1 hay ceros. iv. Si tiene filas nulas โcompuestas sólo de cerosโ estas aparecen en la parte inferior de la matriz, abajo de las filas no nulas. Definición (Matriz escalonada reducida) Una matriz A, n × m, es escalonada reducida si es escalonada y además todo elemento en una columna, arriba del primer uno de cualquier fila, es cero. Es decir, la forma escalonada reducida se obtiene de una forma escalonada, haciendo cero los elementos de la matriz arriba de los primeros unos de cada fila. Definición (Sistemas equivalentes) Dos sistemas de ecuaciones lineales con m incógnitas son equivalentes si tienen el mismo conjunto solución. 62 Métodos Numéricos Ing. William Caiza De esta definición se tiene que si un sistema de ecuaciones lineales es el resultado de aplicarle operaciones elementales a otro, ambos sistemas son equivalentes. El método de reducción gaussiana permite resolver sistemas de ecuaciones lineales, explotando la idea de equivalencia. Es decir, transformando el sistema mediante operaciones elementales, hasta obtener uno cuya forma permite resolverlo mediante โsustitución hacia atrásโ. Matrices equivalentes y rango Para caracterizar los sistemas de ecuaciones lineales que tienen solución y aquellos que no la tienen se introduciría la noción de rango de una matriz, lo cual requeriría ampliar un poco la notación de sistemas. Todo sistema de ecuaciones lineales se puede notar AX = b, b es el vector de constantes en las ecuaciones a la derecha y X es el vector de incógnitas del sistema, esta forma de escritura Ax = b se conocerá como escritura matricial del sistema. Y en ella cada ecuación i del sistema se representa como: el producto del vector fila i de la matriz A multiplicado por el vector columna x igual a la componente i del vector b. Definición (Matrices equivalentes) Sean A, B matrices n×m, se dice que la matriz A es equivalente por filas a B (o simplemente equivalente), si B se obtiene de A por aplicación de operaciones elementales de renglón. Se escribe A -> B. Aunque la idea de equivalencia en matrices es la misma que en sistemas, presenta una pequeña diferencia. Dos sistemas de ecuaciones lineales en m variables pueden ser equivalentes, aún cuando tengan distinta cantidad de ecuaciones. Sin embargo, dos matrices aumentadas no son equivalentes si tienen un número de filas (ecuaciones) distinto, aún cuando representen sistemas equivalentes. 63 Métodos Numéricos Ing. William Caiza Aunque es claro, en este caso, que agregando filas nulas a la que tenga menos filas, se pueden transformar en matrices equivalentes. Teorema Si A es una matriz m×n entonces existe una única matriz B con la forma escalonada reducida que es equivalente a A. Definición (Rango de A) Sea A una matriz n×m, se llama rango de A y se denota Rng (A) al número de filas no nulas de la matriz en la forma escalonada reducida equivalente a A. Así para determinar el rango de una matriz A es necesario calcular su forma escalonada reducida, sin embargo, observe que cualquier matriz escalonada equivalente a A tiene el mismo número de filas no nulas que la escalonada reducida. Esto porque la escalonada reducida se obtiene de la escalonada aplicando más operaciones, las cuales no modifican el número de filas no nulas. Caracterización de los sistemas, por su solución 1.- Sistemas que no tienen solución El problema de decidir si un sistema de ecuaciones lineales tiene solución o no, es el problema de reconocer si tiene ecuaciones inconsistentes o no. Y esto se reconoce fácilmente cuando el sistema tiene la forma escalonada y se observa al menos una ecuación de la forma: 0x1 + 0x2 + · · · + 0xn = 1 También resulta fácil de reconocer que hay ecuaciones inconsistentes, en un sistema en su forma inicial, cuando dos de ellas tienen iguales coeficientes asociados a las mismas variables y la constante a la derecha es distinta. Además Un sistema de ecuaciones puede contener ecuaciones superfluas o redundantes, en el sentido de que las restricciones que establecen ya están contempladas en las otras ecuaciones. Y en general podemos reconocer que: Rng (A) < Rng (A|b) <-> Ax = b tiene ecuaciones inconsistentes. 64 Métodos Numéricos Ing. William Caiza 2.- Sistemas con solución Un sistema Ax = b con solución se dice que es consistente y, naturalmente, es un sistema que no tiene ecuaciones inconsistentes. La ausencia de ecuaciones inconsistentes se refleja en que: la forma escalonada de la matriz del sistema A y la forma escalonada de la matriz aumentada (A|b) tienen el mismo número de filas no nulas. Y esto es equivalente a establecer que: Rng (A) = Rng (A|b) Sistemas con solución única Un sistema n × m, Ax = b, tiene solución única, si además de la condición anterior, el sistema en la forma escalonada tiene tantas ecuaciones no superfluas, como variables. O lo que es lo mismo: โข En cada columna de la forma escalonada de la matriz del sistema, hay un primer uno de alguna fila. โข O, el número de filas no nulas en la matriz del sistema en su forma escalonada es igual a m, el número de variables del sistema. โข O, Rng (A) = Rng (A|b) = m. Sistemas con infinito número de soluciones Finalmente, un sistema n×m, Ax = b, tiene un número infinito de soluciones si además de tener solución, el número de filas no nulas de la forma escalonada de la matriz del sistema es menor que m, el número de variables (o columnas de la matriz del sistema). Lo que es equivalente a establecer que: Rng (A) = Rng (A|b) < m. Esto significa que hay columnas, en la forma escalonada de la matriz del sistema, que no contienen algún primer uno. El número de estas columnas corresponde al número de parámetros con que se describe el conjunto solución del sistema y es igual a mโ Rng (A). Sistemas homogéneos 65 Métodos Numéricos Ing. William Caiza Si las constantes a la derecha del igual en todas las ecuaciones son cero, se dice que el sistema es homogéneo, es decir, Ax = b se llama homogéneo si b = 0 es el vector columna de ceros. En este caso, se tiene que Rng (A) = RngA|0) Porque ninguna operación elemental sobre las filas de (A|0), puede cambiar los ceros que forman la última columna de (A|0). Así, en un sistema homogéneo no pueden existir ecuaciones inconsistentes. Además se reconoce fácilmente que x1 = x2 = . . . xm = 0, es una solución, por lo tanto los sistema homogéneos siempre tienen solución. Teorema: Todo sistema homogéneo Ax = 0, n×m, es consistente: a) x = 0m, el vector columna de m ceros, es una solución del sistema. b) Si Rng (A) = m entonces el sistema tiene como única solución al vector nulo: x = 0m. c) Si Rng (A) < m entonces el sistema tiene infinitas soluciones que dependen de m โ Rng (A) parámetros. Interpretación del rango de una matriz Consideremos una matriz A cualquiera n × m, y el sistema homogéneo Ax = 0. Observemos que: 1. Cada ecuación que produzca un primer uno, en la forma escalonada de la matriz del sistema, es una ecuación que aporta información para resolver el sistema Ax = 0, que no está contemplada en las otras ecuaciones. 2. En tanto que una ecuación que termine como una fila de ceros en la escalonada reducida equivalente a A, es una ecuación que puede omitirse del sistema Ax = 0 sin que se pierda nada, es una ecuación redundante o superflua. 3. Por otra parte Rng (A) es el número de filas no nulas de la escalonada reducida equivalente a A, o sea, el número de primeros 1 de cualquier matriz escalonada equivalente A. Así, el Rng (A) informa del número de ecuaciones que realmente aportan información para resolver el sistema homogéneo Ax = 0, o en otros términos, El Rng (A) es: 66 Métodos Numéricos Ing. William Caiza โข El máximo número de ecuaciones del sistema Ax = 0 que no incluyen ecuaciones redundantes. โข Y el mínimo número de ecuaciones que se deben preservar en el sistema Ax = 0 para obtener un sistema equivalente. Teorema Si A es una matriz n × n, las siguientes proposiciones son equivalentes. i) Rng (A) = n. ii) A es equivalente a la identidad. iii) Ax = 0 tiene solución única. iv) Ax = b tiene solución única para todo b elemento de Rn. Operaciones Elementales de Fila 1) ๐น๐ โ ๐๐น๐ ; ๐ ๐๐ ๐๐๐๐ ๐ก๐๐๐ก๐. 2) ๐น๐ โ ๐น๐ ± ๐น๐ 3) ๐น๐ โ ๐1 ๐น๐ ± ๐2 ๐น๐ Cálculo de la matriz inversa Algoritmo [๐ด๐ โฎ ๐ผ๐ ] โ [๐ด๐ ๐จโ๐ = โฎ ๐ ๐ ] โ [๐ด๐+1 โฎ ๐ ๐+1 ] โ โฏ โ [๐ผ๐ โฎ ๐ด๐ ] [๐จ๐ ๐(๐จ)]๐ , ๐ ๐๐๐ ๐ |๐จ| โ ๐ |๐จ| Ejemplo: Calcular la matriz inversa: 1 โ1 3 ๐ด=[ 2 1 4] โน |๐ด| = (1 + 12 + 4) โ (โ3 + 8 โ 2) โ |๐ด| = 17 โ 3 = 14 โ1 2 1 67 โ |๐ด| โ 0 Métodos Numéricos Ing. William Caiza 1 โ1 3 1 0 [2 1 4| 0 1 โ1 2 1 0 0 1 0 1 โ1 3 1 0 0 1 0] ๐น2 โ ๐น2 โ 2๐น1 โ [0 3 โ2| โ2 1 0] ๐น2 โ ๐น2 3 1 ๐น3 โ ๐น3 โ 2๐น1 0 1 4 1 0 1 โ1 โ [0 1 0 1 1 0 โ 0 1 0 0 [ 3 1 2 2 โ |โ 3 3 4 1 0 1 3 0 1 0 0 ๐น โ๐น +๐น 1 1 2 โ 0 1 0] ๐น3 โ ๐น3 โ ๐น2 1 [0 0 1 7 1 3 3 3 2| 2 1 โ โ 3| 3 3 14 5 1 โ 3 3 3 1 1 7 7 โ 0 2 3 ๐น1 โ ๐น1 โ ๐น3 1 0 3 3 2 1 2 โ 0 1 2|| โ 0 ๐น2 โ ๐น2 + ๐น3 3 3 โ 0 0 3 3 5 1 3 1 โ [ 14 14 14] 1 1 1 โ 2 2 2 1 โ1 3 1 3 2 1 =[ 2 โ [0 1 4] โ โ 7 7 7 โ1 2 1 0 5 1 3 [ 14 โ 14 14 ] โ RANGO DE UNA MATRIZ x โ 9y + 5z = 33 x + 3y โ z = -9 xโy+z=5 1 โ9 5 1 โ9 5 1 โ9 5 2 ) ๐2/2 (0 2 โ1) 3 โ1) ๐2 โ ๐3 (0 4 1 โ1 1 ๐3 โ ๐1 0 8 โ4 ๐3/4 0 โ2 1 ๐3 + ๐2 1 โ9 5 (0 2 โ1) ๐ ๐ด๐๐บ๐ (๐ด) = 2 0 0 0 (1 ๐๐ด๐๐ ๐ผ๐ ๐ด๐๐๐ธ๐๐๐ด๐ท๐ด 68 0 1] 3 ๐น3 โ ๐น3 ( ) 14 1 1 1 โ 2 2 2 0 3 2 1 0| โ 7 7 1 7 5 1 3 โ 14 14 14 ] โ Verificación: ๐ด โ ๐ดโ1 0 0 0 1 0] 0 1 Métodos Numéricos Ing. William Caiza 1 โ9 5 33 1 โ9 5 33 3 โ1 |โ9) ๐2 โ ๐1 (1 12 โ6 |โ42) ๐2/6 1 โ1 1 5 1 โ1 1 5 (1 1 โ9 5 33 1 โ9 5 33 (0 2 โ1 |โ7) 2 โ1 |โ7) 1 โ1 1 5 ๐3 + ๐2 1 1 0 โ2 ๐3 โ ๐1 (0 1 โ9 5 33 1 โ9 5 33 (0 2 โ1 |โ7) 2 โ1 | โ7 ) 1 10 โ5 โ35 ๐3/5 0 2 โ1 โ7 ๐3 โ ๐2 (0 1 โ9 5 33 2 โ1 |โ7) ๐ ๐ด๐๐บ๐ (๐๐ด๐) = 2 < ๐, ๐๐๐๐๐ ๐, ๐๐ ๐๐ ๐๐ข๐๐๐๐ ๐๐ ๐๐๐๐๐ 0 0 0 0 (0 => โ ๐๐๐๐๐๐๐ก๐๐ ๐ ๐๐๐ข๐๐๐๐๐๐ 2๐ฆ โ 1 = 7 X โ 9y 5 z = 33 x = 33 + 9y โ 5z 7+๐ง ๐ฅ = 33 + 9 ( 2 ) โ 5๐ง Donde ๐ฅ = 33 + 2y = 7 + z ๐ฅ = 33 + ๐= ๐+๐ ๐= ๐ ๐๐๐ ๐ 63 2 63 2 ๐ 9 + 2 ๐ง โ 5๐ง 1 โ 2๐ง โ ๐๐ Sea z = t 129 1 ๐ฅ = 2 โ 2๐ก ๐ก { ๐ฆ = 7+๐ก , ๐๐ธ๐๐ธ๐ ๐ธ๐ ๐ถ๐๐ธ๐๐๐ด ๐๐๐ธ ๐๐ด๐ ๐ด ๐๐๐ด ๐๐ด๐๐ ๐ผ๐ ๐ผ๐๐๐ธ๐ ๐๐ด ๐ท๐ธ๐ต๐ธ: 2 ๐ง=๐ก Implementación del Código en Matlab ๏ท Script (Código del Programa) 69 Métodos Numéricos Ing. William Caiza Ejecución del Programa Todo sistema de ecuaciones se puede escribir de la forma: ๐ด๐ฅ = ๐ต Ejemplo: 70 Métodos Numéricos Ing. William Caiza 3 2 ๐ด = [โ1 1 โ1 3 1 1 ] ; ๐ = [ โ1 2] 1 โ1 ๐ด๐ฅ = ๐ 3 2 [โ1 1 โ1 3 3๐1 + 2๐2 + ๐3 1 ๐1 1 1 โ1] [๐2 ] = [ 2 ] โ [ โ๐1 + ๐2 โ ๐3 ] = [ 2 ] โ๐1 + 3๐2 + ๐3 1 ๐3 โ1 โ1 3๐1 + 2๐2 + ๐3 = 1 { โ๐1 + ๐2 โ ๐3 = 2 โ๐1 + 3๐2 + ๐3 = โ1 DEFINICIÓN: Se dice que una matriz ๐ด = [๐๐๐ ]๐ triangular superior cuando sus elementos verifican ๐๐๐ = 0, para โ ๐ > ๐ Se dice que una matriz ๐ด = [๐๐๐ ]๐ , es triangular inferior cuando sus elementos verifican ๐๐๐ = 0, para โ ๐ < ๐. Ejemplo: ๐11 ๐ด = [๐21 ๐31 ๐12 ๐22 ๐32 ๐13 ๐23 ] ๐33 ๐๐๐ โ ๐ < ๐ ๐๐๐ โ ๐ = ๐ ๐๐๐ โ ๐ > ๐ MATRIZ TRIANGULAR SUPERIOR 1 ๐ด = [0 0 2 2 0 1 โ1] 1 [๐๐๐ ] = 0 โ โ๐ > ๐ MATRIZ TRIANGULAR INFERIOR 71 Métodos Numéricos Ing. William Caiza 1 ๐ด = [2 3 0 โ1 โ2 0 0] 4 [๐๐๐ ] = 0 โ โ๐ < ๐ Si A es una matriz triangular superior entonces se dice que el sistema ๐ด๐ฅ = ๐ es un sistema triangular superior de ecuaciones lineales: (1) ๐11 ๐ฅ1 + ๐12 ๐ฅ2 + ๐13 ๐ฅ3 + โฏ + ๐1๐ ๐ฅ๐ = ๐1 ๐22 ๐ฅ2 + ๐23 ๐ฅ3 + โฏ + ๐2๐ ๐ฅ๐ = ๐2 โฑ โฎ โฑ โฎ ๐๐โ2,๐โ2 ๐ฅ๐โ2 + ๐๐โ2,๐โ1 ๐ฅ๐โ1 + ๐๐โ2,๐ ๐ฅ๐ = ๐๐โ2 ๐๐โ1,๐โ1 ๐ฅ๐โ1 + ๐๐โ1,๐ ๐ฅ๐ = ๐๐โ1 ๐๐๐ ๐ฅ๐ = ๐๐ Teorema de Sustitución Regresiva Supongamos que tenemos el sistema Ax=b, un sistema triangular superior como en (1). Si ๐๐๐ โ 0 ; โ ๐ = 1,2, โฆ , ๐; entonces existe una solución única de (1). โ ๐ท๐๐๐๐ ๐ก๐๐๐๐ó๐ ๐๐ ๐๐๐๐๐ ๐๐๐๐ ๐ก๐๐ข๐๐ก๐๐ฃ๐ La solución es fácil, la última ecuación solo contiene la incógnita ๐๐ , es decir: ๐๐ ; ๐ โ 0 ๐๐๐ ๐๐ Conocido ๐๐ , podemos utilizarla para encontrar ๐๐โ1 ๐๐โ1 โ ๐๐โ1,๐ ๐๐ ๐๐โ1 = ๐๐โ1,๐โ1 Así: ๐๐โ2 โ ๐๐โ2,๐โ1 ๐๐โ1 โ ๐๐โ2,๐ ๐๐ ๐๐โ2 = ๐๐โ2,๐โ2 ๐๐โ3 โ ๐๐โ2,๐โ2 ๐๐โ2 โ ๐๐โ3,๐โ1 ๐๐โ1 โ ๐๐โ3,๐ ๐๐ ๐๐โ3 = ๐๐โ3,๐โ3 ๐๐ = Generalizando tenemos: ๐๐ โ โ๐๐=๐+1 ๐๐๐ ๐๐ ๐๐ = ๐๐๐ Ejemplo Aplicando el método de sustitución hacia atrás de una matriz 4X4 72 Métodos Numéricos Ing. William Caiza ๐11 ๐ฅ1 + ๐12 ๐ฅ2 + ๐13 ๐ฅ3 + ๐14 ๐ฅ4 = ๐1 0 + ๐22 ๐ฅ2 + ๐23 ๐ฅ3 + ๐24 ๐ฅ4 = ๐2 0 +0 + ๐33 ๐ฅ3 + ๐34 ๐ฅ4 = ๐3 0 +0 + ๐43 ๐ฅ3 + ๐44 ๐ฅ4 = ๐4 ๐4 = ๐3 = ๐4 ๐44 (Constante y conocido) ๐3 โ ๐34 ๐4 ๐33 ๐2 โ ๐23 ๐3 โ ๐24 ๐4 ๐2 โ (๐23 ๐3 + ๐24 ๐4 ) = ๐22 ๐22 ๐1 โ ๐12 ๐2 โ ๐13 ๐3 โ ๐14 ๐4 ๐1 โ (๐12 ๐2 + ๐13 ๐3 +) ๐1 = = ๐11 ๐22 ๐2 = Implementación del Código en Matlab del método de sustitución regresiva de una matriz de 4x4 ๏ท Script (Código del Programa) Ejecución del Programa 73 Métodos Numéricos Ing. William Caiza Implementación del Código en Matlab ๏ท Script (Código del Programa) 74 Métodos Numéricos Ing. William Caiza Ejecución del Programa TEOREMA: Un sistema lineal ๐ด๐ฅ = ๐ต, siendo ๐ด๐ tiene solución ínica si y solo si det(๐ด) โ 0. TEOREMA: Si una matriz ๐ด๐ es triangular superior o inferior, entonces el det(๐ด) = โ๐๐=1 ๐๐๐ ELIMINACIÓN GAUSSIANA Y PIVOTEO Necesitamos resolver el sistema ๐ด๐ฅ = ๐ต con n ecuaciones y n incógnitas. El objetivo es construir un sistema triangular equivalente ๐๐ฅ = ๐ que podamos resolver usando el método de sustitución regresiva. OBSERVACIÓN: Se dice que 2 sistemas de orden n son equivalentes cuando tienen el mismo conjunto de soluciones (es decir se realizaron operaciones de fila o columna en la matriz original) TEOREMA: OPERACIONES ELEMENTALES CON LAS FILAS Cualquiera de las operaciones elementales con las filas aplicada a la matriz ampliada produce un sistema lineal equivalente. ๐11 [๐ด|๐] = [๐21 ๐๐1 ๐12 โฆ ๐1๐ ๐1 ๐22 โฆ ๐2๐ |๐2 ] ๐๐2 โฆ ๐๐๐ ๐๐ 75 Métodos Numéricos Ing. William Caiza DEFINICIÓN: PIVOTEO Y MULTIPLICADORES Resolver el siguiente sistema de ecuaciones mediante pivoteo y multiplicadores: ๐1 + 2๐2 + ๐3 + 4๐4 = 13 2๐1 + 0๐2 + 4๐3 + 3๐4 = 28 4๐1 + 2๐2 + 2๐3 + ๐4 = 20 โ3๐1 + ๐2 + 3๐3 + 2๐4 = 6 Dado el siguiente multiplicador (columna) ๐ ๐๐๐ = ๐๐๐ , ๐ = ๐, ๐, ๐, โฆ ๐๐ Multiplicador Pivote 1 [2 4 โ3 ๐๐ ๐ = 2 โ ๐21 = ๐๐ ๐ = 3 โ ๐31 = Multiplicador 2 0 2 1 1 4 2 3 ๐21 2 = = 2 ; ๐น2 โ ๐น2 โ ๐21 ๐น1 ๐11 1 1 2 1 0 โ4 2 [ 4 2 2 โ3 1 3 4 13 3| 28] 1 20 2 6 4 13 โ5| 2 ] 1 20 2 6 ๐31 4 = = 4 ; ๐น3 โ ๐น3 โ ๐31 ๐น1 ๐11 1 1 [0 0 โ3 ๐๐ ๐ = 4 โ ๐41 = ๐ญ๐ โ ๐ญ๐ โ ๐๐,๐ ๐ญ๐ 2 1 โ4 2 โ6 โ2 1 3 13 4 โ5 | 2 ] โ15 โ32 6 2 ๐41 โ3 = = โ3 ; ๐น4 โ ๐น4 โ ๐41 ๐น1 ๐11 1 76 Fila Pivote Métodos Numéricos Ing. William Caiza 1 [0 0 0 2 13 1 4 โ4 2 โ5 | 2 ] โ6 โ2 โ15 โ32 45 7 6 14 Segunda columna ๐๐๐ = ๐๐ ๐ = 3 โ ๐32 = 1 0 [ 0 0 ๐32 โ6 3 = = ; ๐น3 โ ๐น3 โ ๐32 ๐น2 ๐22 โ4 2 ๐42 7 7 = = โ ; ๐น4 โ ๐น4 โ ๐42 ๐น2 ๐22 โ4 4 2 1 4 13 โ4 2 โ5 2 | ] 0 โ5 โ 15โ2 โ35 0 19โ2 21โ4 97โ2 Tercera columna ๐๐๐ = ๐๐ ๐ = 4 โ ๐43 1 0 [ 0 0 ๐ญ๐ โ ๐ญ๐ โ ๐๐๐ ๐ญ๐ 2 1 4 13 โ4 2 โ5 | 2 ] 0 โ5 โ 15โ2 โ35 45 7 6 14 ๐๐ ๐ = 4 โ ๐42 = 1 0 [ 0 0 ๐๐๐ , ๐ = ๐, ๐, โฆ ๐๐๐ ๐๐๐ , ๐ = ๐, โฆ ๐๐๐ ๐ญ๐ โ ๐ญ๐ โ ๐๐๐ ๐ญ๐ 19 ๐43 19 = = 2 =โ ; ๐น โ ๐น4 โ ๐43 ๐น3 ๐33 โ5 10 4 2 1 4 13 โ4 2 โ5 | 2 ] 0 โ5 โ 15โ2 โ35 โ18 0 0 9 โ9๐4 = โ18 โ ๐ฟ๐ = ๐ 15 15 โ5๐3 โ ๐4 = โ35 โ โ5๐3 โ (2) = โ35 โ ๐ฟ๐ = ๐ 2 2 โ4๐2 + 2๐3 โ 5๐4 = 2 โ โ4๐2 + 2(4) โ 5(2) = 2 โ ๐ฟ๐ = โ๐ ๐1 + 2๐2 + ๐3 + 4๐4 = 13 โ ๐1 + 2(โ1) + 4 + 4(2) = 13 โ ๐ฟ๐ = ๐ Ejemplo2 77 Métodos Numéricos Ing. William Caiza Resolver el siguiente sistema de ecuaciones mediante pivoteo y multiplicadores: ๐๐๐ = ๐๐๐ , ๐ = ๐, ๐ โฆ ๐๐๐ 3๐ฅ โ 2๐ฆ + ๐ง = 2 ๐ฅ + ๐ฆ โ ๐ง = โ1 โ๐ฅ + 2๐ฆ + 3๐ง = 1 ๐ญ๐ โ ๐ญ๐ โ ๐๐,๐ ๐ญ๐ Calculemos el rango 3 โ2 1 [1 1 โ1] โ1 2 3 Primera columna ๐๐ ๐ = 2 โ ๐21 = ๐21 1 1 = = ; ๐น2 โ ๐น2 โ ๐21 ๐น1 ๐11 3 3 3 โ2 1 5 4 [0 โ ] 3 3 โ1 2 3 ๐๐ ๐ = 3 โ ๐31 = 3 โ2 1 5 4 0 โ 3 3 4 10 [0 3 3 ] ๐31 โ1 1 = = โ ; ๐น3 โ ๐น3 โ ๐31 ๐น1 ๐11 3 3 Segunda columna ๐๐๐ = ๐๐ ๐ = 3 โ ๐32 = ๐๐๐ , ๐ = ๐ ๐ญ๐ โ ๐ญ๐ โ ๐๐๐ ๐ญ๐ ๐๐๐ ๐32 โ6 3 = = ; ๐น3 โ ๐น3 โ ๐32 ๐น2 ๐22 โ4 2 3 โ2 1 5 4 0 โ 3 3 22 [0 0 5 ] Calculemos el rango de la matriz ampliada 78 Métodos Numéricos Ing. William Caiza 3 โ2 1 2 [1 1 โ1| โ1] โ1 2 3 1 ๐๐๐ = ๐๐๐ , ๐ = ๐, ๐ โฆ ๐๐๐ ๐ญ๐ โ ๐ญ๐ โ ๐๐,๐ ๐ญ๐ Primera columna ๐๐ ๐ = 2 โ ๐21 = 3 โ2 [ 0 5/3 โ1 2 ๐21 1 1 = = ; ๐น2 โ ๐น2 โ ๐21 ๐น1 ๐11 3 3 2 1 โ4/3| โ5/3] 5/3 3 ๐๐ ๐ = 3 โ ๐31 = ๐31 โ1 1 = = โ ; ๐น3 โ ๐น3 โ ๐31 ๐น1 ๐11 3 3 3 โ2 1 2 [0 5/3 โ4/3| โ5/3] 0 4/3 10/3 5/3 Segunda columna ๐๐๐ , ๐ = ๐ ๐ญ๐ โ ๐ญ๐ โ ๐๐๐ ๐ญ๐ ๐๐๐ ๐32 โ6 3 ๐๐ ๐ = 3 โ ๐32 = = = ; ๐น3 โ ๐น3 โ ๐32 ๐น2 ๐22 โ4 2 ๐๐๐ = 3 โ2 1 2 0 5/3 โ4/3 โ5/3 [ | ] 0 0 22/5 1/3 El rango de A Ran(A)=3 Ran(A|b)=3 m=3 โด ๐๐ ๐๐๐๐๐๐๐ ๐๐๐๐๐ ๐๐๐ ๐๐๐๐๐ ๐๐๐๐๐๐ó๐ ELIMINACIÓN DE GAUSS-JORDAN DEFINICIÓN: es un algoritmo del álgebra lineal para determinar las soluciones de un sistema de ecuaciones lineales, encontrar matrices e inversas. Un sistema de ecuaciones se resuelve por el método de Gauss cuando se obtienen sus soluciones mediante la reducción del sistema dado a otro equivalente en el que cada ecuación tiene una incógnita 79 Métodos Numéricos Ing. William Caiza menos que la anterior. El método de Gauss transforma la matriz de coeficientes en una matriz triangular superior. El método de Gauss-Jordan continúa el proceso de transformación hasta obtener una matriz diagonal. ALGORITMO: 1. Ir a la columna no cero extrema izquierda 2. Si el primer renglón tiene un cero en esta columna, intercambiarlo con otro que no lo tenga 3. Luego, obtener ceros debajo de este elemento delantero, sumando múltiplos adecuados del renglón superior a los renglones debajo de él 4. Cubrir el renglón superior y repetir el proceso anterior con la submatriz restante. Repetir con el resto de los renglones (en este punto la matriz se encuentra en la forma de escalón) 5. Comenzando con el último renglón no cero, avanzar hacia arriba: para cada renglón obtener un 1 delantero e introducir ceros arriba de éste sumando múltiplos correspondientes a los renglones correspondientes Una variante interesante de la eliminación de Gauss es la que llamamos eliminación de Gauss-Jordan, esta consiste en ir obteniendo los 1 delanteros durante los pasos uno al cuatro así para cuando estos finalicen ya se obtendrá la matriz en forma escalonada reducida EJERCICIOS: 1. Resolver el siguiente sistema mediante Gauss-Jordan ๐๐ + ๐๐ + ๐ = ๐ ๐๐ โ ๐๐ โ ๐๐ = โ๐ ๐๐ โ ๐ โ ๐ = ๐ 3 3 1 1 2 2 3 1 1 ๐น 1 ๐น โ ๐น โ 3๐น 13 1 2 1 2 2| 2] 2 [3 โ2 โ4| โ3] [ 0 โ 2 3 โ2 โ4 โ3 ๐น3 โ ๐น3 โ 5๐น1 2 5 โ1 โ1 4 17 5 โ1 โ1 4 [0 โ 2 1 80 1 1 2 2 2 11| 9 โ โ ๐น2 โ ๐น2 (โ ) 13 2| 2 7 3 โ 2 2 ] Métodos Numéricos Ing. William Caiza 1 0 [0 ๐น1 ๐น2 3 2 1 1 2 2 11| 9 1 โ โ 13| 13 17 7 3 โ โ 2 2 2 ] 10 โ ๐น1 + ๐น3 1 0 13 [0 1 11 โ ๐น2 โ ๐น3 0 0 13 1 3 ๐น1 โ ๐น1 โ ๐น2 2 0 17 ๐น3 โ ๐น3 + ๐น2 2 [0 0 1 0| โ1] 1 2 10 7 โ 13 13 1 0 13 11| 9 ๐น3 โ ๐น3 ( ) 1 โ โ 48 0 1 13| 13 48 96 [0 0 0 13 13 ] 0 โ 10 7 โ 13 13 11|| 9 โ โ 13 13 1 2 ] โ โ๐=๐ ๐ = โ๐ ๐=๐ 2. Resolver el siguiente sistema mediante Gauss-Jordan ๐๐ โ ๐๐ + ๐๐ = ๐ ๐๐ + ๐๐ โ ๐ = ๐ 2 5 1 3 3 [ | 3 ] 16 4 2 โ3 โ 3 3 2 5 5 3 1 1 0 3 1 โ3 2 3 8 | 2 ] ๐น2 โ ๐น2 ( ) [ | ] ๐น1 โ ๐น1 + ๐น2 [ 9 1 1 9 16 3 0 1 โ โ โ 0 1 โ 16 4 16 4 1 ๐น1 1 โ 2 1 5 โ2 3 5 | ]๐น โ [ | 3] ๐น2 โ ๐น2 โ 2๐น1 [ 3 4 โ1 2 1 3 2 4 โ1 2 0 ๐ ๐ โ ๐ ๐ ๐ ๐ ๐ ๐= ๐โ ๐๐ ๐ ๐=๐ 5 3 3 5 ๐ฅ+ ๐ง= โ๐ฅ= โ ๐ง 8 2 2 8 9 1 9 1 ๐ฆโ ๐ง=โ โ๐ฆ= ๐งโ 16 4 16 4 ๐ง=๐ก ๐= โด ๐ฌ๐ ๐๐๐๐๐๐๐ ๐๐๐๐๐ ๐๐๐๐๐๐๐๐๐ ๐๐๐๐๐๐๐๐๐๐ 3. Obtener ฮป para que el sistema de ecuaciones tenga: a) Solución única b) Infinitas soluciones c) No tenga solución ๐๐ + ๐ = ๐ ๐ + ๐๐ฒ = ๐ 81 โ Métodos Numéricos Ing. William Caiza 1 1 3 1 ๐น ๐น2 1 1 1 1 2 1 6 3 3 2 [ | ]๐น โ [ | ]๐น โ [ 2| 4] ๐น2 โ ๐น2 โ ๐น1 [ 2| 2 ] ๐น1 1 1 2 1 1 ฮป 4 1 2 ฮป โ 2 0 1 2ฮป โ 1 1 ฮป 0 ฮปโ 2 2 3 โ 1 1 1 0 2(ฮป โ 1) โ ๐น1 โ ๐น2 | โ 2ฮป โ 1 โ 0 โ ฮป โ 0 1 2 2 2 [ 2ฮป โ 1 ] 1 ๏ท ๐๐ ฮป = ๏ท ๐๐ ฮป โ 2 โ ๐๐ฅ๐๐ ๐ก๐ ú๐๐๐๐ ๐ ๐๐๐ข๐๐ó๐ ๏ท 2 1 โ ๐๐ ๐๐ฅ๐๐ ๐ก๐ ๐ ๐๐๐ข๐๐ó๐ ๐๐ ๐๐ฅ๐๐ ๐ก๐ ๐๐๐๐๐๐๐ก๐๐ ๐ ๐๐๐ข๐๐๐๐๐๐ 4. Obtener ฮป para que el sistema de ecuaciones tenga: d) Solución única e) Infinitas soluciones f) No tenga solución ๐๐ + ๐๐ฒ = ๐ ๐๐ฑ + ๐๐ฒ = ๐ ฮป 1 ฮป 1 1 ๐น1 2 ฮป 1 2 | 2 ]๐น โ ๐น ( 2 ) [ | ] ๐น1 โ [1 2| 2] ๐น2 โ ๐น2 โ ฮป๐น1 [ 2 4 โ ฮป2 2 โ ฮป 2 ฮป 2 1 2 4 โ ฮป2 ฮป 2 1 0 2 2 1 1 ฮป ฮป 1 0 2+ฮป [1 2| 2 ] ๐น1 โ ๐น1 โ ๐น2 [ | ] 1 0 1 1 2 0 1 2+ฮป 2+ฮป โ 4 โ ฮป2 โ 0 โ 4 โ ฮป2 โ โฮป2 โ โ4 โ ฮป โ 2 |๐| = ๐ i. ๐๐ ฮป โฅ 0 โ |ฮป| = ฮป โ |ฮป| = 2 โ ฮป = 2 ii. ๐๐ ฮป < 0 โ |ฮป| = โฮป โ |ฮป| = 2 โ ฮป = โ2 ๏ท ๏ท ๏ท ๐๐ ฮป = โ2 โ ๐๐ ๐๐ฅ๐๐ ๐ก๐ ๐ ๐๐๐ข๐๐ó๐ 1 0 1โ2 [ | ] โ0โ 2 0 0 2 ๐๐ ฮป โ ±2 โ ๐๐ฅ๐๐ ๐ก๐ ú๐๐๐๐ ๐ ๐๐๐ข๐๐ó๐ ๐๐ ฮป = 2 โ ๐๐ฅ๐๐ ๐ก๐ ๐๐๐๐๐๐๐ก๐๐ ๐ ๐๐๐ข๐๐๐๐๐๐ 1 1 1โ2 [ | ] 0 0 0 Algoritmo del método de Gauss-Jordan 82 Métodos Numéricos Ing. William Caiza function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) mensaje=str2double(inputdlg('Usted va ingresar en la ultima columna los valores de la mtriz B, si esta de acuerdo ingrese 1 caso contrario 0')); if mensaje==1 n=str2double(inputdlg('Ingrese el orden n de la matriz A')); %Ingresamos la matriz ampliada con los coeficientes en la ultima columna for i=1:n for j=1:n+1 etiqueta=['ingrese la matriz A(' num2str(i) ',' num2str(j) '):']; A(i,j)=str2double(inputdlg(etiqueta)); end end %creamos una nueva variable igualada a la matriz ampliada para trabajarla AM=A; %Resolvemos la matriz ampliada mediante eliminacion gaussiana y pivoteo %para la triangular inferior for k=1:n AM(k,k:n+1)=AM(k,k:n+1)/AM(k,k); %dejando a AM(1,1)=1 for i=k+1:n pivote=AM(i,k)/AM(k,k); %calculo del pivote AM(i,k:n+1)=AM(i,k:n+1)-pivote*AM(k,k:n+1);%aplicando pivote a las filas end end %para la trinagular superior for k=1:n for i=k+1:n pivote=AM(k,i)/AM(i,i); AM(k,i:n+1)=AM(k,i:n+1)-pivote*AM(i,i:n+1); end end %separamos las saoluciones tomando la ultima comulna de AM for i=1:n X(i)=AM(i,n+1); end %enviamos a imprimir set(handles.uitable1,'Data',AM); set(handles.uitable2,'Data',A); set(handles.uitable3,'Data',X); end 83 Métodos Numéricos Ing. William Caiza Figura 3.4:Resultado Del Programa DESCOMPOSICIÓN L.U- FACTORIZACIÓN TRIANGULAR ๐11 ๐=[ 0 0 ๐12 ๐22 0 ๐13 ๐23 ] ๐33 ๐ฟ11 ๐ฟ = [๐ฟ21 ๐ฟ31 0 ๐ฟ22 ๐ฟ32 0 0 ] ๐ฟ33 ๐จ๐ = ๐ ๐ณ๐ผ๐ = ๐ ๐จ = ๐ณ๐ผ ๐ณ๐ = ๐ ๐ผ๐ = ๐ ๐ฟ๐ฆ = ๐ โ [๐ฟ โฎ ๐] โ ๐ฆ (2) ๐๐ฅ = ๐ฆ โ [๐ โฎ ๐ฆ] โ ๐ฅ (1) ๐ฟ๐๐ฅ = ๐ ๐ฟ๐ฆ = ๐ ๐ฆ = ๐๐ฅ (๐) ๐๐ (๐) ๐๐ฅ = ๐ฆ [๐ โฎ ๐ฆ] โ ๐ฅ Algoritmo código método LU function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) mensaje=str2double(inputdlg('Usted va ingresar en la ultima columna los valores de la mtriz B, si esta de acuerdo ingrese 1 caso contrario 0')); if mensaje==1; n=str2double(inputdlg('Ingrese el orden n de la matriz A')); for i=1:n for j=1:n+1 etiqueta=['ingrese la matriz A(' num2str(i) ',' num2str(j) '):']; A(i,j)=str2double(inputdlg(etiqueta)); 84 Métodos Numéricos Ing. William Caiza end end for i=1:n B(i)=A(i,n+1); end U=zeros(n);%triangular superior L=zeros(n);%triangular inferior for j=1:n L(j,j)=1; end for j=1:n U(1,j)=A(1,j); end for i=2:n for j=1:n for k=1:i-1 s1=0; if k==1 s1=0; else for p=1:k-1 s1=s1+L(i,p)*U(p,k); end end L(i,k)=(A(i,k)-s1)/U(k,k); end for k=i:n s2=0; for p=1:i-1 s2=s2+L(i,p)*U(p,k); end U(i,k)=A(i,k)-s2; end end end Laux=L; for i=1:n Laux(i,n+1)=B(i); end for i=1:n Sumatoria=0; for p=1:i-1 Sumatoria=Sumatoria+Laux(i,p)*z(p); end z(i)=(Laux(i,n+1)-Sumatoria)/Laux(i,i); end Uaux=U; for i=1:n Uaux(i,n+1)=z(i); end 85 Métodos Numéricos Ing. William Caiza for i=n:-1:1 sumat=0; for j=i+1:n sumat=sumat+Uaux(i,j)*x(j); end x(i)=(Uaux(i,n+1)-sumat)/Uaux(i,i); end set(handles.uitable1,'Data',A); set(handles.uitable2,'Data',L); set(handles.uitable3,'Data',U); set(handles.uitable4,'Data',x); end MÉTODO DOOLITTLE`S ๐จ๐ = ๐ 86 Métodos Numéricos Ing. William Caiza ๐ ๐จ = [โ๐ ๐ โ๐ ๐ ๐๐ โ๐] โ๐ ๐ ๐๐ ๐ = [โ๐๐] ๐๐ ๐ โ๐ ๐จ = [โ๐ ๐๐ ๐ โ๐ ๐ฟ11 ๐ โ๐] = [๐ฟ21 ๐ฟ31 ๐ ๐11 0 0 ][ 0 ๐ฟ33 0 0 ๐ฟ22 ๐ฟ32 ๐12 ๐22 0 ๐13 ๐23 ] ๐33 ๐บ๐ ๐๐๐๐ ๐๐๐ ๐ณ๐๐ = ๐ ๐ฟ11 ๐11 = 8 โ ๐ผ๐๐ = ๐ ๐ฟ11 ๐12 = โ6 โ ๐ผ๐๐ = โ๐ ๐ฟ11 ๐13 = 2 โ ๐ผ๐๐ = ๐ ๐ ๐ฟ21 ๐11 = โ4 โ ๐ณ๐๐ = โ ๐ ๐ฟ21 ๐12 +๐ฟ22 ๐22 = 11 โ ๐ผ๐๐ = ๐ ๐ฟ21 ๐13 +๐ฟ22 ๐23 = โ7 โ ๐ผ๐๐ = โ๐ ๐ ๐ฟ31 ๐11 = 4 โ ๐ณ๐๐ = ๐ ๐ ๐ฟ31 ๐12 +๐ฟ32 ๐22 = โ7 โ ๐ณ๐๐ = โ ๐ ๐ฟ31 ๐13 +๐ฟ32 ๐23 + ๐ฟ33 ๐33 = 6 โ ๐ผ๐๐ = ๐ 1 0 1 โ 1 2 1 1 โ [ 2 2 0 0 1] 8 โ6 2 [0 8 โ6] 0 0 2 ๐จ๐ = ๐ ๐ณ๐ผ๐ = ๐ ๐ผ๐ = ๐ (๐) ๐ณ๐ = ๐ (๐) Resolviendo (1) 1 1 โ 2 1 [ 2 ๏ท 0 0 ๏ท 28 0| | โ40 1 6 โ 1 ] 2 ๏ท 1 ๐๐ = ๐๐ Resolviendo (2) 87 1 โ 2 ๐ฆ1 + ๐ฆ2 = โ40 โ โ14 + ๐ฆ2 = โ40 โ ๐๐ = โ๐๐ 1 1 ๐ฆ โ ๐ฆ2 + ๐ฆ3 = 33 โ 14 + 13 + ๐ฆ3 = 33 โ 2 1 2 ๐๐ = ๐ Métodos Numéricos Ing. William Caiza 8 [0 0 ๏ท 2๐ฅ3 = 6 โ ๐๐ = ๐ ๏ท 8๐ฅ2 โ 6๐ฅ3 = โ26 โ 8๐ฅ2 โ 6(3) = โ26 โ ๐๐ = โ๐ ๏ท 8๐ฅ1 โ 6๐ฅ2 + 2๐ฅ3 = 28 โ 8๐ฅ1 = 6(โ1) โ 2(3) + 28 โ ๐๐ = ๐ โ6 2 28 8 โ6| โ40] 0 2 6 ๐จ๐ = ๐ ๐ [โ๐ ๐ โ๐ ๐ ๐๐ ๐๐ ๐ ๐๐ โ๐] [ ๐ ] = [โ๐๐] โ๐ ๐ ๐๐ ๐๐ ๐๐๐ โ ๐๐๐ + ๐๐๐ = ๐๐ โ ๐(๐) โ ๐(โ๐) + ๐(๐) = ๐๐ โ ๐๐ = ๐๐ Ejercicios Propuestos Método de la Matriz inversa Calcule las siguientes matrices por el método de la matriz inversa. 1) Calcular por el método de Gauss la matriz inversa de: 2) Calcular por el método de Gauss la matriz inversa de: 3) Hallar por determinantes la matriz inversa de: 4) ¿Para qué valores de x la matriz no admite matriz inversa? 5) ¿Para qué valores de x la matriz no admite matriz inversa? 88 Métodos Numéricos Ing. William Caiza Método de Gauss Resuelva las siguientes ecuaciones por el método de Gauss 1) 2) 3) 4) 5) Método De Sustitución 1) 2) 3) 4) 5) Página web: http://www.vitutor.com/algebra/sistemas%20I/g_e.html 89 Métodos Numéricos Ing. William Caiza Eliminación de Gauss Jordan (1) (2) (3) (4) (5) Página web: http://matesfacil.com/matrices/resueltos-matrices-SEL-GAUSS.html 90 Métodos Numéricos Ing. William Caiza CAPITULO 4: AJUSTE DE CURVAS 4.1 Ajuste de Curvas Introducción. El ajuste de curvas consiste en encontrar una curva que contenga una serie de puntos y que posiblemente cumpla una serie de restricciones adicionales (cuando se permite una aproximación de la curva que describa al conjunto de datos por analizar). Ejemplo 1: ๐ฆ = ๐ฝ0 + ๐ฝ1 ๐ฅ y = 5 + 3x ; x=7 y=5+3(7) y = 26. 1) Desconocidos ๐ท๐ ๐ ๐ท๐ ๐ฆ = ๐ฝ0 + ๐ฝ1 ๐ฅ + 2๐ฅ 2 Se ajusta a una parábola recta 91 Métodos Numéricos Ing. William Caiza 2) El modelo de ajuste es aquel que: ๐=1 ๐๐ ๐๐๐๐ ๐๐๐ โ ๐๐2 ๐ ๐ข๐๐๐ก๐ ๐ ๐๐๐ ๐๐๐ ๐ก๐๐๐๐๐๐๐๐๐ โถ ๐=1 ฬ ๐ , ๐ท๐ ๐ท 92 Métodos Numéricos Ing. William Caiza 3) El modelo de ajuste indica ๐ฆ = ๐ฝ0 + ๐ฝ1 ๐ฅ ๐ ๐ฅ1 ๐ฅ2 . ๐ฅ๐ ๐ ๐ฆ1 ๐ฆ2 . ๐ฆ๐ Entonces, ๐ฆฬ = ๐ฝฬ0 + ๐ฝฬ1 ๐ฅ ๐ฝฬ0 ๐ฝฬ1 ๐๐๐๐๐ ๐ธ(๐ฝฬ0 ) = ๐ฝ0 ๐ธ(๐ฝฬ1 ) = ๐ฝ1 EL METODO DE LOS MINIMOS CUADRADOS ๐=๐ 1) ๐๐๐ โ ๐๐๐ , ๐๐ข๐๐๐ก๐ ๐ ๐๐๐ ๐๐๐ ๐ก๐๐๐๐๐๐๐๐๐ ๐ฝ0 , ๐ฝ1 ๐=๐ Sea: ๐ฆฬ๐ = ๐ฆฬ๐ + ๐๐ => ๐๐ = ๐ฆ๐ โ ๐ฆฬ๐ ๐๐ = ๐ฆ๐ โ (๐ฝฬ0 + ๐ฝฬ1 ๐ฅ๐ )2 ๐ ๐ โ ๐๐2 ๐=1 = โ(๐ฆ๐ โ ๐ฝฬ0 + ๐ฝฬ1 ๐ฅ๐ )2 ๐=1 ฬ0 + ๐ฝ ฬ1 ๐ฅ๐ ) + (๐ฝ ฬ0 + ๐ฝ ฬ1 ๐ฅ๐ )2 ] = โ[๐ฆ๐2 โ 2๐ฆ๐ ( ๐ฝ 2 ฬ0 โ 2๐ฆ๐ ๐ฝ ฬ1 ๐ฅ๐ + ๐ฝ ฬ0 2 + 2๐ฝ ฬ0 ๐ฝ ฬ1 ๐ฅ๐ + ๐ฝ ฬ1 ๐ฅ๐ ] = โ[๐ฆ๐2 โ 2๐ฆ๐ ๐ฝ ๐ ๐บ๐ช๐ฌ =๐ ฬ ๐๐ทฬ ,๐ท ๐ ๐ Monotonía.-intervalos donde la función es creciente y decreciente (๐ฟ > 0 โ; ๐ฟ < 0 โ) Segunda derivada es para sacar los puntos de inflexión. Máximos.- cuando la segunda derivada evaluada en el punto es negativo 93 Métodos Numéricos Ing. William Caiza Mínimos.- cuando la segunda derivada evaluada en el punto es positiva Ejemplo 2: Realice el siguiente ajuste de curvas El gerente de una tienda de televisores observa las siguientes ventas en 10 días diferentes, donde: a) Y=Número de televisores vendidos. b) X= Representantes de ventas Y X 3 1 6 1 10 1 5 2 10 2 12 2 5 3 10 3 10 3 8 2 Interpretación 1 Interpretación: La interpretación para generar un modelo de ajuste de los datos de la tabla anterior, el técnico deberá definir inicialmente que variable lo va a tomar como independiente o dependiente para el caso que estamos analizando, a los vendedores se los toma como variable independiente y a los televisores vendidos como variable dependiente. Televisores vendidos= f(vendedores) Asumiendo que una posible ecuación resultante sea la siguiente, demos la respectiva interpretación ๐๐๐๐๐๐๐๐๐๐๐ ๐๐๐๐ ๐๐ ๐๐ = ๐(๐๐๐๐ ๐๐ ๐๐๐๐) ๐ฒ = ๐. ๐ + ๐. ๐๐ฑ Se interpreta que por cada vendedor que se aumente, las ventas aumentaran en 1.5 unidades. ๐ = ๐. ๐ + ๐ Por cada vendedor que se aumente las ventas aumentaran en una unidad. Verificación ๐ฒ = ๐. ๐ + ๐. ๐๐ฑ Si x = 2 โ y = 8.9 Si x = 3 โ y = 10.4 94 Métodos Numéricos Ing. William Caiza Por lo tanto la diferencia es 10.4 โ 8.9=1.5, lo cual comprueba que por el aumento de un vendedor las ventas aumentan en 1.5 artículos. Para comprobar si el modelo es adecuado o no, se debería calcular el coeficiente de determinación ๐๐ . El cual nos indica que cantidad de la variabilidad del modelo está justificada, para el caso R2 = 0.076 โ R2 = 7.6%, lo cual nos indica que es un porcentaje muy bajo de la justificación de su variabilidad por ende es un modelo no adecuado. Como solo el 7.6% de la variabilidad está justificado, no se considera buen modelo. Un modelo adecuado, para ser considerado en el análisis debería tener al menos un 70% del coeficiente de variabilidad (๐๐ ), el valor anterior se deduce de la experiencia en la elaboración de diferentes modelos. Verificación ๐ = ๐. ๐ + ๐ ๐๐ ๐ฅ = 2 โ ๐ฆ = 7.9 ๐๐ ๐ฅ = 3 โ ๐ฆ = 8.9 8.9 โ 7.9 = 1 Para cada aumento de vendedores las ventas aumentaran en 1, es decir, que si disminuyo vendedores, las ventas también disminuirán en unidad, esto es de acuerdo a la función encontrada. ๐น๐ = ๐๐๐๐๐๐๐๐๐๐๐ ๐ ๐ ๐ ๐๐๐๐๐๐๐๐๐๐ó๐ El ๐น๐ indica cuan bueno es el modelo lineal. ๐ 2 = 0.076 โ ๐ 2 = 7.6% Indica el porcentaje de la variabilidad que está justificado en el modelo lineal. 95 Métodos Numéricos Ing. William Caiza Interpretación 2 Como solo el 7.6% de la variabilidad está justificado, no se considera buen modelo. Un buen modelo es el que está entre el 70%. Cálculos en Excel Suma Promedio y 3 6 10 5 10 12 5 10 10 8 79 7,9 xy 3 6 10 10 20 24 15 30 30 16 164 x^2 1 1 1 4 4 4 9 9 9 4 46 Vendedores Vs televisores 14 y = x + 5,9 R² = 0,076 12 Televisores x 1 1 1 2 2 2 3 3 3 2 20 2 10 8 6 4 2 0 0 1 2 Vendedores B1= B0= 1 5,9 NOTA: El valor de ๐ฝ1 es el acompañante de ๐ฅ y el valor de ๐ฝ0 es la constante. 96 3 4 Métodos Numéricos Ing. William Caiza 4.2 Supuestos o Hipótesis del Modelo de Regresión Lineal ๐(๐๐ข ) = ๐, donde ๐๐ข = ๐ฒ๐ข โ ๐ฒฬ๐ข ; โ๐ข donde ๐ฒ๐ข = ๐ฒฬ๐ข + ๐๐ข Figura 4.1 Representación Gráfica La esperanza matemática de los errores se esperara que sea 0 ๐๐๐ซ(๐๐ข ) = ๐(๐๐ข โ ๐(๐๐ข ))๐ = ๐๐ ; โ๐ข La varianza de los errores es constante. ๐๐จ๐ฏ(๐๐ข , ๐๐ฃ ) = ๐(๐๐ข โ ๐(๐๐ข )) (๐๐ฃ โ ๐(๐๐ฃ )) = ๐ Por lo tanto: ๐๐๐(๐ฅ) = 1 (๐ฅ โ xฬ )2 ๐โ1 4.2.1 Propiedades ๏ท Si SCxx = suma de los cuadrados de los xx SCxx = โ(xi โ xฬ )2 , demuestre que SCxx = โ xi 2 โ nxฬ 2 โ(xi 2 โ 2xi xฬ + xฬ 2 ) = โ xi 2 โ 2 โ xi xฬ + โ xฬ 2 97 Métodos Numéricos Ing. William Caiza = โ xi 2 โ 2xฬ nxฬ + nxฬ 2 = โ xi 2 โ 2nxฬ 2 + nxฬ 2 = โ ๐ฑ ๐ข ๐ โ ๐ง๐ฑฬ ๐ ๏ท Si SCyy =suma de los cuadrados de los yy, demuestre que es igual: โ(yi 2 โ 2yi yฬ + yฬ 2 ) = โ yi 2 โ 2 โ yi yฬ + โ yฬ 2 = โ yi 2 โ 2yฬ nyฬ + nyฬ 2 = โ yi 2 โ 2nyฬ 2 + nyฬ 2 ๐๐๐ฒ๐ฒ = โ ๐ฒ๐ข ๐ โ ๐ง๐ฒฬ ๐ ๐๐๐ฑ๐ฒ = โ(๐ฑ ๐ข โ ๐ฑฬ )(๐ฒ๐ข โ ๐ฒฬ ) = โ ๐ฑ ๐ข ๐ฒ๐ข โ ๐ง๐ฑฬ ๐ฒฬ Demostración: SCxy = โ(xi โ xฬ )(yi โ yฬ ) = โ(xi yi โ xฬ yi โ yฬ xi + xฬ yฬ ) = โ xi yi โ โ xฬ yi โ โ yฬ xi + โ xฬ yฬ = โ xi yi โ nyฬ xฬ โ nyฬ xฬ + nxฬ yฬ = โ ๐ฑ ๐ข ๐ฒ๐ข โ ๐ง๐ฑฬ ๐ฒฬ TEOREMA: Bajo los supuestos anteriores, demuestre: ฬ๐ = ๐ฒฬ โ ๐ ฬ๐ ๐ฑฬ ๐ ; ฬ๐ = ๐๐๐ฑ๐ฒ ๐ ๐๐ ๐ฑ๐ฑ ; Ejemplo 2 โ ๐๐ถ๐ธ = 0 2 โ(๐ฆ๐ โ ๐ฆ ฬ) =0 ๐ Modelo: Min(SCE) Sujeto a: ๐ ๐๐ถ๐ธ = 0 ฬ๐ ๐๐ฝ ๐ ๐๐ถ๐ธ = 0 ฬ1 ๐๐ฝ 98 ฬ๐ + ๐ ฬ๐ ๐ฑ ๐ฒ=๐ Métodos Numéricos Ing. William Caiza ๐ ๐ ฬ0 + ๐ฝ ฬ1 ๐ฅ๐ ))2 ๐๐ถ๐ธ = โ(๐ฆ๐ โ ๐ฆ ฬ) = โ(๐ฆ๐ โ (๐ฝ ๐ 2 ๐=1 ๐=1 ฬ0 + ๐ฝ ฬ1 ๐ฅ๐ ) + (๐ฝ ฬ0 + ๐ฝ ฬ1 ๐ฅ๐ )2 ] ๐๐ถ๐ธ = โ[๐ฆ๐2 โ 2๐ฆ๐ ( ๐ฝ 2 ฬ0 โ 2๐ฆ๐ ๐ฝ ฬ1 ๐ฅ๐ + ๐ฝ ฬ0 2 + 2๐ฝ ฬ0 ๐ฝ ฬ1 ๐ฅ๐ + ๐ฝ ฬ1 ๐ฅ๐ ] ๐๐ถ๐ธ = โ[๐ฆ๐2 โ 2๐ฆ๐ ๐ฝ 2 ฬ0 โ 2 โ ๐ฆ๐ ๐ฝ ฬ1 ๐ฅ๐ + โ ๐ฝ ฬ0 2 + 2 โ ๐ฝ ฬ0 ๐ฝ ฬ1 ๐ฅ๐ + โ ๐ฝ ฬ1 ๐ฅ๐ ] ๐๐ถ๐ธ = โ ๐ฆ๐2 โ 2 โ ๐ฆ๐ ๐ฝ Primera restricción del modelo ๐ โ ๐๐ ๐ ฬ๐ ๐๐ฝ ๐ ๐บ๐ช๐ฌ = ๐ ฬ๐ ๐๐ท ๐ (๐ฆ 2 + ๐ฆ2 2 + โฏ + ๐ฆ๐ 2 ) = ฬ๐ 1 ๐๐ฝ ๐ ๐๐ฆ12 ๐๐ฆ๐2 + +โฏ+ =0 ฬ๐ ๐๐ฝ ฬ๐ ฬ๐ ๐๐ฝ ๐๐ฝ ๐ ๐ ฬ๐ = ฬ + ๐ฆ2 ๐ฝ ฬ๐ + โฏ + ๐ฆ๐ ๐ฝ ฬ๐ ) โ ๐๐ ๐ท (๐ฆ ๐ฝ ฬ ฬ๐ 1 ๐ ๐๐ฝ๐ ๐๐ฝ = ๐ฆ1 + ๐ฆ2 + โฏ + ๐ฆ๐ = โ ๐ฆ๐ ๐ ๐ ฬ๐ ๐ = ฬ๐ 2 + ๐ฝ ฬ๐ 2 + โฏ + ๐ฝ ฬ๐ 2 ) โ๐ท (๐ฝ ฬ ฬ ๐๐ฝ๐ ๐๐ฝ๐ ฬ ฬ2 + โฏ + 2๐ฝ๐ ฬ๐ = 2๐ฝ๐1 + 2๐ฝ๐ ๐ ๐ ฬ๐ ๐ท ฬ๐ ๐๐ = ฬ ๐ฝฬ ๐ฅ + ๐ฝ ฬ๐ ๐ฝฬ๐ ๐ฅ2 + โฏ + ๐ฝ ฬ๐ ๐ฝฬ๐ ๐ฅ๐ ) โ๐ท (๐ฝ ฬ๐ ฬ๐ ๐ ๐ 1 ๐๐ฝ ๐๐ฝ ฬ๐ ๐ฅ1 + ๐ฝ ฬ๐ ๐ฅ2 + โฏ + ๐ฝ ฬ๐ ๐ฅ๐ =๐ฝ = ๐ฝฬ๐ (๐ฅ1 + โฏ + ๐ฅ๐ ) =๐ฝฬ๐ โ ๐ฅ๐ โ ๐๐ ๐๐๐๐๐๐๐ ๐๐๐ข๐๐๐ó๐ ๐๐๐๐๐๐ ๐๐ : ฬ๐ +2๐ฝ ฬ1 โ ๐ฅ๐ = 0 โ2 โ ๐ฆ๐ +2n๐ฝ ฬ๐ + ๐ฝ ฬ1 โ ๐ฅ๐ = 0 (1) -โ ๐ฆ๐ + ๐๐ฝ ฬ0 โ ๐ฅ๐ +2๐ฝ ฬ1 โ ๐ฅ๐ 2 =0 โ2 โ ๐ฅ ๐ฆ๐ + 2๐ฝ ฬ0 โ ๐ฅ๐ +๐ฝ ฬ1 โ ๐ฅ๐ 2 =0 (2) โ โ ๐ฅ ๐ฆ๐ + ๐ฝ ๐ ๐๐ถ๐ธ = 0 ฬ๐ ๐๐ฝ 99 Métodos Numéricos Ing. William Caiza Ecuaciones Normales โ { ฬ๐ + ๐ฝ ฬ1 โ ๐ฅ๐ = 0 โ โ ๐ฆ๐ + ๐๐ฝ ฬ0 โ ๐ฅ๐ +๐ฝ ฬ1 โ ๐ฅ๐ 2 = 0 โ โ ๐ฅ ๐ฆ๐ + ๐ฝ Ejercicio.Dados los siguientes datos, encuentre la ecuación de regresión lineal ajuste Encontrar ๐ฝ0 ๐ฆ ๐ฝ1 x 1 3 5 6 y 1 3,5 6 7 sumatoria (1+3+5+6) 15 ๐ฅฬ = =4 (1+3.5+6+7) 17.5 ๐ฆฬ = 4 = 4 ๐ฅ๐ โ ๐ฅฬ ๐ฆ๐ โ ๐ฆฬ (๐ฅ๐ โ ๐ฅฬ )( ๐ฆ๐ โ ๐ฆฬ ) (๐ฅ๐ โ ๐ฅฬ )^2 1 3,5 6 7 -2,75 -0,75 1.25 1.8 -3,375 -0,875 1.44 2.625 297/32 21/32 65/32 189/32 17,5 0 0 143/8 121/16 9/16 25/16 81/16 59/4 ๐ฅ๐ ๐ฆ๐ 1 3 5 6 15 143 ๐ฝ1 = 8 = 1.212 59 4 ๐ฝ0 = 4 175 15 โ 1.212 โ = โ0.17 4 4 ๐ฆ = โ0.17 + 1.212๐ฅ Ejercicio 2 100 Métodos Numéricos Ing. William Caiza En un estudio para describir la relación entre la expansión al ruido y la hipertensión se realizan las siguientes mediciones. x Prómedio y 60 1 65 1 70 80 80 85 90 90 94 100 81,4 5 4 2 5 6 4 7 7 4,2 x-´x 21,4 16,4 11,4 -1,4 -1,4 3,6 8,6 8,6 12,6 18,6 y-ý (x-´x)(yý) (x-´x)^2 ý (yi-ýi)^2 (ýi-´yi)^2 -3,2 68,48 457,96 1,1 0,01 10,24 9,61 -3,2 52,48 268,96 1,815 0,664225 10,24 5,688225 0,8 -0,2 -2,2 0,8 1,8 -0,2 2,8 2,8 -9,12 0,28 3,08 2,88 15,48 -1,72 35,28 52,08 219,2 129,96 1,96 1,96 12,96 73,96 73,96 158,76 345,96 1526,4 2,53 3,96 3,96 4,675 5,39 5,39 5,962 6,82 6,1009 0,0016 3,8416 0,105625 0,3721 1,9321 1,077444 0,0324 14,137994 ๐ฅฬ = 81.4 2 โ(๐ฆ1โ ฬ ฬ ฬ ) ๐ฆ1 =14.134 ๐ฆฬ = 4.2 2 โ(๐ฆฬ1โ ฬ ฬ ฬ ) ๐ฆ1 =31.229 ๐ฝ1 = (yi-ý)^2 0,64 2,7889 0,04 0,0576 4,84 0,0576 0,64 0,225625 3,24 1,4161 0,04 1,4161 7,84 3,104644 7,84 6,8644 45,6 31,229194 219.2 = 0.143 152.68 a.- Interpretación Título del gráfico Hipertensión=f(ruido) 8 ๐ฆ = โ7.4402 + 0.143๐ฅ 7 b.- Si x=65 y = 0,1436x - 7,4895 R² = 0,6903 6 5 ๐ฆ = โ7.4402 + 0.143(65) 4 ๐ฆ = 1.815 3 Si x=66 2 1 ๐ฆ = โ7.4402 + 0.143(66) ๐ฆ = 1.958 0 0 20 40 60 80 100 Por cada nivel que aumenta en el ruido, la hipertensión aumenta a 0.143 unidades 101 120 Métodos Numéricos Ing. William Caiza 4.3 Coeficiente de Correlación. El coeficiente de correlación de Pearson (r), mide la relación lineal existente entre dos variables. El coeficiente de correlación es un valor que se encuentra en el intervalo [-1 , 1]; teniendo en cuenta que si r se acerca a 1, se dice que existe una relación lineal fuerte positiva, es decir: si la variable x toma valores grandes la variable y también toma variables grandes y si la variable x toma valores pequeños, la variable y también toma valores pequeños. Si el coeficiente de correlación toma valores alrededor de cero, el coeficiente de Person indica que no existe una relación lineal entre dichas variables. Además si el coeficiente de PEARSON toma valores cercanos a -1, indica que existe una relación lineal fuerte negativa, es decir: si la variable x aumenta la variable y disminuye y si la variable x disminuye la variable y aumenta. A continuación analicemos las siguientes expresiones: La covarianza de dos variables se define como Sxy; y la suma de los cuadrados de los xy como SCxy, cuya relación se la define de la forma siguiente: 1 โ(๐ฅ๐ โ ๐ฅฬ )(๐ฆ๐ โ ๐ฆฬ ) ๐โ1 (๐ โ 1)๐๐ฅ๐ฆ = โ(๐ฅ๐ โ ๐ฅฬ )(๐ฆ๐ โ ๐ฆฬ ) ๐๐ฅ๐ฆ = (๐โ1) ๐๐ฅ๐ฆ = ๐๐ถ๐ฅ๐ฆ ๐๐ถ๐ฅ๐ฆ ๐๐ฅ๐ฆ = ๐โ1 Además conocemos la varianza Sx2 y su desviación estándar Sx ๐ ๐๐ฅ = โ๐๐ฅ2 = โ โ(๐ฅ๐ โ ๐ฅฬ )2 ๐โ๐ ๐ ๐ = โ๐โ๐ โ(๐ฅ๐ โ ๐ฅฬ )(๐ฅ๐ โ ๐ฅฬ ) =โ๐โ๐ ๐๐ถ๐ฅ๐ฅ ; Por lo tanto la desviación estándar de la variable y es: 1 ๐๐ฆ = โ ๐๐ถ๐ฆ๐ฆ ๐โ1 Por lo tanto definimos al coeficiente de correlación lineal mediante la siguiente expresión: 102 Métodos Numéricos Ing. William Caiza ๐๐ถ๐ฅ๐ฆ ๐โ1 โ๐= โ ๐ ๐๐ถ๐ฅ๐ฅโ ๐ ๐๐ถ๐ฆ๐ฆ ๐โ๐ ๐โ๐ ๐๐ถ๐ฅ๐ฆ ๐โ1 = ๐ โ( ๐ ) ๐๐ถ๐ฅ๐ฅ. ๐๐ถ๐ฆ๐ฆ ๐โ๐ = = ๐๐ถ๐ฅ๐ฆ ๐โ1 ๐ โ๐๐ถ๐ฅ๐ฅ.๐๐ถ๐ฆ๐ฆ ๐โ๐ (๐ โ 1)๐๐ถ๐ฅ๐ฆ (๐ โ 1)โ๐๐ถ๐ฅ๐ฅ. ๐๐ถ๐ฆ๐ฆ ๐๐ถ๐ฅ๐ฆ = โ๐๐ถ๐ฅ๐ฅ. ๐๐ถ๐ฆ๐ฆ El coeficiente de determinación, determina si el modelo de regresión lineal es bueno, ya que mide la cantidad de variación del modelo justificado. Este coeficiente toma valores mayores iguales a 0 y menores iguales a 1, por lo tanto si c acerca a 1 el modelo lineal es bueno, ya que toda la variación estaría justificada. Ejemplo 3: Encuentre la ecuación lineal que ajusta los puntos y su coeficiente de correlación En un estudio para determinar la relación entre el peso de los automóviles y su consumo de combustible se escogió una muestra de 10 carros, con los siguientes resultados: Consumo(litro/100km)=y 8 Peso(kg)=x 739 16 1187 6 655 7 729 103 7 888 9 797 11 963 12 802 18 1551 20 1650 Métodos Numéricos Ing. William Caiza Figura 4.6: Cuadro De Datos Figura 4.7: Grafico Del Ejercicio Respuesta: esto nos indica que por cada kg que aumente de peso el carro, el consumo de combustible es 0,0134 por cada 100km. (r) nos indica si existe relación lineal entre el peso del carro y el consumo de combustible. Algoritmo de Ajuste Curvas function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) n=str2double(inputdlg('Ingrese la cantidad de datos para el Ajuste Lineal')); 104 Métodos Numéricos Ing. William Caiza for i=1:2 for j=1:n etiqueta=['Dato(' num2str(i) ';' num2str(j) ')']; dato(j,i)=str2double(inputdlg(etiqueta)); end end %calculo de promedios sumx=0; for i=1:n sumx=sumx+dato(i,1); end promx=(sumx/n); sumy=0; for i=1:n sumy=sumy+dato(i,2); end promy=(sumy/n); %suma de los xy sumpxy=0; for i=1:n sumpxy=sumpxy+(dato(i,1)-promx)*(dato(i,2)-promy); end sumpxx=0; for i=1:n sumpxx=sumpxx+(dato(i,1)-promx)*(dato(i,1)-promx); end sumpyy=0; for i=1:n sumpyy=sumpyy+(dato(i,2)-promy)*(dato(i,2)-promy); end %calculo de r r=sumpxy/sqrt(sumpxx*sumpyy); beta1= (sumpxy/sumpxx); beta0= promy-beta1*promx; %calculo de r^2 for i=1:n ytecho(i)=beta0+beta1*promx; end %condiciones if r>=0.7 etiqueta='Relacion Lineal Fuerte'; end if r<=0.7 & r>=0.5 etiqueta='Relacion Lineal debil'; end if r<0.5 & r>-0.5 etiqueta='no existe Relacion Lineal '; end if r<-0.7 & r>=-0.5 etiqueta='Relacion lineal d '; end 105 Métodos Numéricos Ing. William Caiza if r<=-0.7 etiqueta='R.L.F. '; end set(handles.uitable1,'Data',dato); set(handles.text2,'String',etiqueta); set(handles.uitable2,'Data',[ beta1 beta0 r ]'); plot(dato(:,1),dato(:,2),'r*'); hold on; grid on; plot([-10 10],[0 0],'r'); plot([0 0],[-10 10],'r'); %Grafico d ela funcion syms x; funcion=beta0+beta1*x; f=inline(funcion); x=[-1:0.1:7]; [fx cx]=size(x); for i=1:cx y(i)=f(x(i)); end plot(x,y); Figura 4.11: Ejecución Del Programa 4.4 Prueba de Hipótesis 106 Métodos Numéricos Ing. William Caiza Con respecto al ajuste lineal la prueba que se va a tratar, es la de verificar si el coeficiente de Pearson es cero o diferente de cero, en otras palabras lo que queremos averiguar es si existe relación lineal entre variables, la prueba de hipótesis consta de 5 pasos: Hipótesis nula (H0 ) Hipótesis alternativa (H1 ) Estadístico de prueba Región de rechazo Decisión. Con respecto a la prueba de hipótesis de r, tenemos: 1 2 3 ๐ป0 : ๐ = 0 ๐ป1 : ๐ โ 0 ๐ก๐๐๐ ๐๐๐ฃ๐๐๐ = ๐ก0๐๐ = ๐โ๐โ2 โ๐โ๐ 2 = 0.9419โ10โ2 โ1โ(0.9419)2 = 7,9313 Figura 4.12: Grafica De La Prueba De Hipótesis 107 Métodos Numéricos Ing. William Caiza Ejemplo 4: realizar la prueba de hipótesis del siguiente ejercicio Figura 4.13: Ejercicio Prueba De Hipótesis En Excel Ejemplo 5 R2 = 0.85, indica que el 85% de la variación del modelo lineal está justificada y que solo un 15% no está justificado debido a la aleatoriedad del fenómeno. SCyy=SCE+SCR ๐ ๐ ๐ 2 โ(๐ฆ๐ โ ๐ฆฬ ) = โ(๐ฆ1 โ ๐ฆฬ) + โ( ๐ฆฬ๐ โ ๐ฆฬ )2 ๐ ๐=1 2 ๐=1 ๐=1 108 Métodos Numéricos Ing. William Caiza Figura 4.14: Representación Grafica ๐๐ถ๐ฆ๐ฆ โ ๐๐ถ๐ธ ๐๐ถ๐ฆ๐ฆ ๐๐ถ๐ธ ๐ 2 = ๐๐ถ๐ฆ๐ฆ ๐ 2 = 4.5 Generalización de modelos lineales 4.5.1 Modelo Potencial ๐ = ๐ถ๐๐ท Dado un modelo no lineal mediante transformaciones pasar a modelo lineal โ Sea el modelo potencial ๐ = ๐ถ๐๐ท ๐๐ ๐ฆ = ๐๐(๐ผ๐ฅ ๐ฝ ) ๐๐ ๐ฆ = ๐๐ ๐ผ + ๐๐ ๐ฅ ๐ฝ ๐๐ ๐ฆ = ๐๐ ๐ผ + ๐ฝ ๐๐ ๐ฅ ๐ฆ = ๐ฝ๐ + ๐ฝ1 ๐ฅ โ ๐ฆ = ๐๐ ๐ฆ ๐ฝ0 = ๐๐ ๐ผ ๐ฝ1 = ๐ฝ ๐ฅ = ๐๐ ๐ฅ Ejercicios ๐ = ๐. ๐๐๐,๐ º ๐ฆ = ๐ผ + ๐ฝ ๐๐ ๐ฅ ๐ฆ = ๐ฝ๐ + ๐ฝ1 ๐ฅ โ๐=๐ ๐ท๐ = ๐ถ ๐ท๐ = ๐ท 109 Métodos Numéricos Ing. William Caiza ๐ = ๐๐ ๐ ๐ถ ๐ ๐ฆ๐ฅ = ๐ผ ๐๐ ๐ฆ๐ฅ = ๐๐ ๐ผ ๐๐ ๐ฆ + ๐๐ ๐ฅ = ๐๐ ๐ผ ๐๐ ๐ฆ = ๐๐ ๐ผ โ ๐๐ ๐ฅ ๐ฆ = ๐ฝ0 + ๐ฝ1 ๐ฅ ๐= โ ๐ = ๐๐ ๐ ๐ท๐ = ๐๐ ๐ถ ๐ท๐ = โ๐ ๐ = ๐๐ ๐ Coeficiente de determinación (๐น๐ ) ฬ0 +๐ฝ ฬ Determina el porcentaje de variación del modelo justificativo por la relación lineal y=๐ฝ 1๐ฅ y su valor se encuentra [0,1], tomando en cuenta que si se acerca a 1 será mejor. Coeficiente de correlación(r) Mide la correlación lineal existente entre la variable x e y es decir: corr(x,y) Corr(x,y)= ๐๐๐(๐ฅ,๐ฆ) โ๐๐๐๐(๐ฅ,๐ฆ)๐ถ๐๐(๐ฆ,๐ฆ) SUPUESTOS O HIPOTESIS DEL MODELO DE REGRESIÓN LINEAL ฬ๐ ; โ๐ donde ๐๐ = ๐ ฬ ๐ + ๐ผ๐ 1. ๐ฌ(๐ผ๐ ) = ๐, donde ๐ผ๐ = ๐๐ โ ๐ La esperanza matemática de los errores se esperara que sea 0 2. ๐ฝ๐๐(๐ผ๐ ) = ๐ฌ(๐ผ๐ โ ๐ฌ(๐ผ๐ ))๐ = ๐๐ ; โ๐ La varianza de los errores es constante. 3. ๐ช๐๐(๐ผ๐ , ๐ผ๐ ) = ๐ฌ(๐ผ๐ โ ๐ฌ(๐ผ๐ )) (๐ผ๐ โ ๐ฌ(๐ผ๐ )) = ๐ Es decir ๐๐ con ๐๐ deben ser independientes. 110 Métodos Numéricos Ing. William Caiza PROPIEDADES 1) Si ๐บ๐๐ = suma de los cuadrados de los xx ๐๐ฅ๐ฅ = โ(๐ฅ๐ โ ๐ฅฬ )2 , demuestre que ๐๐ฅ๐ฅ = โ ๐ฅ๐ 2 โ ๐๐ฅฬ 2 โ(๐ฅ๐ 2 โ 2๐ฅ๐ ๐ฅฬ + ๐ฅฬ 2 ) = โ ๐ฅ๐ 2 โ 2 โ ๐ฅ๐ ๐ฅฬ + โ ๐ฅฬ 2 = โ ๐ฅ๐ 2 โ 2๐ฅฬ ๐๐ฅฬ + ๐๐ฅฬ 2 = โ ๐ฅ๐ 2 โ 2๐๐ฅฬ 2 + ๐๐ฅฬ 2 ฬ ๐ = โ ๐๐ ๐ โ ๐๐ 2) Si ๐บ๐๐ =suma de los cuadrados de los yy ฬ ๐ ๐บ๐๐ = โ ๐๐ ๐ โ ๐๐ ฬ )(๐๐ โ ๐ ฬ ) = โ ๐๐ ๐๐ โ ๐๐ ฬ ๐ ฬ 3) ๐บ๐๐ = โ(๐๐ โ ๐ ๐๐ฅ๐ฆ = โ(๐ฅ๐ โ ๐ฅฬ )(๐ฆ๐ โ ๐ฆฬ ) = โ(๐ฅ๐ ๐ฆ๐ โ ๐ฅฬ ๐ฆ๐ โ ๐ฆฬ ๐ฅ๐ + ๐ฅฬ ๐ฆฬ ) = โ ๐ฅ๐ ๐ฆ๐ โ โ ๐ฅฬ ๐ฆ๐ โ โ ๐ฆฬ ๐ฅ๐ + โ ๐ฅฬ ๐ฆฬ = โ ๐ฅ๐ ๐ฆ๐ โ ๐๐ฆฬ ๐ฅฬ โ ๐๐ฆฬ ๐ฅฬ + ๐๐ฅฬ ๐ฆฬ ฬ ๐ ฬ = โ ๐๐ ๐๐ โ ๐๐ TEOREMA: Bajo los supuestos anteriores ฬ๐ = ๐บ๐๐ ๐ท ๐บ ฬ๐ = ๐ ฬ๐ ๐ ฬ โ๐ท ฬ ๐ท EJERCICIO Demuestre: ๐๐ ฬ๐ = ๐บ๐๐ ๐ท ๐บ ๐๐ Sabemos: ฬ1 = โ ๐ฅ๐ ๐ฆ๐ โ๐ฆฬ โ ๐ฅ๐ ๐ฝ โ ๐ฅ 2 โ๐ฅฬ โ ๐ฅ ๐ ๐ ๐๐ฅ๐ฆ = โ ๐ฅ๐ ๐ฆ๐ โ ๐๐ฅฬ ๐ฆฬ ฬ1 = โ ๐ฅ๐ ๐ฆ๐ โ๐ฆฬ ๐๐ฅฬ ๐ฝ โ ๐ฅ 2 โ๐ฅฬ โ ๐ฅ ๐ โ ๐ฅ๐ = ๐๐ฅฬ ๐ 111 Métodos Numéricos Ing. William Caiza ฬ1 = ๐๐ฅ๐ฆ ๐ฝ โ ๐ฅ 2 โ๐ฅฬ ๐๐ฅฬ ๐๐ฅ๐ฅ = โ ๐ฅ๐ 2 โ ๐๐ฅฬ 2 ๐ ฬ1 = ๐๐ฅ๐ฆ ๐ฝ โ ๐ฅ๐ 2 โ๐ฅฬ 2 ๐ ๐บ ฬ๐ = ๐๐ ๐ท ๐บ๐๐ Programa de Regresión Lineal. Ejecución del Programa de Regresión Lineal 112 Métodos Numéricos Ing. William Caiza GENERALIZACIÓN DE MODELOS LINEALES MODELO POTENCIAL ๐ = ๐ถ๐๐ท Dado un modelo no lineal mediante transformaciones pasar a modelo lineal โ Sea el modelo potencial ๐ = ๐ถ๐๐ท ln ๐ฆ = ln(๐ผ๐ฅ ๐ฝ ) ln ๐ฆ = ln ๐ผ + ln ๐ฅ ๐ฝ ln ๐ฆ = ln ๐ผ + ๐ฝ ln ๐ฅ ๐ฆ = ๐ฝ๐ + ๐ฝ1 ๐ฅ โ ๐ฆ = ln ๐ฆ ๐ฝ0 = ln ๐ผ ๐ฝ1 = ๐ฝ ๐ฅ = ln ๐ฅ EJERCICIOS ๐ = ๐. ๐๐๐ ๐ฆ = ๐ผ + ๐ฝ ln ๐ฅ ๐ฆ = ๐ฝ๐ + ๐ฝ1 ๐ฅ โ๐=๐ ๐ท๐ = ๐ถ ๐ท๐ = ๐ท ๐ = ๐ฅ๐ง ๐ ๐ถ ๐ ๐ฆ๐ฅ = ๐ผ ln ๐ฆ๐ฅ = ln ๐ผ ln ๐ฆ + ln ๐ฅ = ln ๐ผ ln ๐ฆ = ln ๐ผ โ ln ๐ฅ ๐ฆ = ๐ฝ0 + ๐ฝ1 ๐ฅ โ ๐ = ๐ฅ๐ง ๐ ๐ท๐ = ๐ฅ๐ง ๐ถ ๐ท๐ = โ๐ ๐ = ๐ฅ๐ง ๐ ๐= 4.6 Regresión Múltiple En el capítulo anterior se desarrolló el ajuste lineal simple, es decir donde había una variable dependiente junto a una variable independiente. En el presente tema se tratará el caso de ajuste lineal donde hay una variable dependiente y varias variables independientes, por ejemplo: ๐ผ๐๐๐๐๐ ๐ ๐๐๐ ๐๐๐๐๐๐ก๐ = ๐(๐ñ๐๐ ๐๐ ๐ ๐๐๐ฃ๐๐๐๐, ๐กí๐ก๐ข๐๐๐ ๐๐๐ก๐๐๐๐๐๐ , ๐๐ข๐๐๐๐๐๐๐๐๐๐๐ โ๐๐โ๐๐ ) 113 Métodos Numéricos Ing. William Caiza La expresión anterior indica que el ingreso del docente (ID) es función de los años de servicio(AS), de los títulos obtenidos (TO) y de las publicaciones hechas(PH), pudiéndose tener la siguiente expresión lineal. ๐ผ๐ท = ๐ × ๐ด๐ + ๐ × ๐๐ + ๐ × ๐๐ป, en la expresión es necesario conocer las constantes a, b y c las mismas que se obtendrán mediante el método de mínimos cuadrados como se describe a continuación: ๐ฆ = ๐(๐ฅ1 , ๐ฅ2 , ๐ฅ3 , โฆ , ๐ฅ๐ ) ฬ0 + ๐ฝ ฬ0 ๐ฅ1 + ๐ฝ ฬ0 ๐ฅ2 +. . . +๐ฝ ฬ0 ๐ฅ๐ ๐ฆ=๐ฝ Para el caso d función real de variable vectorial: ๐ฆ1 = ๐ฝ0 + ๐ฝ1 ๐ฅ11 + ๐ฝ2 ๐ฅ12 +. . . +๐ฝ๐ ๐ฅ1๐ + ๐1 ๐ฆ2 = ๐ฝ0 + ๐ฝ1 ๐ฅ21 + ๐ฝ2 ๐ฅ22 +. . . +๐ฝ๐ ๐ฅ2๐ + ๐2 โฎ ๐ฆ๐ = ๐ฝ0 + ๐ฝ1 ๐ฅ๐1 + ๐ฝ2 ๐ฅ๐2 +. . . +๐ฝ๐ ๐ฅ๐๐ + ๐๐ ๐ฆ = ๐๐ฝ + ๐ (1) ๐ = ๐ฅ๐1 , ๐ฅ๐2 , ๐ฅ๐๐ , โฆ , ๐ฅ๐๐ ๐ฆ๐×๐ฅ = ๐ฅ๐๐(๐+1) ๐ฝ(๐+1)×๐ + ๐๐×1 Ejemplo 6 Matricialmente la expresión (1) se puede representar de la siguiente manera: ๐ฆ1 ๐1 ๐ฝ1 1 ๐ฅ11 ๐ฅ12 (๐ฆ2 ) = (1 ๐ฅ21 ๐ฅ22 ) × (๐ฝ2 ) + (๐2 ) ๐ฆ3 ๐3 1 ๐ฅ31 ๐ฅ32 ๐ฝ3 ๐ฆ1 ๐1 ๐ฝ0 ๐ฝ1 ๐ฅ11 ๐ฝ2 ๐ฅ12 ๐ฆ ๐ ( 2 ) = (๐ฝ0 ๐ฝ1 ๐ฅ21 ๐ฝ2 ๐ฅ22 ) + ( 2 ) ๐ฆ3 ๐3 ๐ฝ0 ๐ฝ1 ๐ฅ31 ๐ฝ2 ๐ฅ32 ๐ฆ1 ๐ฝ0 + ๐ฝ1 ๐ฅ11 + ๐ฝ2 ๐ฅ12 + ๐1 โ (๐ฆ2 ) = (๐ฝ0 + ๐ฝ1 ๐ฅ21 + ๐ฝ2 ๐ฅ22 + ๐2 ) ๐ฆ3 ๐ฝ0 + ๐ฝ1 ๐ฅ31 + ๐ฝ2 ๐ฅ32 + ๐3 Programa Regresión Multilpe Código: function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) 114 Métodos Numéricos Ing. William Caiza m=3; n=str2double(inputdlg('Ingrese el numero de filas:')); for i=2:m for j=1:n etiqueta=['Ingrese el valor X(',num2str(j),',',num2str(i),')']; x(j,i)=str2double(inputdlg(etiqueta)); end end x(:,1)=1; for i=1:n etiqueta=['Ingrese el valor B(1,',num2str(i),')']; y(i,1)=str2double(inputdlg(etiqueta)); end total=(inv(x'*x)*(x'*y)); for i=1:n ys(i,1)=(total(1,1)*x(i,1))+(total(2,1)*x(i,2))+(total(3,1)*x(i,3)); end set(handles.uitable1,'Data',x); set(handles.uitable2,'Data',y); set(handles.uitable3,'Data',total); set(handles.text1,'String',ys); x=[x(:,2) x(:,3)]; plot3(x,y,ys,'*'); grid on; axis on; hold on; rotate3d on; plot3([min(x(:,1)) max(x(:,1))],[min(y) max(y)],[min(ys) max(ys)]); Programa Ejecutado 115 Métodos Numéricos Ing. William Caiza 4.6.1 Derivación Matricial Sea ๐ = 5๐1 + 2๐2 + 3๐3 ๐(๐1 , ๐2 , ๐3 ) = 5๐1 + 2๐2 + 3๐3 5 ๐๐ = ( 2) ๐๐ฅ 3 ๐ โด ๐ ๐ ๐ = ๐โฒ ๐ฅ โ ๐๐ฅ (๐โฒ ๐ฅ) = ๐ ๐1 ๐ โฒ (๐ ๐ฅ) = (๐2 ) ๐๐ฅ ๐3 โฒ ๐ ๐ฅ = ๐๐ฅ1 + ๐๐ฅ2 + ๐๐ฅ3 ๐1 ๐ โฒ (๐ ๐ฅ) = (๐2 ) = ๐ ๐๐ฅ ๐3 ๐ = ๐ โฒ ๐ด๐; ๐ด๐ ๐ ๐๐é๐ก๐๐๐๐ ๐ฆ ๐๐ข๐๐๐๐๐๐ ๐ (๐ โฒ ๐ด๐) = 2๐ด๐ ๐๐ฅ ๐11 ๐12 ๐13 ๐1 (๐1 ๐2 ๐3 ) = (๐12 ๐22 ๐23 ) (๐2 ) ๐13 ๐23 ๐33 ๐3 116 Métodos Numéricos Ing. William Caiza ๐1 (๐11 ๐1 + ๐12 ๐2 + ๐13 ๐3 + ๐12 ๐1 + ๐22 ๐2 + ๐23 ๐3 ) + ๐13 ๐1 + ๐23 ๐2 + ๐33 ๐3 = (๐2 ) ๐3 2 2 ๐11 ๐1 + ๐12 ๐2 ๐1 + ๐13 ๐3 ๐1 + ๐12 ๐1 ๐2 + ๐22 ๐2 + ๐23 ๐3 ๐2 + ๐13 ๐3 ๐1 + ๐23 ๐3 ๐2 +๐33 ๐32 ๐ = 2๐11 ๐1 + 2๐12 ๐2 + 2๐13 ๐3 ๐๐ฅ1 ๐ = 2๐12 ๐1 + 2๐22 ๐2 + 2๐23 ๐3 ๐๐ฅ2 ๐ = 2๐33 ๐3 + 2๐13 ๐1 + 2๐23 ๐2 ๐๐ฅ3 ๐11 ๐12 ๐13 ๐1 ๐ (๐โฒ๐ด๐) = 2๐ด๐ = (๐12 ๐22 ๐23 ) (๐2 ) โด ๐๐ ๐ด ๐๐ ๐ ๐ ๐๐é๐ก๐๐๐๐ ๐๐ฅ ๐13 ๐23 ๐33 ๐3 4.6.2 Método de los Mínimos Cuadrados para la Forma Matricial ๐๐ถ๐ธ = ๐ ๐ก ๐ ๐๐ถ๐ธ = (๐ โ ๐๐ฝ)๐ก (๐ โ ๐๐ฝ) Demuestre que: ๐๐ถ๐ธ = ๐ ๐ก ๐ โ 2๐ฝ ๐ก ๐ ๐ก ๐ + ๐ฝ ๐ก ๐ ๐ก ๐๐ฝ ๐๐ถ๐ธ = (๐ โ ๐๐ฝ)๐ก (๐ โ ๐๐ฝ) = (๐ ๐ก + (โ๐๐ฝ)๐ก )(๐ โ ๐๐ฝ) = (๐ ๐ก โ ๐ฝ ๐ก ๐ ๐ก )(๐ โ ๐๐ฝ) = ๐ ๐ก ๐ โ ๐ ๐ก ๐๐ฝ โ ๐๐ฝ๐ฝ ๐ก ๐ ๐ก โด Se debería demostrar que: ๐ ๐ก ๐๐ฝ = ๐ฝ ๐ก ๐ ๐ก ๐ ๐ด = ๐ด๐ก (๐ ๐๐ ๐ ๐๐é๐ก๐๐๐๐๐ ) ๐๐๐ ๐ด = ๐ ๐ก ๐๐ฝ ๐ด๐ก = (๐ ๐ก ๐๐ฝ)๐ก = ๐ฝ ๐ก (๐ ๐ก ๐)๐ก = ๐ฝ ๐ก (๐ ๐ก (๐ ๐ก )๐ก ) = ๐ฝ๐ก ๐ ๐ก ๐ โ ๐ด ๐๐ ๐ ๐๐é๐ก๐๐๐๐ โด ๐๐ถ๐ธ = ๐ ๐ก ๐ โ 2๐ฝ ๐ก ๐๐ + ๐ฝ ๐ก ๐ ๐ก ๐๐ฝ ๐๐ถ๐ธ = ๐ ๐ก ๐ โ 2๐ฝ ๐ก ๐ ๐ก ๐ + ๐ฝ ๐ก ๐ ๐ก ๐๐ฝ ๐๐ = ๐ฆ๐ โ ๐ฆฬ ๐ ๐๐ 2 = (๐ฆ๐ โ ๐ฆฬ ๐ )2 = (๐ฆ๐ โ ๐ตฬ 0 โ ๐ตฬ 0 โ ๐๐)2 117 Métodos Numéricos Ing. William Caiza ๐ ๐ โ ๐๐ = โ(๐ฆ๐ โ (๐ตฬ 0 + ๐ตฬ 0 โ ๐๐))2 2 ๐=1 ๐=1 ๐ = โ[๐ฆ๐ 2 โ 2๐ฆ๐ (๐ตฬ 0 + ๐ตฬ ๐ โ ๐๐)]2 ๐=1 ๐ = โ[๐ฆ๐ 2 โ 2๐ฆ๐ (๐ตฬ 0 + ๐ตฬ ๐ โ ๐๐) + (๐ตฬ 0 + ๐ตฬ 0 โ ๐๐)2 ] ๐=1 ๐ 2 = โ[๐ฆ๐ 2 โ 2๐ฆ๐ ๐ตฬ 0 โ 2๐ฆ๐ ๐ตฬ ๐ ๐๐ + ๐ตฬ 0 + 2๐ตฬ 0 โ ๐ตฬ 1 โ ๐ฬ ๐ + ๐ตฬ 1 ๐๐ 2 ] ๐=1 ๐ ๐ โ ๐๐ 2 = ๐๐ถ๐ธ = 0 ฬ ฬ ฬ ๐๐ต0 ๐ต1 ๐๐ต0 ๐ตฬ 1 ๐ ๐๐ถ๐ธ ๐๐ตฬ 0 = 2 ๐ 2 = ๐๐ตฬ [2๐๐ โ 2๐ตฬ 0 โ ๐ฆ1 โ 2๐ตฬ 1 โ ๐ฅ๐ ๐ฆ๐+ โ ๐ตฬ 0 + 2๐ตฬ 0 ๐ตฬ 1 โ 2๐๐ + ๐ตฬ 1 โ ๐ฅ1 2 ] 0 ๐ ๐ ๐ 2 (โ2๐ตฬ 0 โ ๐ฆ1 + โ ๐ตฬ 1 + 2๐ตฬ 0 ๐ตฬ 1 โ 2๐๐) ๐๐ตฬ 0 ๐๐ตฬ 0 ๐๐ตฬ 0 โ2๐ฆ๐ + ๐๐ตฬ 0 + ๐ต1 โ ๐๐ =0 Programación Mínimos Cuadrados Código: function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) n=str2double(inputdlg('Ingrese la cantidad de datos')); for i=1:n etiqueta=['Ingrese el ',num2str(i),'° dato de X:']; x(i)=str2double(inputdlg(etiqueta)); end for i=1:n etiqueta=['Ingrese el ',num2str(i),'° dato de Y:']; y(i)=str2double(inputdlg(etiqueta)); end xbarra=mean(x); ybarra=mean(y); 118 Métodos Numéricos Ing. William Caiza for i=1:n restx(i)=(x(i)-xbarra); end for i=1:n resty(i)=(y(i)-ybarra); end for i=1:n SCxy(i)=restx(i)*resty(i); SCxx(i)=restx(i)*restx(i); SCyy(i)=resty(i)*resty(i); end b1=num2str((sum(SCxy))/(sum(SCxx))); etiqueta=['b1: ',num2str(b1)]; set(handles.text2,'String',etiqueta) b0=num2str(ybarra-(str2double(b1)*xbarra)); etiqueta=['b0: ',num2str(b0)]; set(handles.text3,'String',etiqueta) datos=[x' y' restx' resty' SCxy' SCxx' SCyy']; set(handles.uitable1,'Data',datos); etiqueta=['xbarra: ',num2str(xbarra)]; set(handles.text1,'String',etiqueta); etiqueta=['ybarra: ',num2str(ybarra)]; set(handles.text4,'String',etiqueta); etiqueta=['Y=',b0,'+',b1,'(x)']; set(handles.text10,'String',etiqueta); Programa Ejecutado 119 Métodos Numéricos Ing. William Caiza Ejercicios propuestos Ajuste de curvas 1.- Ajustar los datos de la siguiente tabla: X 1 2 4 Y 3 5,1 8,8 a).- Hacer el grafico de la función Página web: http://portales.puj.edu.co/objetosdeaprendizaje/Online/OA10/capitulo3/3.6.htm 2.- Supongamos un muelle sometido a tracción, se ha cargado el muelle con diferentes pesos (F, variable independiente o y ) y se han anotado los alargamientos (l variable dependiente o x) Cargas sucesivas F(yi) gramos Lecturas sucesivas (xi) L / mm 200 400 500 700 900 1000 60 120 150 210 260 290 Página web: http://ocw.unican.es/ensenanzas-tecnicas/fisica-i/practicas1/Ajuste%20por%20minimos%20cuadrados.pdf 3.- 15 estudiantes a los cuales se les realizo un test de inteligencia cuyas puntuaciones se reflejan en la variable X, y a los que se había realizado una prueba que se refleja en las puntuaciones de la variable Y, calcular la recta de regresión de Y sobre X. n X Y 1 9 5 2 12 5 3 6 1 4 9 4 5 7 2 6 9 2 7 5 1 8 9 3 9 7 3 10 3 1 11 10 4 12 6 2 13 11 5 14 4 2 15 13 5 Página web: http://www.ugr.es/~jsalinas/apuntes/C5.pdf 4.- Construir una recta que aproxime los datos de la tabla siguiente y hallar la ecuación de dicha recta: X 1 2 4 5 6 8 Y 1 2 2 4 5 7 120 Métodos Numéricos Ing. William Caiza 5.- Ajustar una recta de mínimos cuadrados a los datos de la tabla que a continuación se indica, en los casos siguientes: a).- X como variable independiente, b).- Y como variable independiente. Y hacer la gráfica correspondiente X Y 1986 18 1987 20 1988 22 1989 24 1990 25 1991 26 1992 28 1993 30 1994 32 Página web: http://books.google.es/books Coeficiente de correlación 1. Una compañía desea hacer predicciones del valor anual de sus ventas totales en cierto país a partir de la relación de estas y la renta nacional. Para ello cuenta con los siguientes datos: x 189 190 208 227 239 252 257 274 293 308 316 y 402 404 412 425 429 436 440 447 458 469 469 2. La empresa โSantosโ desea saber si sus ventas dependen de la publicidad que ellos hacen a sus productos tomaran sus datos según resultados obtenidos, ellos deciden utilizar el método de correlación lineal simple para encontrar la relación las cantidades de son en millones: publicidad 1172,2 1209,2 1233,1 1256,9 1301,9 1320 1350,4 1357,9 1380,8 1381,8 1402,5 1403 1406,1 1423,7 ventas 593,8 596 598,3 600,8 603,3 607,7 608,5 611,2 592,4 585,6 589 589,4 593,5 597,6 3. La información estadística obtenida de una muestra de tamaño 12 sobre la relación existente entre la inversión realizada y el rendimiento obtenido en cientos de miles de euros para la explotación agrícolas es al siguiente: Inversión (x) 11 14 16 15 16 121 18 20 21 14 20 19 11 Métodos Numéricos Ing. William Caiza Rendimiento(y) 2 3 5 6 5 33 7 10 6 10 5 6 4. El número de hrs. Dedicadas al estudio de una asignatura y la calificación obtenida en el examen correspondiente, de ocho personas es: Horas(x) 20 16 34 23 27 32 18 22 Calificación(y) 6,5 6 8,5 7 9 9,5 7,5 8 5. de un núcleo de población, acuden los clientes, en cientos, que figuran en la tabla. N de clientes(x) 8 7 6 4 2 1 Distancia(y) 15 19 25 23 34 40 6. En una muestra de 1500 individuos se recogen datos sobre dos medidas antropométricas X e Y. Los resultados que se obtienen son x = 14, y = 100, sx = 2, sy = 25, sxy = 45. Obtener el modelo de regresión lineal que mejor aproxima Y en función de X. Utilizando este modelo calcular de modo aproximado la cantidad Y esperada cuando X = 15. 7. De una muestra de 8 observaciones conjuntas de valores de dos variables X e Y se obtiene la siguiente información: . a) Obtener la recta de regresión de Y sobre X. Explicar el significado de los parámetros. b) Calcular el coeficiente de determinación. Comentar el resultado e indicar el porcentaje de variación de Y que no está´ explicado por el modelo de regresión lineal. c) Si el modelo es adecuado, cuál es la predicción para un valor de x = 4? d) Obtener la recta de regresión de X sobre Y. 8. La tabla siguiente contiene la edad X y la máxima de la presión sanguínea Y de un grupo de 10 mujeres: Edad 56 42 72 36 63 47 55 49 38 42 Presión 14.8 12.6 15.9 11.8 14.9 13.0 15.1 14.2 11.4 14.1 a) Calculad el coeficiente de correlación lineal entre las variables y decid que indica. b) Determinad la recta de regresión de Y sobre X, justificando la adecuación de un modelo lineal. Interpretad los coeficientes. c) Valorad la bondad del modelo. d) Haced las predicciones siguientes, sólo cuando crea que tengan sentido: 122 Métodos Numéricos Ing. William Caiza d.1) Presión sanguínea de una mujer de 51 años. d.2) Presión sanguínea de una niña de 10 años. d.3) Presión sanguínea de un hombre de 54 años. 9. Se ha llevado a cabo un ajuste lineal a una nube de puntos formada por observaciones de dos variables X e Y y se ha obtenido un coeficiente de determinación de 0.03. Discutid si las siguientes afirmaciones son ciertas y por qué: a) El coeficiente de correlación lineal entre X e Y valdrá´ 0.173. b) La covarianza entre X e Y puede ser negativa. c) Las variables X e Y son casi independientes. d) El coeficiente de determinación entre โX e Y valdrá´ -0.03. e) El coeficiente de determinación entre โX y โY valdrá´ 0.03. f) Solo el 3% de la variabilidad total de Y queda sin explicar en el modelo. 10. Dada la siguiente distribución bidimensional encontrar el modelo de regresión (lineal o parabólica) que mejor se ajuste a la nube de puntos. xi yi 1 1 2 3 4 5 5 6 13 15 18 19 21 16 20 14 11. Los datos siguientes forman parte de un anuncio publicado por un joyero de Singapur en el periódico Strauss Times el 29 de febrero de 1992. Estos datos hacen referencia al precio (en dólares de Singapur) de anillos que llevan un diamante. El tamaño de un diamante, que se indica en quilates (1 quilate=200 mg). tamaño 0.17 0.16 0.17 0.25 precio 355 328 350 675 tamaño 0.16 0.17 0.16 0.17 precio 345 352 332 353 0.16 342 0.18 438 0.15 322 0.23 595 0.21 483 0.23 553 0.15 323 0.12 223 Ajustad un modelo lineal a estos datos y decidid si el ajuste obtenido es bueno. Comprobad si se cumplen para los residuos las suposiciones de independencia y de varianza constante. 12. Las Ecuaciones siguientes , Representan las rectas de regresión lineal de una distribución estadística vicariante. Hallad los coeficientes de determinación y de correlación entre las variables X e Y. 123 Métodos Numéricos Ing. William Caiza 13. Dos distribuciones estadísticas tienen como rectas de regresión de Y sobre X, respectivamente, ¿Puede asegurarse que la segunda distribución tiene un coeficiente de determinación mayor que la primera? 14. De una distribución estadística vicariante se conocen x = 5, y = 8, CVY = 3CVX. Mediante la recta de regresión de Y sobre X, ¿cuál es la predicción del modelo para un valor de x = 6, a) en el caso que R2 = 0? b) en el caso que R2 = 1? Página web de los ejercicios del 1 al 13 http://es.slideshare.net/1010karen/5-ejercicios-de-correlacin-13119660 CAPITULO IV INTERPOLACIÓN Interpolar significa estimar el valor desconocido de una función en un punto, tomando una media ponderada de sus valores conocidos en puntos cercanos al dado. En la interpolación lineal, conocido como regla de 3 se utiliza un segmento rectilíneo que pasa por 2 puntos que se conocen. Ajuste Es una ecuación que tiene la mínima dispersión en el eje y con respecto a los datos que estén comparando. POLINOMIO INTERPOLADOR DE NEWTON Definición Dados n+1 puntos, ๐ฅ0 , ๐ฅ1 , โฆ , ๐ฅ๐ ๐1 (๐ฅ) = ๐0 + ๐1 (๐ฅ โ ๐ฅ0 ) (๐ฅ) ๐2 = ๐0 + ๐1 (๐ฅ โ ๐ฅ0 ) + ๐2 (๐ฅ โ ๐ฅ0 )(๐ฅ โ ๐ฅ1 ) ๐2 (๐ฅ) = ๐1 (๐ฅ) + ๐2 (๐ฅ โ ๐ฅ0 )(๐ฅ โ ๐ฅ1 ) ๐3 (๐ฅ) = ๐2 (๐ฅ) + ๐3 (๐ฅ โ ๐ฅ0 )(๐ฅ โ ๐ฅ1 )(๐ฅ โ ๐ฅ2 ) โฎ ๐ท๐ (๐) = ๐ท๐โ๐ (๐) + ๐๐ (๐ โ ๐๐ )(๐ โ ๐๐ )(๐ โ ๐๐ ) × โฆ × (๐ โ ๐๐โ๐ ) 124 Métodos Numéricos Ing. William Caiza Generalmente, se usa el ๐3 (๐ฅ), es decir: ๐ท๐ (๐) = ๐0 + ๐1 (๐ฅ โ ๐ฅ0 ) + ๐2 (๐ฅ โ ๐ฅ0 )(๐ฅ โ ๐ฅ1 ) + ๐๐ (๐ โ ๐๐ )(๐ โ ๐๐ )(๐ โ ๐๐ ) Dónde: ๐0 = ๐[๐ฅ0 ] ๐1 = ๐[๐ฅ1 , ๐ฅ0 ] ๐2 = ๐[๐ฅ2 , ๐ฅ1 , ๐ฅ0 ] ๐3 = ๐[๐ฅ3 , ๐ฅ2 , ๐ฅ1 , ๐ฅ0 ] โฎ [๐ฅ ๐๐ = ๐ , ๐ฅ๐โ1 , โฆ , ๐ฅ1 , ๐ฅ0 ] DIFERENCIAS DIVIDIDAS Diferencias divididas La diferencia dividida de orden cero es: ๐[๐ฅ0 ] = ๐(๐ฅ0 ) = ๐ฆ0 La diferencia dividida de orden 1 es: ๐(๐ฅ1 ) โ ๐(๐ฅ0 ) ๐[๐ฅ1 ] โ ๐[๐ฅ0 ] ๐[๐ฅ0 , ๐ฅ1 ] = = ๐ฅ1 โ ๐ฅ0 ๐ฅ1 โ ๐ฅ0 La diferencia dividida de orden 2 es: ๐(๐ฅ2 ) โ ๐(๐ฅ1 ) ๐(๐ฅ1 ) โ ๐(๐ฅ0 ) โ ๐[๐ฅ1 , ๐ฅ2 ] โ ๐[๐ฅ0 , ๐ฅ1 ] ๐ฅ2 โ ๐ฅ1 ๐ฅ1 โ ๐ฅ0 ] ๐[๐ฅ0 , ๐ฅ1 , ๐ฅ2 = = ๐ฅ2 โ ๐ฅ0 ๐ฅ2 โ ๐ฅ0 La diferencia dividida de orden 3 es: ๐[๐ฅ2 , ๐ฅ3 ] โ ๐[๐ฅ1 , ๐ฅ2 ] ๐[๐ฅ1 , ๐ฅ2 ] โ ๐[๐ฅ0 , ๐ฅ1 ] โ ๐[๐ฅ1 , ๐ฅ2 , ๐ฅ3 ] โ ๐[๐ฅ0 , ๐ฅ1 , ๐ฅ2 ] ๐ฅ3 โ ๐ฅ1 ๐ฅ2 โ ๐ฅ0 ] ๐[๐ฅ0 , ๐ฅ1 , ๐ฅ2 , ๐ฅ3 = = ๐ฅ3 โ ๐ฅ0 ๐ฅ3 โ ๐ฅ0 Relación existente entre el polinomio de newton y las diferencias divididas ๐1 (๐ฅ) = ๐0 + ๐1 (๐ฅ โ ๐ฅ0 ) = ๐[๐ฅ0 ] + ๐[๐ฅ0 , ๐ฅ1 ](๐ฅ โ ๐ฅ0 ) ๐2 (๐ฅ) = ๐0 + ๐1 (๐ฅ โ ๐ฅ0 ) + ๐2 (๐ฅ โ ๐ฅ0 )(๐ฅ โ ๐ฅ1 ) = ๐[๐ฅ0 ] + ๐[๐ฅ0 , ๐ฅ1 ](๐ฅ โ ๐ฅ0 )+ ๐[๐ฅ0 , ๐ฅ1 , ๐ฅ2 ](๐ฅ โ ๐ฅ0 )(๐ฅ โ ๐ฅ1 ) ๐๐ (๐ฅ) = ๐๐โ1 (๐ฅ) + ๐[๐ฅ0 , ๐ฅ1 , โฆ โฆ . ๐ฅ๐ ](๐ฅ โ ๐ฅ0 )(๐ฅ โ ๐ฅ1 ) โฆ . . (๐ฅ โ ๐ฅ๐ ) ๐0 = ๐[๐ฅ0 ] ๐1 = ๐[๐ฅ0 , ๐ฅ1 ] ๐2 = ๐[๐ฅ0 , ๐ฅ1 , ๐ฅ2 ] ๐๐ = ๐[๐ฅ0 , ๐ฅ1 , ๐ฅ2 โฆ . ๐ฅ๐ ] Ejemplo.Dados los siguientes 3 puntos, encontrar el polinomio de interpolación. ๐(2,3), ๐(4,2), ๐(6,1) ๐2 (๐ฅ) = ๐[๐ฅ0 ] + ๐[๐ฅ0 , ๐ฅ1 ](๐ฅ โ ๐ฅ0 ) + ๐[๐ฅ0 , ๐ฅ1 , ๐ฅ2 ](๐ฅ โ ๐ฅ0 )(๐ฅ โ ๐ฅ1 ) a) Resolviendo un sistema de ecuaciones (I. Inversa) ๐2 (๐ฅ) = ๐๐ฅ + ๐๐ฅ + ๐ 125 Métodos Numéricos Ing. William Caiza 3 = 4๐ + 2๐ + ๐ 2 = 16๐ + 4๐ + ๐ 1 = 36๐ + 6๐ + ๐ ๐ฆ = ๐ด๐ ๐ดโ1 ๐ฆ = ๐ดโ1 โ ๐ด โ ๐ ๐ดโ1 โ ๐ฆ = ๐ X=๐ดโ1 โ ๐ฆ 4 ๐ด = [16 36 2 4 6 1 1] 1 4 ๐ดโ1 = [16 36 2 1 4 1 6 1 1 โฎ 0 0 4 ๐ดโ1 = [ 0 36 2 1 โ4 โ3 6 1 0 0 1 0] 0 1 1 0 โฎ 0 1 0 0 0 0] 1 DEFINICIÓN: Las diferencias divididas de f(x), se define: 1º Diferencia ๐[๐๐ ] = ๐(๐๐ ) 2º Diferencia ๐[๐๐โ๐ , ๐๐ ] = ๐[๐๐โ๐ ]โ๐[๐๐ ] ๐๐โ๐ โ๐๐ 3º Diferencia ๐[๐๐โ๐ , ๐๐โ๐ , ๐๐ ] = 4º Diferencia ๐[๐๐ , ๐๐ , ๐๐ , ๐๐ ] = = โ(๐[๐๐โ๐ ]โ๐[๐๐ ]) โ(๐๐โ๐ โ๐๐ ) ๐[๐๐โ๐ ,๐๐โ๐ ]โ๐[๐๐โ๐ ,๐๐ ] ๐๐โ๐ โ๐๐ ๐[๐๐ ,๐๐ ,๐๐ ]โ๐[๐๐ ,๐๐ ,๐๐ ] ๐๐ โ๐๐ = = = ๐[๐๐โ๐ ]โ๐[๐๐ ] ๐๐โ๐ โ๐๐ ๐[๐๐โ๐ ]โ๐[๐๐โ๐ ] ๐[๐๐โ๐ ]โ๐[๐๐ ] โ ๐๐โ๐ โ๐๐โ๐ ๐๐โ๐ โ๐๐ ๐๐โ๐ โ๐๐ ๐[๐๐ ,๐๐ ]โ๐[๐๐ ,๐๐ ] ๐[๐๐ ,๐๐ ]โ๐[๐๐ ,๐๐ ] โ ๐๐ โ๐๐ ๐๐ โ๐๐ ๐๐ โ๐๐ ๐[๐๐ ] โ ๐[๐๐ ] ๐[๐๐ ] โ ๐[๐๐ ] ๐[๐๐ ] โ ๐[๐๐ ] ๐[๐๐ ] โ ๐[๐๐ ] โ ๐ โ๐ โ ๐ โ๐ ๐๐ โ ๐๐ ๐๐ โ ๐๐ ๐ ๐ ๐ ๐ โ ๐๐ โ ๐๐ ๐๐ โ ๐๐ ๐๐ โ ๐๐ EJERCICIO Dados los siguientes puntos ๐ฅ0 = 1, ๐ฅ1 = 4, ๐ฅ2 = 6, ๐ฅ3 = 5 126 = Métodos Numéricos Ing. William Caiza ๐(๐ฅ0 ) = 0 ๐(๐ฅ1 ) = 1,386294 ๐(๐ฅ2 ) = 1,791759 ๐(๐ฅ3 ) = 1,609438 ๐ฅ0 = 1 ๐ฅ1 = 4 ๐ฅ2 = 6 ๐ฅ3 = 5 Estimar ๐(๐ฅ = 2), con un polinomio interpolador de ๐3 (๐ฅ) Newton ๐0 = ๐[๐ฅ0 ] = ๐(1) = ๐ ๐1 = ๐[๐ฅ1 , ๐ฅ0 ] = ๐3 (๐ฅ = 2) = ๐(๐ฅ = 2) ๐[๐ฅ1 ] โ ๐[๐ฅ0 ] 1,386294 โ 0 = = ๐, ๐๐๐๐๐๐ ๐ฅ1 โ ๐ฅ0 4โ1 ๐[๐ฅ2 ] โ ๐[๐ฅ1 ] ๐[๐ฅ1 ] โ ๐[๐ฅ0 ] 1,791759 โ 1,386294 1,386294 โ 0 โ โ ๐ฅ2 โ ๐ฅ1 ๐ฅ1 โ ๐ฅ0 6โ4 4โ1 ๐2 = ๐[๐ฅ2 , ๐ฅ1 , ๐ฅ0 ] = = ๐ฅ2 โ ๐ฅ0 6โ1 = โ๐, ๐๐๐๐๐๐๐ ๐[๐ฅ3 ] โ ๐[๐ฅ2 ] ๐[๐ฅ2 ] โ ๐[๐ฅ1 ] ๐[๐ฅ2 ] โ ๐[๐ฅ1 ] ๐[๐ฅ1 ] โ ๐[๐ฅ0 ] โ โ ๐ฅ3 โ ๐ฅ2 ๐ฅ2 โ ๐ฅ1 ๐ฅ2 โ ๐ฅ1 ๐ฅ1 โ ๐ฅ0 โ ๐ฅ3 โ ๐ฅ1 ๐ฅ2 โ ๐ฅ0 ๐3 = ๐[๐ฅ3 , ๐ฅ2 , ๐ฅ1 , ๐ฅ0 ] = ๐ฅ3 โ ๐ฅ0 1,609438 โ 1,791759 1,791759 โ 1,386294 1,791759 โ 1,386294 1,386294 โ 0 โ โ 6โ4 5โ6 6โ4 4โ1 โ 6 โ 1 5 โ 4 = 5โ1 = ๐, ๐๐๐๐ × ๐๐โ๐ ๐ท๐ (๐) = ๐0 + ๐1 (๐ฅ โ ๐ฅ0 ) + ๐2 (๐ฅ โ ๐ฅ0 )(๐ฅ โ ๐ฅ1 ) + ๐๐ (๐ โ ๐๐ )(๐ โ ๐๐ )(๐ โ ๐๐ ) = 0,462098(2 โ 1) โ 0,0518731(2 โ 1)(2 โ 4) + 0,0078655(2 โ 1)(2 โ 4)(2 โ 6) = ๐, ๐๐๐๐๐๐๐ Interpolación por Splines Interpolación con Trazadores y Paramétrica Objetivos ๏ท Conocer las técnicas de interpolación usando curvas paramétricas y Spline B ๏ท Familiarizarse con los métodos numéricos de interpolación con polinomios definidos en tramos ๏ท Aprender a usar Matlab para resolver problemas que involucren interpolación 127 Métodos Numéricos Ing. William Caiza TEMAS Interpolantes definidos en Tramos. Interpolación lineal y al adyacente más cercano. Interpolación con trazadores (spline ) cuadráticos y cúbicos . Determinación de los coeficientes. Error de truncación y capacidad de filtrado. Trazadores con interpolación Hermítica, algoritmo Pchip . Curvas paramétricas. Curvas de Bézier, características, polinomios de tercer orden con interpolación hermítica, empalmes. Introducción a las B Spline , características más destacadas . Funciones de Matlab. INTERPOLACION Problema Básico Se dispone de un conjunto de datos (x,y), que provienen de experiencias y se quiere encontrar una función que โpaseโ por esos puntos. Dados los datos: (x i ,y i ), i = 0,1, 2, ..., n con x 0 ,< x 1 ,< x 2 , < ... < x n , determinar la función f , tal que : f(x i ) = y i , i = 0, 1, 2, ..., n f es llamada la Función de Interpolación o Función Interpolante o Interpolante a secas . En forma adicional, dependiendo del tipo de interpolación, se pueden imponer otras restricciones como pendiente en determinados puntos, concavidad, etc. Funciones definidas en Tramos En Interpolación con Funciones definidas en Tramos, dados un conjunto de datos (xi ,yi), se emplean funciones diferentes para cada subintervalo [xi ,xi+1 ] Las abscisas xi se llaman Nodos y en ellos se pasa de una función a otra. Funciones que son tramos de polinomios resultan una alternativa de la interpolación polinomial de alto grado para evitar la โoscilaciónโ. 128 Métodos Numéricos Ing. William Caiza La principal ventaja la Interpolación con tramos de polinomios es que un gran número de datos pueden ajustarse empleando polinomios de relativo bajo orden. EJEMPLO TIPICO Interpolación Lineal que usa líneas rectas para interconectar puntos. Con este recurso se elimina la oscilación excesiva, pero se sacrifica la derivabilidad de la función. INTERPOLACION LINEAL Se puede usar interpolación LaGrange o Newton para determinar las ecuaciones de las rectas: ( ๐ฆ โ ๐ฆ0 ) (๐ฅ โ ๐ฅ0 ) ๐๐๐๐ ๐ฅ1 > ๐ฅ > ๐ฅ0 ๐1 (๐ฅ) = ๐ฆ0 + 1 (๐ฅ1 โ ๐ฅ0 ) 1 ( ๐ฆ โ ๐ฆ1 ) (๐ฅ โ ๐ฅ1 ) ๐๐๐๐ ๐ฅ2 > ๐ฅ > ๐ฅ1 ๐2 (๐ฅ) = ๐ฆ1 + 2 (๐ฅ2 โ ๐ฅ1 ) ( ๐ฆ โ ๐ฆ2 ) (๐ฅ โ ๐ฅ2 ) ๐๐๐๐ ๐ฅ3 > ๐ฅ > ๐ฅ2 ๐3 (๐ฅ) = ๐ฆ2 + 3 (๐ฅ3 โ ๐ฅ2 ) ( ๐ฆ โ ๐ฆ3 ) (๐ฅ โ ๐ฅ3 ) ๐๐๐๐ ๐ฅ4 > ๐ฅ > ๐ฅ3 ๐4 (๐ฅ) = ๐ฆ3 + 4 (๐ฅ4 โ ๐ฅ3 ) Funciones definidas en Tramos EJEMPLO TIPICO Interpolación al adyacente más próximo (Nearest neighbor interpolation ). El método más simple que consiste en localizar el valor de datos más cercano, y asignarlo el mismo valor. 129 Métodos Numéricos Ing. William Caiza No hay buenas razones para escoger este método en vez de interpolación lineal (casi tan simple como éste, pero con pérdida de la continuidad), Si embargo en interpolación multivariada, esta opción puede ser favorable por su velocidad y simplicidad. SPLINE โ TRAZADORES Consiste en emplear polinomios de bajo orden para conectar puntos adyacentes. (Trazador o cinta de plomo) Funciones Spline típicas: Spline lineal ๐(๐ฅ) = ๐๐ฅ + ๐ Spline cuadrática ๐(๐ฅ) = ๐๐ฅ 2 + ๐๐ฅ + ๐ Spline cúbica ๐(๐ฅ) = ๐๐ฅ 3 + ๐๐ฅ 2 + ๐๐ฅ + ๐ Un Trazador de orden k deberá tener k-1 derivadas continuas Ejercicio.๏ Dado los siguientes puntos, encontrar la interpolación mediante rectas. (4,4) F0 f1 (7,4) f2 (10,3) (1,2) *En [1, 4] FORMULA: ๐๐ (๐) = ๐๐ ๐ฅ + ๐๐ 4โ2 (๐ฅ โ 1) ๐ฆโ2= 4โ1 2 2 2 4 ๐ฆ = ๐ฅโ +2 = ๐ฅ+ 3 3 3 3 ๐ ๐ ๐๐ (๐) = ๐ + ๐ ๐ ๏ท En [7 , 4] ๐๐ (๐) = ๐ ๏ท En [7 , 10] 130 Métodos Numéricos Ing. William Caiza 3โ4 (๐ฅ โ 7) 10 โ 7 1 ๐ฆ โ 4 = โ (๐ฅ โ 7) 3 1 7 ๐ฆ =โ ๐ฅ+ +4 3 3 ๐ ๐๐ ๐๐ (๐) = โ ๐ + ๐ ๐ ๐ฆโ4= SPLINE CUADRÁTICA Se conectan dos puntos adyacentes con una parábola de orden 2. La función tiene derivada primera continua. Determinación de los coeficientes Sea N el número de sub-intervalos (N+1 datos). Para cada punto interior, los dos polinomios cuadráticos vecinos tienen que pasar este punto. 2(N-1) ecuaciones: ๐(๐ฅ) = ๐๐ฅ 2 + ๐๐ฅ + ๐ = ๐ฆ๐ Sólo un polinomio cuadrático pasa por los puntos extremos 2 ecuaciones. ๐(๐ฅ) = ๐๐ฅ 2 + ๐๐ฅ + ๐ = ๐ฆ๐ Determinación de los coeficientes En cada punto interior, las derivadas de primer orden de los dos polinomios vecinos deben ser iguales. Condición impuesta a una Spline cuadrática. Resultan N-1 ecuaciones: 2๐๐ฅ + ๐ = 2๐๐ฅ + ๐ Considerando todas las ecuaciones, suman 3N-1. Por lo tanto falta una para poder determinar todos los coeficientes (1 grado de libertad). Esto es típico en Spline y se fija según conveniencia. Por ejemplo, se podría adoptar la derivada igual a cero en uno de los extremos. 131 Métodos Numéricos Ing. William Caiza Definición de Spline.- La definición de spline hace referencia a una amplia clases de funciones que son utilizadas en aplicaciones que requieren la interpolación de datos o un suavizado de curvas. Las funciones para la interpolación de splines normalmente se determinan como minimizadores de la aspereza sometida a una serie de restricciones. Spline Lineal.- Una función spline de grado 1 que interpola los satos es simplemente unir cada uno de los puntos mediante u n segmento de recta. Dado n+1 puntos: ๐ฅ ๐ฅ0 ๐ฅ1 โฆ ๐ฅ๐ ๐ฆ ๐ฆ0 ๐ฆ1 โฆ ๐ฆ๐ ๐0 (๐ฅ) = ๐0 ๐ฅ + ๐0 ; ๐ฅ โ (๐ฅ0 , ๐ฅ1 ) ๐1 (๐ฅ) = ๐1 ๐ฅ + ๐1 ; ๐ฅ โ (๐ฅ1 , ๐ฅ2 ) โฎ ๐(๐ฅ) = ๐๐โ1 (๐ฅ) = ๐๐โ1 ๐ฅ + ๐๐โ1 ; ๐ฅ โ (๐ฅ๐โ1 , ๐ฅ๐ ) Ejercicio: Interpolar con spline lineal los siguientes puntos: f(1)=1 f(2)=0.5 f(4)=0.25 1,2 1 1; 1 0,8 0,6 2; 0,5 0,4 4; 0,25 0,2 0 0 ๐. ๐ โ ๐ (๐ โ ๐) ๐โ๐ ๐ ๐ ๐=โ ๐+ +๐ ๐ ๐ ๐ ๐ ๐=โ ๐+ ๐ ๐ 1 2 3 ๐ โ ๐๐ = ๐(๐ โ ๐๐ ) ๐ณ๐ : ๐ โ ๐ = 4 ๐. ๐๐ โ ๐. ๐ (๐ โ ๐) ๐โ๐ ๐ ๐ ๐ ๐=โ ๐+ + ๐ ๐ ๐ ๐ ๐ ๐=โ ๐+ ๐ ๐ ๐ณ๐ : ๐ โ ๐. ๐ = 132 5 Métodos Numéricos Ing. William Caiza ๐ ๐ ๐(๐) = โ (๐) + ๐ ๐ ๐ ๐ ๐(๐) = โ + ๐ ๐ ๐ ๐(๐) = ๐ Spline Cuadrático.- El objetivo es obtener un polinomio de 2° grado para cada intervalo entre los datos. ๐๐ (๐ฅ) = ๐๐ ๐ฅ 2 + ๐๐ ๐ฅ + ๐๐ Las condiciones a las cuales se les debe dar al modelo, son las siguientes: 1. Los valores de la función de polinomios adyacentes deben ser iguales en los nodos interiores. 2. La primera y última función deben pasar a través de los puntos extremos. 3. Las primeras derivadas en los nodos interiores deben ser iguales. 4. Suponga que en el primer punto la segunda derivada es 0. Ejercicio 3 3; 2,5 7; 2,5 2,5 2 1,5 4,5; 1 1 9; 0,5 0,5 0 0 2 4 6 1) ๐๐. ๐๐๐๐ + ๐. ๐๐๐ + ๐๐ = ๐ (1) ๐๐. ๐๐๐๐ + ๐. ๐๐๐ + ๐๐ = ๐ (2) ๐๐๐๐ + ๐๐๐ + ๐๐ = ๐. ๐ (3) ๐๐๐๐ + ๐๐๐ + ๐๐ = ๐. ๐ (4) 2) ๐๐๐ + ๐๐๐ + ๐๐ = ๐. ๐ (5) 133 8 10 Métodos Numéricos Ing. William Caiza ๐๐๐๐ + ๐๐๐ + ๐๐ = ๐. ๐ (6) 3) ๐1 ๐ฅ 2 + ๐1 ๐ฅ + ๐1 = ๐ฆ 2๐1 ๐ฅ + ๐1 = ๐ฆ โฒ ๐๐๐ + ๐๐ = ๐๐๐ + ๐๐ (7) ๐๐๐๐ + ๐๐ = ๐๐๐๐ + ๐๐ (8) 4) 2๐1 ๐ฅ + ๐1 = ๐ฆ โฒ ๐๐๐ = ๐โฒโฒ ๐๐ = ๐ (9) Respuestas: ๐๐ = ๐ ๐๐ = โ๐ ๐๐ = ๐. ๐ ๐๐ = ๐. ๐๐ ๐๐ = โ๐. ๐๐ ๐๐ = ๐๐. ๐๐ ๐๐ = โ๐. ๐ ๐๐ = ๐๐, ๐ ๐๐ = โ๐๐. ๐ Spline Cúbico.- El objetivo de las segmentarias cúbicas es obtener un polinomio d tercer orden para cada intervalo en los nodos. ๐๐ (๐) = ๐๐ ๐๐ + ๐๐ ๐๐ + ๐๐ ๐ + ๐ ๐ Así n+1 datos (i=0, 1, 2,.., n), existen n intervalos y por consiguiente, 4n incógnitas constantes para evaluar. Como con las segmentarias cuadráticas se requieren 4n condiciones para evaluar las incógnitas. Condiciones: 1) Los valores de la función deben ser iguales en los nodos interiores. 2) La primera y última función deben pasar a través de los puntos extremos. 134 Métodos Numéricos Ing. William Caiza 3) Las primeras derivadas en los nodos interiores deben ser iguales. 4) Las segundas derivadas en los nodos interiores deben ser iguales. 5) Las segundas derivadas en los nodos externos son ceros. La interpolación visual de la condición 5 es que la función se vuelve una línea recta en los nodos extremos, la especificación de tal condición extrema nos lleva a lo que se denomina โSEGMENTACIÓN NATURALโ. Ejercicio Ajuste por segmentarias cúbicas dado los siguientes puntos: ๐ฅ0 = 3 ; ๐(๐ฅ0 ) = 2.5 ๐ฅ1 = 4.5 ; ๐(๐ฅ1 ) = 1 ๐ฅ2 = 7 ; ๐(๐ฅ2 ) = 2.5 3 3; 2,5 2,5 7; 2,5 2 1,5 1 4,5; 1 0,5 0 0 1 2 3 4 5 Dadas las condiciones se obtienen las siguientes ecuaciones 1. ๐๐. ๐๐๐ ๐๐ + ๐๐. ๐๐๐๐ + ๐. ๐๐๐ + ๐ ๐ = ๐ (1) ๐๐. ๐๐๐ ๐๐ + ๐๐. ๐๐๐๐ + ๐. ๐๐๐ + ๐ ๐ = ๐ (2) 2. ๐๐๐๐ + ๐๐๐ + ๐๐๐ + ๐ ๐ = ๐. ๐ (3) 135 6 7 8 Métodos Numéricos Ing. William Caiza ๐๐๐๐๐ + ๐๐๐๐ + ๐๐๐ + ๐ ๐ = ๐. ๐ (4) 3. ๐๐. ๐๐๐๐ + ๐๐๐ + ๐๐ = ๐๐. ๐๐๐๐ + ๐๐๐ + ๐๐ (5) 4. ๐๐๐๐ + ๐๐๐ = ๐๐๐๐ + ๐๐๐ (6) 5. ๐๐๐๐ + ๐๐๐ = ๐ (7) ๐๐๐๐ + ๐๐๐ = ๐ (8) Respuesta: ๐๐ = ๐. ๐๐๐๐ ๐๐ = โ๐. ๐ ๐๐ = ๐. ๐ ๐ ๐ = ๐. ๐ ๐๐ = โ๐. ๐๐๐ ๐๐ = ๐. ๐๐ ๐๐ = โ๐๐. ๐๐ ๐ ๐ = ๐๐. ๐๐ 136 Métodos Numéricos Ing. William Caiza CAPITULO 6: INTEGRACIÓN NUMÉRICA La deducción de las fórmulas de cuadraturas puede hacerse a partir de la interpolación polinomial. Recordemos que existe un único polinomio para aproximar la función f(x) en el [a, b], de manera que: ๐๐ = ๐(๐๐ ) Luego aproximamos la integral de f(x) por la integral del polinomio de grado n la formula resultante se llama โFórmula de Cuadratura de Newton-Cotesโ. Si el primer nodo ๐๐ = ๐ y el último nodo ๐๐ = ๐ , entonces se dice que la fórmula de Newton-Cotes es cerrada. Fórmulas de Cuadratura de Newton-Cotes 1) Regla del Trapecio Imagen 6.1: Regla del trapecio b โซ f(x)dx = a h (f(x0 ) + f(x1 ) ); 2 Regla del trapecio Sean las particiones de [a, b] definida como una sucesión de términos {๐ฑ ๐ , ๐ฑ ๐ , ๐ฑ ๐ โฆ . . ๐ฑ ๐ง } y ๐ฑ ๐ = ๐ y ๐ฑ ๐ง = ๐, Estas particiones son equidistantes es decir ๐ฑ ๐ค = ๐ฑ ๐ + ๐ค๐ก k=0,1,2โฆโฆn 137 Métodos Numéricos Ing. William Caiza โ= ๐โ๐ ๐ ; donde n es el numero de intervalos que tiene [a, b] Propiedades de partición equidistante 1. ๐ฟ๐ โ ๐ฟ๐ = (๐ โ ๐)๐ 2. ๐ฟ โ ๐ฟ๐ฑ = ๐ฏ(๐ โ ๐), ๐ โ [๐ , ๐] 3. ๐ฟ = ๐ฟ๐ + ๐๐ Ejercicio: Verificación de las propiedades anteriores GRAFICO CUADERNO 3 โ 5 = (-2) (1) n=5 ๐ฟ๐ = ๐ฟ๐ + ๐๐ ๐= -2 = 2 ๐โ๐ ๐โ๐ = =๐ ๐ ๐ Calculando las particiones tenemos: 2da Verificación de 1. ๐ฟ๐ = ๐ฟ๐ + ๐๐ = ๐ + ๐ = ๐ ๐ฟ๐ โ ๐ฟ๐ = (๐ โ ๐)(๐) ๐ฟ๐ = ๐ฟ๐ + ๐๐ = ๐ + ๐(๐) = ๐ 7โ4=3 ๐ฟ๐ = ๐ฟ๐ + ๐๐ = ๐ + ๐(๐) = ๐ 3=3 ๐ฟ๐ = ๐ฟ๐ + ๐๐ = ๐ + ๐(๐) = ๐ ๐ฟ๐ = ๐ฟ๐ + ๐๐ = ๐ + ๐(๐) = ๐ 1ra Verificación 1. ๐ฟ๐ โ ๐ฟ๐ = (๐ โ ๐)(๐) 1ra Verificación de 2. X โ X 3 = โ(๐ก โ 3), ๐ก โ [0,5] si t = 0 xโ5=1(0โ3) x = -3 + 5 138 Métodos Numéricos Ing. William Caiza x=2 2da Verificación de 2. X โ X 0 = โ(๐ก โ 3), ๐ก โ [0,5] si t = 5 xโ2=1(5โ0) x=5+2 x=7 3ra Verificación de 2. X โ X 4 = โ(๐ก โ 4), ๐ก โ [0,5] si t = 2 xโ6=1(2โ4) x=-2+6 x=4 Ejercicio: Demostrar la regla del trapecio ๐ โซ ๐(๐)๐ ๐ = ๐ ๐ (๐(๐) + ๐(๐)) ๐ ๐๐๐ ๐ท๐๐๐๐ ๐ก๐๐๐ ๐๐๐ ๐๐ ๐ก๐๐๐ก๐ ๐ ๐ ๐ก๐๐๐๐: ๐ ๐ โซ ๐(๐ฅ)๐๐ฅ = โซ ๐๐ (๐ฅ)๐๐ฅ ๐ ๐ ๐๐๐๐ ๐๐ ๐๐๐ ๐ ๐๐ ๐๐ ๐ ๐๐๐๐ ๐๐๐ ๐๐๐๐๐๐๐๐: ๐ = 1 ๐ ๐ ๐ โซ ๐(๐ฅ)๐๐ฅ โ โซ ๐๐ (๐ฅ)๐๐ฅ = โซ ๐1 (๐ฅ)๐๐ฅ; ๐ = 1 ๐é๐ก๐๐๐ ๐๐ ๐ก๐๐๐๐๐๐๐ ๐ ๐ 1 ๐ ๐ ๐ โซ โ ๐ฟ๐ (๐ฅ)๐(๐ฅ๐ )๐๐ฅ = โซ(๐ฟ0 (๐ฅ)๐(๐ฅ0 ) + ๐ฟ1 (๐ฅ)๐(๐ฅ1 ))๐๐ฅ ๐ ๐=0 ๐ ๐ ๐ = ๐(๐ฅ0 ) โซ ๐ฟ0 (๐ฅ)๐๐ฅ + ๐(๐ฅ1 ) + โซ ๐ฟ1 (๐ฅ)๐๐ฅ ๐ ๐ 139 Métodos Numéricos Ing. William Caiza ๐ ๐ ๐ฅ โ ๐ฅ1 ๐ฅ โ ๐ฅ0 = ๐(๐ฅ0 ) โซ ๐๐ฅ + ๐(๐ฅ1 ) โซ ๐๐ฅ ๐ฅ0 โ ๐ฅ1 ๐ฅ1 โ ๐ฅ0 ๐ 1 ๐ Regla de Simpson 1/3 ๐ โซ ๐(๐ฅ)๐๐ฅ โ ๐ โ (๐(๐ฅ0 ) + 4๐(๐ฅ1 ) + ๐(๐ฅ2 )) 3 ๐ ๐ = โซ ๐(๐ฅ)๐๐ฅ = โซ ๐2 (๐ฅ)๐๐ฅ, ๐ = 2 ๐ ๐ ๐ 2 ๐ = โซ โ ๐ฟ๐ (๐ฅ)๐(๐ฅ๐ ) ๐๐ฅ = โซ (๐ฟ0 (๐ฅ)๐(๐ฅ0 ) + ๐ฟ1 (๐ฅ)๐(๐ฅ1 ) + ๐ฟ2 (๐ฅ)๐(๐ฅ2 ))๐๐ฅ ๐ ๐=0 ๐ ๐ = ๐(๐ฅ0 ) โซ ๐ ๐ ๐ ๐ฟ๐ (๐ฅ)๐๐ฅ + ๐(๐ฅ1 ) โซ ๐ฟ1(๐ฅ)๐๐ฅ + ๐(๐ฅ2 ) โซ ๐ฟ2 (๐ฅ)๐๐ฅ ๐ ๐ 2 ๐ฅ โ ๐ฅ๐ ๐ฅ โ ๐ฅ๐ ๐=0 ๐ ๐ฟ๐ = โ ๐โ ๐ ๐ฟ0 (๐ฅ) = ๐ฅ โ ๐ฅ1 ๐ฅ โ ๐ฅ2 โ ๐ฅ0 โ ๐ฅ1 ๐ฅ0 โ ๐ฅ2 ๐ฟ1 (๐ฅ) = ๐ฅ โ ๐ฅ0 ๐ฅ โ ๐ฅ2 โ ๐ฅ1 โ ๐ฅ0 ๐ฅ1 โ ๐ฅ2 ๐ฟ2 (๐ฅ) = ๐ฅ โ ๐ฅ0 ๐ฅ โ ๐ฅ1 โ ๐ฅ2 โ ๐ฅ0 ๐ฅ2 โ ๐ฅ1 140 Métodos Numéricos Ing. William Caiza Ejemplo ๐ Sea f(x)=sen(x) integrar el método del trapecio en [ 6 , ๐ 5 ] Grafica i. ii. ๐ฅ โ 1 โซ๐ฅ ๐(๐ฅ)๐๐ฅ โ 2 (๐0 + ๐1 ) REGLA DEL TRAPECIO 0 ๐ฅ โ 2 โซ๐ฅ ๐(๐ฅ)๐๐ฅ โ 3 (๐0 + 4๐1 + ๐2 ) REGLA DE SIMPSON 0 ๐ฅ 3โ 3 iii. 3 โซ๐ ๐(๐ฅ)๐๐ฅ โ iv. 4 โซ๐ฅ ๐(๐ฅ)๐๐ฅ โ 45 (7๐0 + 32๐1 + 12๐2 + 32๐3 + 7๐4 ) REGLA DE BOOLE 0 ๐ฅ 8 (๐0 + 3๐1 + 3๐2 + ๐3 ) REGLA DE 8 DE SIMPSON 2โ 0 INTEGRACION DE ROMBERG Aun cuando la regla del trapecio es la fórmula de Newton Cotes más sencilla de aplicar, hemos mostrado en las secciones anteriores que carece del grado de exactitud requerido generalmente. La integración de Romberg es un método que tiene aplicaciones muy variadas debido a que usa la regla del trapecio para dar aproximaciones preliminares y luego aplicar el proceso de extrapolación, para obtener correcciones a las aproximaciones. Algoritmo de Romberg 141 Métodos Numéricos Ing. William Caiza Nivel 1 ๐ ๐ ๐ฐ(๐๐) โ ๐ฐ(๐๐) ๐ ๐ Donde, hm : Integral más exacta he : Integral menos exacta ๐ Integrar mediante Romberg โซ๐ ๐๐๐(๐)๐ ๐ ๐ ๐ โซ ๐บ๐๐(๐)๐ ๐ = โ ๐๐๐(๐) | = (๐. ๐๐๐๐๐ + ๐. ๐๐๐๐๐) = ๐. ๐๐๐๐๐ ๐ ๐ a) Nivel 0 ๐ = ๐, ๐ = ๐ ๐ ;๐ = ๐ ๐ ๐ ๐ฐ(๐=๐) = ๐ [๐๐๐(๐) + ๐๐๐(๐)] = ๐. ๐๐๐๐๐ ๐ ๐ฐ ๐ ๐ [๐๐๐(๐) + ๐๐๐๐ ( ) + ๐๐๐(๐)] = ๐. ๐๐๐๐๐ ๐ ๐ ๐ (๐= ) ๐ = ๐ ๐ (๐. ๐๐๐๐๐) โ (๐. ๐๐๐๐๐) = ๐. ๐๐๐๐๐ ๐ ๐ Error: ๐๐๐๐๐ = |๐. ๐๐๐๐๐ โ ๐. ๐๐๐๐๐| โ ๐๐๐ = ๐. ๐๐% |๐. ๐๐๐๐๐| b) Nivel 0 ๐ = ๐, ๐ = ๐ฐ(๐=๐) = ๐ ๐ ,๐ = ๐ ๐ ๐ [๐๐๐(๐) + ๐๐๐(๐)] = ๐. ๐๐๐๐๐ ๐ 142 Métodos Numéricos Ing. William Caiza ๐ฐ ๐ (๐= ) ๐ = ๐ ๐ [๐๐๐(๐) + ๐๐๐๐ ( ) + ๐๐๐(๐)] = ๐. ๐๐๐๐๐ ๐ ๐ ๐ฐ ๐ (๐= ) ๐ = ๐ ๐ ๐ ๐ [๐๐๐(๐) + ๐ (๐๐๐ ( ) + ๐๐๐ ( ) + ๐๐๐ ( )) + ๐๐๐(๐)] = ๐. ๐๐๐๐๐ ๐ ๐ ๐ ๐ Nivel 1 ๐ ๐ ๐ฐ(๐๐) โ ๐ฐ(๐๐) ๐ ๐ ๐ ๐ (๐. ๐๐๐๐๐) โ (๐. ๐๐๐๐๐) = ๐. ๐๐๐๐๐ ๐ ๐ ๐ ๐ (๐. ๐๐๐๐๐) โ (๐. ๐๐๐๐๐) = ๐. ๐๐๐๐๐ ๐ ๐ Nivel 2 ๐๐ ๐ ๐ฐ(๐๐) โ ๐ฐ(๐๐) ๐๐ ๐๐ ๐๐ ๐ (๐. ๐๐๐๐๐) โ (๐. ๐๐๐๐๐) = ๐. ๐๐๐๐๐ ๐๐ ๐๐ ๐๐๐๐๐ = |๐. ๐๐๐๐๐ โ ๐. ๐๐๐๐๐| โ ๐๐๐ = ๐% |๐. ๐๐๐๐๐| Nivel 3 ๐๐ ๐ ๐ฐ(๐๐) โ ๐ฐ(๐๐) ๐๐ ๐๐ Ejemplo Dado el método del trapecio múltiple, tenemos: ๐ ๐โ1 โ โซ ๐(๐ฅ)๐๐ฅ = [๐(๐)] + ๐(๐) + 2 โ ๐(๐ฅ๐ ) 2 ๐=1 ๐ ๐โ๐ ๐ท๐๐๐๐ ๐ = ; ๐ฅ๐ = ๐ + ๐โ , (๐ = 0,1,2,3, โฆ , ๐) ๐ ๏ผ El primer paso en el proceso de Romberg, es obtener aproximaciones de la regla del trapecio para ๐1 = 1 , ๐2 = 2 , ๐3 = 4 , โฆ , ๐2 = 2๐โ1, donde ๐๐๐ + y : 143 Métodos Numéricos Ing. William Caiza โ๐ = ๐โ๐ ๐โ๐ = ๐+1 ; (โ๐ ๐๐ ๐๐ ๐๐๐๐๐๐ ๐๐๐๐๐๐๐๐ก๐ ๐ ๐๐ ) ๐๐ 2 ๐ ๐๐โ๐ 1 1 2 2 3 4 4 8 5 16 6 32 โฎ โฎ ๏ผ Aplicando el trapecio múltiple, de las particiones indicadas anteriormente obtenemos: 2๐โ1 โ1 ๐ โ๐ โซ ๐(๐ฅ)๐๐ฅ = [๐(๐) + ๐(๐) + 2 โ ๐(๐ + ๐โ๐ )] 2 ๐=1 ๐ Demostración: ๐2 ๐2 2 โซ ๐(๐ฅ) ๐๐ฅ = โซ ๐2 (๐ฅ)๐๐ฅ = โ ๐ค๐ฅ ๐๐ฅ ๐0 ๐0 ๐=0 ๐(๐ฅ2 ) (๐) = ๐(๐ฅ0 ) ๐(๐ฅ0 ) (๐ฅ) + ๐(๐ฅ1 ) ๐(๐ฅ1 ) + ๐(๐ฅ2 ) ๐(๐ฅ2 ) (๐ฅ) Donde: ๐(๐ฅ0 ) = ๐ฅ โ ๐ฅ1 ๐ฅ โ ๐ฅ2 โ ๐ฅ0 โ ๐ฅ1 ๐ฅ0 โ ๐ฅ2 ๐(๐ฅ1 ) = ๐ฅ โ ๐ฅ0 ๐ฅ โ ๐ฅ2 โ ๐ฅ1 โ ๐ฅ0 ๐ฅ1 โ ๐ฅ2 ๐(๐ฅ2 ) = ๐ฅ โ ๐ฅ0 ๐ฅ โ ๐ฅ1 โ ๐ฅ2 โ ๐ฅ0 ๐ฅ2 โ ๐ฅ1 2 2 โ(๐ก โ 1) โ โ(๐ก โ 2) โ(๐ก โ 0)โ(๐ก โ 2) ๐(๐ฅ0 ) โซ โ๐๐ก + ๐1 โซ โ๐๐ก + โโ โ โ2โ โ โ โโ 0 0 2 +๐(๐ฅ2 ) โซ 0 โ(๐ก) โ โ(๐ก โ 1) โ๐๐ก 2โ โ โ 2 ๐(๐ฅ0 ) โ 2 ๐(๐ฅ ) โ 2 โซ (๐ก โ 1)(๐ก โ 2)๐๐ก โ ๐(๐ฅ1 ) โ โซ (๐ก)(๐ก โ 2)๐๐ก + 20 โซ (๐ก)(๐ก โ 1)๐๐ก 2 2 0 0 0 144 Métodos Numéricos Ing. William Caiza 2 ๐(๐ฅ0 ) โ 2 2 ๐(๐ฅ2 ) โ 2 2 2 โซ (๐ก โ 3๐ก + 2)๐๐ก โ ๐(๐ฅ1 ) โ โซ (๐ก โ 2๐ก)๐๐ก + โซ (๐ก โ ๐ก)๐๐ก 2 2 0 0 0 ๐(๐ฅ0 ) โ ๐ก 3 3๐ก 2 ๐(๐ฅ ) โ ๐ก 3 ๐ก 2 2 ๐ก 3 2๐ก 2 2 2 ( โ + 2๐ก| ) โ ๐(๐ฅ1 ) โ ( โ | )+ 2 ( โ | ) 0 2 3 2 3 2 0 2 3 2 0 ๐(๐ฅ0 ) โ 2 ๐(๐ฅ ) โ 2 4 ( ) โ ๐(๐ฅ1 ) โ (โ ) + 2 ( ) 2 3 3 2 3 โ 3 (๐(๐ฅ0 ) + 4๐(๐ฅ1 ) + ๐(๐ฅ2 ) ) R. Simpson 1/3 ๐โ1 ๐โ2 ๐=1 ๐=1 ๐ ๐ผ = [๐(๐๐ ) + 4 โ ๐(๐๐๐โ๐ ) + 2 โ ๐(๐๐๐ ) + ๐(๐๐ ) ] ๐ 1 ๐ ๐๐๐๐ ๐ ๐๐๐๐ ๐๐ ๐๐ข๐๐ก๐๐๐๐ 3 Demostración Regla Simpson 3/8 ๐ฅ3 3 3 โซ๐ฅ ๐(๐ฅ) = 8 โ(๐๐ฅ0 + 3๐๐ฅ1 + 3๐๐ฅ2 + ๐๐ฅ3 ) ๐ ๐๐๐๐ ๐๐ 8 ๐๐๐๐๐ ๐๐ 0 Demostración: ๐3 ๐ฅ3 3 โซ ๐(๐ฅ) ๐๐ฅ = โซ ๐3 ๐๐ฅ = โ ๐๐ฅ ๐๐ฅ ๐0 ๐ฅ0 ๐=0 ๐3 (๐ฅ) = ๐๐ฅ0 ๐๐ฅ0 (๐ฅ) + ๐๐ฅ1 ๐๐ฅ1 (๐ฅ) + ๐๐ฅ2 ๐๐ฅ2 (๐ฅ) + ๐๐ฅ3 ๐๐ฅ3 (๐ฅ) Donde: ๐๐ฅ0 = ๐ฅ โ ๐ฅ0 ๐ฅ โ ๐ฅ2 ๐ฅ โ ๐ฅ3 โ โ ๐ฅ0 โ ๐ฅ1 ๐ฅ0 โ ๐ฅ2 ๐ฅ0 โ ๐ฅ3 ๐๐ฅ1 = ๐ฅ โ ๐ฅ0 ๐ฅ โ ๐ฅ2 ๐ฅ โ ๐ฅ3 โ โ ๐ฅ1 โ ๐ฅ0 ๐ฅ1 โ ๐ฅ2 ๐ฅ1 โ ๐ฅ3 ๐๐ฅ2 = ๐ฅ โ ๐ฅ0 ๐ฅ โ ๐ฅ1 ๐ฅ โ ๐ฅ3 โ โ ๐ฅ2 โ ๐ฅ0 ๐ฅ2 โ ๐ฅ1 ๐ฅ2 โ ๐ฅ3 ๐๐ฅ3 = ๐ฅ โ ๐ฅ0 ๐ฅ โ ๐ฅ1 ๐ฅ โ ๐ฅ2 โ โ ๐ฅ3 โ ๐ฅ0 ๐ฅ3 โ ๐ฅ1 ๐ฅ3 โ ๐ฅ2 145 Métodos Numéricos Ing. William Caiza ๐ฅ3 ๐๐ฅ0 = โซ 0 โ(๐ก โ 1) โ โ(๐ก โ 2) โ โ(๐ก โ 3)โ๐๐ก โโ โ โ2โ โ โ3โ ๐ฅ3 โ(๐ก) โ โ(๐ก โ 2) โ โ(๐ก โ 3)โ๐๐ก + ๐๐ฅ1 โซ โ โ โโ โ โ2โ ๐ฅ0 ๐ฅ3 โ(๐ก) โ โ(๐ก โ 1) โ โ(๐ก โ 3) + ๐๐ฅ2 โซ 2โ โ โ โ โโ ๐ฅ0 ๐ฅ3 โ๐ก โ โ(๐ก โ 1) โ โ(๐ก โ 2)โ๐๐ก ๐๐ฅ0 โ ๐ฅ3 + ๐๐ฅ3 โซ โ โซ (๐ก โ 1)(๐ก โ 2)(๐ก โ 3)๐๐ก 3โ โ 2โ โ โ 6 ๐ฅ0 ๐ฅ0 ๐๐ฅ โ ๐ฅ3 ๐๐ฅ โ ๐ฅ3 + 1 โซ ๐ก(๐ก โ 2)(๐ก โ 3)๐๐ก โ 2 โซ ๐ก(๐ก โ 1)(๐ก โ 3) 2 ๐ฅ0 2 ๐ฅ0 ๐ฅ 3 ๐๐ฅ โ + 3 โซ ๐ก(๐ก โ 1)(๐ก โ 2)๐๐ก 6 ๐ฅ0 ๐๐ฅ0 โ ๐ฅ3 2 โ โซ (๐ก 3 โ 3๐ก + 2)(๐ก โ 3)๐๐ก 6 ๐ฅ0 ๐๐ฅ1 โ ๐ฅ3 3 ๐๐ฅ3 โ ๐ฅ3 3 2 + โซ (๐ก โ 4๐ก + 3๐ก)๐๐ก + โซ ๐ก โ 3๐ก + 2๐ก๐๐ก 2 ๐ฅ0 6 ๐ฅ0 ๐๐ฅ โ ๐ฅ3 โ 3 โซ (๐ก)3 โ 3๐ก 2 + 2๐ก๐๐ก 6 ๐ฅ0 ๐(๐ฅ ) โ ๐ฅ3 ๐(๐ฅ )โ ๐ก 4 5๐ก 3 3 โ 0 โซ (๐ก 3 โ 6๐ก 2 + 11๐ก โ 6)๐๐ก + 1 [ โ + 3๐ก 2 | ] 0 6 2 4 3 ๐ฅ0 ๐(๐ฅ ) โ ๐ก 4 4๐ก 3 3๐ก 2 3 ๐(๐ฅ ) โ ๐ก 4 3 + 2 [ + + | ] + 3 [ โ ๐ก3 + ๐ก2| ] 0 2 4 3 2 0 6 4 3 9 9 3 ๐๐ฅ0 โ + ๐๐ฅ1 โ + ๐๐ฅ2 โ + ๐๐ฅ3 โ 8 8 8 8 3 8 โ[๐๐ฅ0 + 3๐๐ฅ1 + 3๐๐ฅ2 + ๐๐ฅ3 ] R. de 3/8 Simpson Algoritmo del trapecio function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) funcion=char(inputdlg('ingrese la funcion')); n=str2double(inputdlg('cuantos numeros desea ingresar')); f=inline(funcion); for i=1:n etiqueta=['x( ' num2str(i) ')=']; x(i)=str2double(inputdlg(etiqueta)); 146 Métodos Numéricos Ing. William Caiza end for i=1:n y(i)=f(x(i)); end opcion=str2double(inputdlg('elija la opcion 1 o 2')); switch opcion case 1 h=x(2)-x(1); integral=(f(x(2))-f(x(1)))*(h/2); ex=x(1):0.1:x(2); [fx cx]=size(ex); for i=1:cx ff(i)=f(ex(i)); end plot([x(1)-5 x(2)+5],[0 0]); hold on; plot([0 0],[max(ff)+3 min(ff)-3]); area(ex,ff); set(handles.text2,'String',integral); case 2 s=0; [fx cx]=size(ex); for i=1:cx ff(i)=f(ex(i)); end plot([x(1)-5 x(2)+5],[0 0]); hold on; plot([0 0],[max(ff)+3 min(ff)-3]); area(ex,ff); set(handles.text2,'String',integral); case 2 s=0; for i=2:n-1 s=s+2*f(x(i)); end h=x(2)-x(1); integral=(h/2)*(f(x(1))+s+f(x(n))); set(handles.text2,'string',integral); xx=x(1):0.1:x(n); [fxx cxx]=size(xx); for i=1:cxx yy(i)=f(xx(i)); end plot([x(1)-5 x(2)+5],[0 0]); hold on; plot([0 0],[max(ff)+3 min(ff)-3]); area(xx,yy); end for i=1:n etiqueta=['x(' num2str(i) ')=']; x(i)=str2double(inputdlg(etiqueta)); end for i=1:n y(i)=f(x(i)); end 147 Métodos Numéricos Ing. William Caiza h=x(2)-x(1); integral=(f(x(2))-f(x(1)))*(h/2); ex=x(1):0.1:x(2); [fx cx]=size(ex); for i=1:cx ff(i)=f(ex(i)); end plot([x(1)-5 x(2)+5],[0 0]); hold on; plot([0 0],[max(ff)+3 min(ff)-3]); area(ex,ff); Figura 6.7: Ejecución del programa 6.1.2 Regla del Trapecio Múltiple Imagen 6.2: regla del trapecio Múltiple 148 Métodos Numéricos Ing. William Caiza ๐๐๐๐ ๐๐ ๐๐á๐๐๐๐ ๐ก๐๐๐๐๐๐ : ๐ ๐ฅ1 ๐ฅ3 ๐ฅ2 ๐ฅ4 โซ ๐(๐ฅ)๐๐ฅ = = โซ ๐1 (๐ฅ)๐๐ฅ + โซ ๐1 (๐ฅ)๐๐ฅ + โซ ๐1 (๐ฅ)๐๐ฅ + โซ ๐1 (๐ฅ)๐๐ฅ ๐ ๐ฅ0 ๐ฅ1 ๐ฅ2 ๐ฅ3 โ โ โ โ = (๐(๐ฅ0 ) + ๐(๐ฅ1 )) + (๐(๐ฅ1 ) + ๐(๐ฅ2 )) + (๐(๐ฅ2 ) + ๐(๐ฅ3 )) + (๐(๐ฅ3 ) + ๐(๐ฅ4 )) 2 2 2 2 โ = (๐(๐ฅ0 ) + 2๐(๐ฅ1 )) + 2๐(๐ฅ2 ) + 2๐(๐ฅ3 ) + ๐(๐ฅ4 ) 2 ๐บ๐๐๐๐๐๐๐๐ง๐๐๐๐ ๐ ๐ ๐ก๐๐๐๐: ๐ ๐โ๐ ๐ โซ ๐(๐)๐ ๐ = (๐(๐๐ ) + ๐ โ ๐(๐๐ ) + ๐(๐๐ )) ๐ ๐=๐ ๐ Ejemplo 1 7 Dado โซ3 ๐ฅ 2 ๐๐ฅ , calcular: a) Utilizar la Regla del Trapecio b) Utilizar la Regla del Trapecio 3 veces c) Utilizar la Regla del Trapecio 5 veces RESOLUCION a) โ = 7 7โ3 1 =4 โ 4 โซ ๐(๐ฅ)๐๐ฅ = (๐(3) + ๐(7)) = (9 + 49) = 116 2 2 3 b) โ = 7โ3 3 = 4 3 4 13 ๐ฅ1 = 3 + = 3 3 8 17 ๐ฅ2 = 3 + = 3 3 ๐ฅ3 = 3 + 4 = 7 7 โซ ๐(๐ฅ)๐๐ฅ = 3 โ 13 โ 13 17 โ 17 (๐(3) + ๐ ( )) + (๐ ( ) + ๐ ( )) + (๐ ( ) + ๐(7)) 2 3 2 3 3 2 3 โ 13 17 (๐(3) + 2๐ ( ) + 2๐ ( ) + ๐(7)) 2 3 3 โ 169 289 = (9 + 2 ( ) + 2( ) + 49) = 106,518 2 9 9 = c) โ = 7โ3 5 = 4 5 149 Métodos Numéricos Ing. William Caiza 4 19 ๐ฅ1 = 3 + (1) = 5 5 4 23 ๐ฅ2 = 3 + (2) = 5 5 4 27 ๐ฅ3 = 3 + (3) = 5 5 4 31 ๐ฅ4 = 3 + (4) = 5 5 4 ๐ฅ5 = 3 + (5) = 7 5 7 โซ ๐(๐ฅ)๐๐ฅ = 3 โ 19 โ 19 23 โ 23 27 (๐(3) + ๐ ( )) + (๐ ( ) + ๐ ( )) + (๐ ( ) + ๐ ( )) 2 5 2 5 5 2 5 5 โ 27 31 โ 31 + (๐ ( ) + ๐ ( )) + (๐ ( ) + ๐(7)) 2 5 5 2 5 โ 19 23 27 31 (๐(3) + 2๐ ( ) + 2๐ ( ) + 2๐ ( ) + 2๐ ( ) + ๐(7)) 2 5 5 5 5 2 361 529 729 961 = (9 + 2 ( ) + 2( ) + 2( ) + 2( ) + 49) = 105,76 5 25 25 25 25 = Algoritmo Trapecio Multiple function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) funcion=char(inputdlg('ingrese la funcion')); f=inline(funcion); n=str2double(inputdlg('ingrese numero de particiones')); for i=1:n etiqueta=['x(' num2str(i) ')=']; x(i)=str2double(inputdlg(etiqueta)); end for i=1:n y(i)=f(x(i)); end % constante k=(x(n)-x(1))/(2*(n-1)); %sumatorio del trapecio interno s=0; for i=1:n-1 s=s+2*f(x(i)); end integral=k*(f(x(1))+s+f(x(n))); set(handles.text2,'String', integral); set(handles.text5,'String', funcion); set(handles.text7,'String', x); %eje x plot([x(1)-2 x(n)+2],[0 0]); 150 Métodos Numéricos Ing. William Caiza hold on; %eje y plot([0 0],[min(y)-2 max(y)+2]); %area de integración xx=x(1):0.1:x(n); [fxx cxx]=size(xx); for i=1:cxx yy(i)=f(xx(i)); end plot(xx,yy,'r'); area(xx,yy); %para graficar los puntos x0...xn for i=1:n cadena(i)=num2str(x(i)); end for i=1:n text(x(i),0,cadena(i)); end legend('Trapecio Múltiple'); 6.1.3 Regla de Simpson 1. Regla de Simpson 1/3 151 Métodos Numéricos Ing. William Caiza n=2 Imagen 6.3: Regla de Simpson 1/3 ๐ โซ ๐(๐)๐ ๐ = ๐ โซ๐ ๐(๐ฅ)๐๐ฅ Demostrar que ๐ โ ๐ ๐ฅ2 โ ๐ฅ0 โ= = 2 2 ๐ ๐ (๐(๐๐ ) + ๐๐(๐๐ ) + ๐(๐๐ )) ๐ โ = 3 (๐(๐ฅ0 ) + 4๐(๐ฅ1 ) + ๐(๐ฅ2 )) ๐ฅ2 ๐ โซ ๐(๐ฅ)๐๐ฅ = โซ [๐ฟ0 (๐ฅ)๐(๐ฅ0 ) + ๐ฟ1 (๐ฅ)๐(๐ฅ1 ) + ๐ฟ2 (๐ฅ)๐(๐ฅ2 )] ๐ Donde: ๐ฟ0 (๐ฅ) = ๐ฅ0 ๐ฅ โ ๐ฅ1 ๐ฅ โ ๐ฅ2 × ; ๐ฅ0 โ ๐ฅ1 ๐ฅ0 โ ๐ฅ2 ๐ฅ2 ๐ ๐ฟ1 (๐ฅ) = ๐ฅ โ ๐ฅ0 ๐ฅ โ ๐ฅ2 ๐ฅ โ ๐ฅ0 ๐ฅ โ ๐ฅ1 × ; ๐ฟ2 (๐ฅ) = × ๐ฅ1 โ ๐ฅ0 ๐ฅ1 โ ๐ฅ2 ๐ฅ2 โ ๐ฅ0 ๐ฅ2 โ ๐ฅ1 ๐ฅ2 ๐ฅ โ ๐ฅ1 ๐ฅ โ ๐ฅ2 ๐ฅ โ ๐ฅ0 ๐ฅ โ ๐ฅ2 โด โซ ๐(๐ฅ)๐๐ฅ = ๐(๐ฅ0 ) โซ × ๐๐ฅ + ๐(๐ฅ1 ) โซ × ๐๐ฅ ๐ฅ0 โ ๐ฅ1 ๐ฅ0 โ ๐ฅ2 ๐ฅ1 โ ๐ฅ0 ๐ฅ1 โ ๐ฅ2 ๐ ๐ฅ0 ๐ฅ2 + ๐(๐ฅ2 ) โซ ๐ฅ0 ๐ฅ0 ๐ฅ โ ๐ฅ0 ๐ฅ โ ๐ฅ1 × ๐๐ฅ ๐ฅ2 โ ๐ฅ0 ๐ฅ2 โ ๐ฅ1 ๐๐๐๐ ๐ฅ = ๐ฅ0 + โ๐ก ๐๐ฅ โ๐๐ก = ๐๐ก ๐๐ก โด ๐๐ฅ = โ๐๐ก (๐ธ๐๐ข๐๐๐ó๐ 2) ๐๐ ๐ฅ = ๐ฅ0 ๐๐ (1) ๐ ๐ ๐ก๐๐๐๐: ๐ฅ0 = ๐ฅ0 + โ๐ก 0 = โ๐ก โด ๐ก=0 (๐ธ๐๐ข๐๐๐ó๐ 3) ๐๐ ๐ฅ = ๐ฅ2 ๐๐ (1) ๐ ๐ ๐ก๐๐๐๐: ๐ฅ2 = ๐ฅ0 + โ๐ก ๐ฅ2 โ ๐ฅ0 = โ๐ก 2โ = โ๐ก โด ๐ก=2 152 Métodos Numéricos Ing. William Caiza 2 2 2 (๐ก โ 1)โ (๐ก โ 2)โ ๐กโ (๐ก โ 2)โ ๐กโ (๐ก โ 1) = ๐(๐ฅ0 ) โซ × โ๐๐ก + ๐(๐ฅ1 ) โซ × โ๐๐ก + ๐(๐ฅ2 ) โซ × โ๐๐ก โโ โ2โ โ โโ 2โ โ 0 = 0 2 2 0 2 โ โ ๐(๐ฅ0 ) โซ(๐ก โ 1)(๐ก โ 2)๐๐ก โ โ๐(๐ฅ1 ) โซ ๐ก(๐ก โ 2)๐๐ก + ๐(๐ฅ2 ) โซ ๐ก(๐ก โ 1)๐๐ก 2 2 0 0 0 2. Regla de Simpson 3/8 n=3 Imagen 6.4: Regla de Simpson 3/8 ๐ โซ ๐(๐)๐ ๐ = ๐ ๐๐ (๐(๐๐ ) + ๐๐(๐๐ ) + ๐๐(๐๐ ) + ๐(๐๐ )) ๐ Ejemplo 2 8 Dada โซ5 ๐ ๐๐(๐ฅ)๐๐ฅ a) Integrar mediante el trapecio b) Integrar 5 veces mediante el trapecio c) Integrar 5 veces simpson 1/3 RESOLUCION: a) โ = 8 8โ5 1 =3 โ 3 โซ ๐ ๐๐(๐ฅ)๐๐ฅ = (๐(5) + ๐(8)) = (๐ ๐๐(5) + ๐ ๐๐(8)) = 0.0456 2 2 5 ๏ผ Valor real 8 โซ ๐ ๐๐(๐ฅ)๐๐ฅ = โcos(๐ฅ)85 = 0.429 5 ๏ผ Error 153 Métodos Numéricos Ing. William Caiza 0.429 โ 0.0456 ๐๐๐๐๐ = | | = 0.89 × 100% = 89% 0.429 b) โ = 8 8โ5 5 = 3 5 โ 28 โ 28 31 โ 31 34 โซ ๐ ๐๐(๐ฅ)๐๐ฅ = (๐ ๐๐(5) + ๐ ๐๐ ( )) + (๐ ๐๐ ( ) + ๐ ๐๐ ( )) + (๐ ๐๐ ( ) + ๐ ๐๐ ( )) 2 5 2 5 5 2 5 5 5 โ 34 37 โ 37 + (๐ ๐๐ ( ) + ๐ ๐๐ ( )) + (๐ ๐๐ ( ) + ๐ ๐๐(8)) 2 5 5 2 5 3 28 31 34 37 = (๐ ๐๐(5) + 2๐ ๐๐ ( ) + 2๐ ๐๐ ( ) + 2๐ ๐๐ ( ) + 2๐ ๐๐ ( )) + ๐ ๐๐(8) = 0.4162 10 5 5 5 5 0.429 โ 0.4162 ๐๐๐๐๐ = | | = 0.03 × 100% = 3% 0.429 c) โ = 8 8โ5 4 = 3 4 โซ ๐ ๐๐(๐ฅ)๐๐ฅ = 5 = โ 23 26 โ 26 29 (๐ ๐๐(5) + 4๐ ๐๐ ( ) + ๐ ๐๐ ( )) + (๐ ๐๐ ( ) + 4๐ ๐๐ ( ) + ๐ ๐๐(8)) 3 4 4 3 4 4 1 23 26 29 (๐ ๐๐(5) + 4๐ ๐๐ ( ) + 2๐ ๐๐ ( ) + 4๐ ๐๐ ( ) + ๐ ๐๐(8)) = 0.42997 4 4 4 4 Algoritmo de Simpson function calcular_Callback(hObject, eventdata, handles) % hObject handle to calcular (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %CODIGO DEL PROGRAMA(CALCULO DE AREA) f=inline(get(handles.fx,'string')); a=str2num(get(handles.a,'string')); b=str2num(get(handles.b,'string')); n=str2double(get(handles.n,'string')); h=(b-a)/n; s=f(a)+f(b); for i=2:n x(i)=a+(i-1)*h; s=s+2*f(x(i)); end I=s*(h/2); set(handles.area,'string',I) %CODIGO PARA GRAFICA for i=1:n+1 x(i)=a+(i-1)*h; y(i)=f(x(i)); end x=[x,b,a,a]; y=[y,0,0,f(a)]; fill(x,y,[0.8 0.4 0.9]); for i=1:n+1 x(i)=a+(i-1)*h; y(i)=f(x(i)); 154 Métodos Numéricos Ing. William Caiza line([x(i),x(i)],[0,f(x(i))]); end hold on ezplot(f,[min(x):0.2:max(x)]) ylabel('F(X)'); grid 'on' set(handles.axes1,'xminorgrid','on'); set(handles.axes1,'yminorgrid','on'); Figura 6.8 Botones de la máscara de interface 155 Métodos Numéricos Ing. William Caiza Figura 6.9: Ejecución del programa 6.4 Regla de Boole ๐ฅ4 โซ ๐(๐ฅ)๐๐ฅ = ๐ฅ0 2โ (7๐๐ฅ0 + 32๐๐ฅ1 + 12๐๐ฅ2 + 32๐๐ฅ3 + 7๐๐ฅ4 ) ๐ ๐๐๐๐ ๐ต๐๐๐๐ 45 Demostración: ๐ฅ4 ๐ฅ4 4 โซ ๐(๐ฅ)๐๐ฅ = โซ ๐4 (๐ฅ) = โ ๐ค๐ฅ ๐๐ฅ ๐ฅ0 ๐ฅ0 ๐ฅ=0 ๐4 (๐ฅ) = ๐๐ฅ0 ๐๐ฅ0 (๐ฅ) + ๐๐ฅ1 ๐๐ฅ1 (๐ฅ) + ๐๐ฅ2 ๐๐ฅ2 (๐ฅ) + ๐๐ฅ3 ๐๐ฅ3 (๐ฅ) + ๐๐ฅ4 ๐๐ฅ4 (๐ฅ) Donde: ๐ฅ โ ๐ฅ0 ๐ฅ โ ๐ฅ2 ๐ฅ โ ๐ฅ3 ๐ฅ โ ๐ฅ4 โ(๐ก โ 1) โ โ(๐ก โ 2) โ โ(๐ก โ 3) โ โ(๐ก โ 4) ๐ ๐ฅ0 = โ โ โ = ๐ฅ0 โ ๐ฅ1 ๐ฅ0 โ ๐ฅ2 ๐ฅ0 โ ๐ฅ3 ๐ฅ0 โ ๐ฅ4 โโ โ โ2โ โ โ3โ โ โ4โ ๐ ๐ฅ1 = ๐ฅ โ ๐ฅ0 ๐ฅ โ ๐ฅ2 ๐ฅ โ ๐ฅ3 ๐ฅ โ ๐ฅ4 โ(๐ก) โ โ(๐ก โ 2) โ โ(๐ก โ 3) โ โ(๐ก โ 4) โ โ โ = ๐ฅ1 โ ๐ฅ0 ๐ฅ1 โ ๐ฅ2 ๐ฅ1 โ ๐ฅ3 ๐ฅ1 โ ๐ฅ4 โ โ โโ โ โ2โ โ โ3โ 156 Métodos Numéricos Ing. William Caiza ๐ ๐ฅ2 = ๐ฅ โ ๐ฅ0 ๐ฅ โ ๐ฅ1 ๐ฅ โ ๐ฅ3 ๐ฅ โ ๐ฅ4 โ๐ก โ โ(๐ก โ 1) โ โ(๐ก โ 3) โ โ(๐ก โ 4) โ โ โ = ๐ฅ2 โ ๐ฅ0 ๐ฅ2 โ ๐ฅ1 ๐ฅ2 โ ๐ฅ3 ๐ฅ2 โ ๐ฅ4 2โ โ โ โ โโ โ โ2โ ๐ ๐ฅ3 = ๐ฅ โ ๐ฅ0 ๐ฅ โ ๐ฅ1 ๐ฅ โ ๐ฅ2 ๐ฅ โ ๐ฅ4 โ๐ก โ โ(๐ก โ 1) โ โ(๐ก โ 2) โ โ(๐ก โ 4) โ โ โ = ๐ฅ3 โ ๐ฅ0 ๐ฅ3 โ ๐ฅ1 ๐ฅ3 โ ๐ฅ2 ๐ฅ3 โ ๐ฅ4 3โ โ 2โ โ โ โ โโ ๐ ๐ฅ4 = ๐ฅ โ ๐ฅ0 ๐ฅ โ ๐ฅ1 ๐ฅ โ ๐ฅ2 ๐ฅ โ ๐ฅ3 โ๐ก โ โ(๐ก โ 1) โ โ(๐ก โ 2) โ โ(๐ก โ 3) โ โ โ = ๐ฅ4 โ ๐ฅ0 ๐ฅ4 โ ๐ฅ1 ๐ฅ4 โ ๐ฅ2 ๐ฅ4 โ ๐ฅ3 4โ โ 3โ โ 2โ โ โ ๐๐ฅ0 โ 4 ๐๐ฅ1 โ 4 โซ (๐ก โ 1)(๐ก โ 2)(๐ก โ 3)(๐ก โ 4)๐๐ก โ โซ ๐ก(๐ก โ 2)(๐ก โ 3)(๐ก โ 4)๐๐ก + 24 0 6 0 ๐๐ฅ2 โ 4 ๐๐ฅ โ 4 โซ ๐ก(๐ก โ 1)(๐ก โ 3)(๐ก โ 4)๐๐ก โ 3 โซ ๐ก(๐ก โ 1)(๐ก โ 2)(๐ก โ 4)๐๐ก + 4 0 6 0 ๐๐ฅ4 โ 4 โซ ๐ก(๐ก โ 1)(๐ก โ 2)(๐ก โ 3)๐๐ก 24 0 ๐๐ฅ0 โ 4 2 ๐๐ฅ โ 4 โซ (๐ก โ 3๐ก + 29(๐ก 2 โ 7๐ก + 12) โ 1 โซ (๐ก 3 โ 5๐ก 2 + 6๐ก) (๐ก โ 4)๐๐ก + 24 0 6 0 ๐๐ฅ2 โ 4 3 ๐๐ฅ3 โ 4 3 2 โซ (๐ก โ 4๐ก + 3๐ก) (๐ก โ 4)๐๐ก โ โซ (๐ก โ 3๐ก 2 + 2๐ก)(๐ก โ 4)๐๐ก + 4 0 6 0 ๐๐ฅ4 โ 4 3 โซ (๐ก โ 3๐ก 2 + 2๐ก)(๐ก โ 3)๐๐ก 24 0 ๐๐ฅ0 โ 4 4 ๐๐ฅ1 โ 4 4 3 2 โซ (๐ก โ 10๐ก + 35๐ก โ 50๐ก + 24)๐๐ก โ โซ (๐ก โ 9๐ก 3 + 26๐ก 2 โ 24๐ก) ๐๐ก + 24 0 6 0 ๐๐ฅ2 โ 4 4 ๐๐ฅ โ 4 โซ (๐ก โ 8๐ก 3 + 19๐ก 2 โ 12๐ก) ๐๐ก โ 3 โซ (๐ก 4 โ 7๐ก 3 + 14๐ก 2 โ 8๐ก) + 2 0 6 0 ๐๐ฅ4 โ 4 4 โซ (๐ก โ 6๐ก 3 + 11๐ก 2 โ 6๐ก)๐๐ก + 24 0 ๐๐ฅ0 โ ๐ก 5 10๐ก 4 35๐ก 3 50๐ก 2 ๐๐ฅ โ ๐ก 5 9๐ก 4 26๐ก 3 24๐ก 2 4 4 [ โ + โ + 24๐ก| ] โ 1 [ โ + โ | ] 0 24 5 4 3 2 6 5 4 3 2 0 + ๐๐ฅ2 โ ๐ก 5 8๐ก 4 19๐ก 3 12๐ก 2 4 ๐๐ฅ โ ๐ก 5 7๐ก 4 14๐ก 3 8๐ก 2 4 [ โ + โ | ]โ 3 [ โ + โ | ] 4 5 4 3 2 0 6 5 4 3 2 0 157 Métodos Numéricos Ing. William Caiza ๐๐ฅ4 โ ๐ก 5 6๐ก 4 11๐ก 3 6๐ก 2 4 [ โ + โ | ] 24 5 4 3 2 0 ๐๐๐ ๐ ๐๐ ๐๐ ๐๐ ๐๐ ๐๐ [ ] โ ๐๐๐ ๐ [โ ] + ๐๐๐ ๐ [ ] โ ๐๐๐ ๐ [โ ] + ๐๐๐ ๐ [ ] ๐๐ ๐๐ ๐๐ ๐๐ ๐๐ ๐๐ ๐๐ ๐๐ [๐๐๐๐ + ๐๐๐๐๐ + ๐๐๐๐๐ + ๐๐๐๐๐ + ๐๐๐๐๐ ] R. de Boole Ejercicios propuestos 1.-Integre la función siguiente en forma tanto analítica como la regla de Simpson, con n=4 y 5. Analice los resultados. 5 โซ (4x โ 3)3 dx โ3 2.- Integre la función siguiente tanto en forma analítica como numérica. Emplee las reglas del trapecio y de Simpson 1/3 para integrar numéricamente la función. Para ambos casos, utilice la versión de aplicación múltiple, con n=4. Calcule los errores relativos porcentuales para los resultados numéricos. 3 โซ x 2 ex dx 0 3.- Integre la función siguiente tanto analítica como numéricamente. Para las evaluaciones numéricas use a) una sola aplicación de la regla del trapecio, b) la regla de Simpson 1/3, c) la regla de Simpson 3/8, d) la regla de Boole, e) el método del punto medio, f) la fórmula de integración abierta de 3 segmentos y 2 puntos, y g) la fórmula de integración abierta de 4 segmentos y 3 puntos. Calcule los errores relativos porcentuales de los resultados numéricos. 1 โซ 152x dx 0 4.- Integre la función que sigue tanto en forma analítica como numérica. Para las evaluaciones numéricas utilice, a) una sola aplicación de la regla del trapecio; b) la regla de Simpson 1/3; c) la regla de Simpson 3/8; d) aplicación múltiple de las reglas de Simpson, con n=5; e) la regla de Boole; f) el método del punto medio; g) la fórmula de integración abierta de 3 segmentos y 2 puntos, y h) la fórmula de integración abierta de 4 segmentos y 3 puntos. 158 Métodos Numéricos Ing. William Caiza 3 โซ (5 + 3cosx) dx 0 Calcule los errores relativos porcentuales para los resultados numéricos. 5.- Suponga que la fuerza hacia arriba de la resistencia del aire sobre un objeto que cae es proporcional al cuadrado de la velocidad. Para este caso, la velocidad se calcula con v(t) = โ gm gcd tanh (โ t) cd m Donde cd =coeficiente de arrastre de segundo orden, a) Si g=9.8 m/s 2 , m=68.1 kg y cd = 0.25 kg/m, use integración analítica para determinar qué tan lejos cae el objeto en 10 segundos, b) Haga lo mismo, pero evalúe la integral con la regla del trapecio de segmento múltiple. Use una n suficientemente grande para detener tres dígitos significativos de exactitud. 6.- Evalué la integral de los datos tabulados a continuación, con a) la regla del trapecio y b) las reglas de Simpson: x 0 0.1 0.2 0.3 0.4 0.5 f(x) 1 8 4 3.5 5 1 7.- Evalué la integral siguiente: ฯ 2 โซ (8 + 4cosx)dx 0 a)en forma analítica; b)con una sola aplicación de la regla del trapecio; c)con aplicación múltiple de la regla de trapecio, con n=2y4; d)con una sola aplicación de la regla de Simpson1/3; e con la aplicación múltiple de la regla de Simpson1/3, con n=4; f)con una sola aplicación de regla de Simpson 3/8; g) con aplicación múltiple de la regla de Simpson 3/8, con n=5. 8.- Evalué la integral siguiente: 3 โซ (1 โ eโx )dx 0 a)en forma analítica; b)con una sola aplicación de la regla del trapecio; c)con aplicación múltiple de la regla de trapecio, con n=2y4; d)con una sola aplicación de la regla de Simpson1/3; e con la aplicación múltiple de la regla de Simpson1/3, con n=4; f)con una sola aplicación de regla de Simpson 3/8; g) con aplicación múltiple de la regla de Simpson 3/8, con n=5. 9.- Evalué la integral siguiente: 3 โซ (1 โ eโx )dx 0 a)en forma analítica; b)con una sola aplicación de la regla del trapecio; c)con aplicación múltiple de la regla de trapecio, con n=2y4; d)con una sola aplicación de la regla de Simpson1/3; e con la aplicación múltiple de la regla de Simpson1/3, con n=4; f)con una sola aplicación de regla de Simpson 3/8; g) con aplicación múltiple de la regla de Simpson 3/8, con n=5. 10.- Evalué la integral siguiente: 159 Métodos Numéricos Ing. William Caiza 4 โซ (1 โ x โ 4x 3 + 2x 5 )dx โ2 a)en forma analítica; b)con una sola aplicación de la regla del trapecio; c)con aplicación múltiple de la regla de trapecio, con n=2y4; d)con una sola aplicación de la regla de Simpson1/3; e con la aplicación múltiple de la regla de Simpson1/3, con n=4; f)con una sola aplicación de regla de Simpson 3/8; g) con aplicación múltiple de la regla de Simpson 3/8, con n=5. Referencia4: métodos numéricos para ingenieros (sexta edición), autor: Steve C. Chapra, pág.: 572 CAPITULO 7: ECUACIONES DIFERENCIALES ORDINARIAS DE PRIMER ORDEN Las ecuaciones diferenciales son una parte muy importante del análisis matemático y modelan innumerables procesos de la vida real. Una ecuación diferencial es una relación, válida en cierto intervalo, entre una variable y sus derivadas sucesivas. Su resolución permite estudiar las características de los sistemas que modelan y una misma ecuación 160 Métodos Numéricos Ing. William Caiza puede describir procesos correspondientes a diversas disciplinas. Las ecuaciones diferenciales tienen numerosas aplicaciones a la ciencia y a la ingeniería, de Modo que los esfuerzos de los científicos se dirigieron en un principio, a la búsqueda de métodos de resolución y de expresión de las soluciones en forma adecuada. 7.1 Métodos de Runge-Kutta Métodos numéricos para la solución de Ecuaciones diferenciales ordinarias de la forma ๐๐ฆ = ๐(๐ฅ, ๐ฆ) ๐๐ฅ 7.1.1 Método de Euler ๐ฆ๐+1 = ๐ฆ๐ + ๐(๐ฅ๐ , ๐ฆ๐ )โ ๐ También se lo conoce a este método como método de Euler-Cauchy o de punto pendiente. En donde se predice un nuevo valor de y usando la pendiente (igual a la primera derivada en el valor original de x) para extrapolar linealmente sobre el tamaño de paso h. Figura 7.1: Ilustración gráfica del método de euler Ejemplo.Utilizando el método de Euler calcule.๐ฆ ´ = ๐ฆ๐ฅ 2 โ 1.2๐ฆ En xโ [0,2] con โ = 0.25 y la condición inicial ๐ฆ(0) = 1 Inicialmente resolviendo analíticamente la ecuación diferencial tenemos: ๐๐ฆ = ๐ฆ๐ฅ 2 โ 1.2๐ฆ ๐๐ฅ 161 Métodos Numéricos Ing. William Caiza ๐๐ฆ = ๐ฆ(๐ฅ 2 โ 1.2) ๐๐ฅ ๐๐ฆ = โซ(๐ฅ 2 โ 1.2)๐๐ฅ ๐ฆ ๐ฅ3 ln ๐ฆ = โ 1,2๐ฅ + ๐ 3 3 โซ ๐ฅ ๐ฆ = ๐ 3 โ1,2๐ฅ+๐ Encontrando el valor de c mediante la condicon iniciual y(o)=1, entonces 03 1 = ๐ 3 โ1,2โ0+๐ 1 = ๐๐ ๐ฟ๐1 = ๐ ๐ถ=0 ๐ ๐ฅ๐ ๐ฆ๐ 0 1 0 0,25 1 0,7 2 0,5 0,5009375 3 0,75 0,38196484 4 5 6 7 8 1 0,3210892 1,25 0,30503474 1,5 0,33267851 1,75 0,42000662 2 0,6155722 ๐(๐ฅ๐, ๐ฆ๐) -1,2 -0,79625 0,47589063 0,24350259 0,06421784 0,11057509 0,34931244 0,78226233 1,72360216 ๐ฆ๐+1 ๐๐(๐๐๐๐) 0,7 0,5009375 Error 1 0 0,7446 0,059897932 0,38196484 0,5721 0,124388219 0,3210892 0,4679 0,183661373 0,30503474 0,33267851 0,42000662 0,6155722 1,04647274 0,4203 0,4278 0,5091 0,7308 1,3056 0,236047593 0,286968824 0,346536024 0,425278299 0,528513939 Ejemplo 2.- Con el método de Euler integre numéricamente la ecuación ๐ฆ` = 4๐ 0,8๐ฅ โ 0.5๐ฆ [0,4] Condición ๐ฆ(0) = 2 ๐ 0 1 2 3 ๐ฅ๐ 0 1 2 3 4 4 h=1 pasos de 1 ๐(๐ฅ๐, ๐ฆ๐) ๐๐(๐๐๐๐) ๐ฆ๐ ๐ฆ๐+1 2 3 5 6,40216371 6,70108186 5,55162279 12,2527046 13,6857774 16,3197819 11,6522387 27,9720207 30,1066952 37,1992489 25,4930811 62,69233 66,7839558 83,3377673 56,4612371 139,799004 65,8995022 ๐๐ ๐+๐ = ๐๐ + ๐(๐๐ , ๐๐ ) × ๐ ๐๐ ๐+๐ = ๐ + ๐ × ๐ 162 Error 4,70108186 9,61870008 20,879467 46,1385184 4,71913255 Métodos Numéricos Ing. William Caiza ๐๐ ๐+๐ = ๐ ๐` ๐+๐ ๐` ๐+๐ ๐` ๐+๐ ๐` ๐+๐ = ๐(๐๐+๐ , ๐๐ ๐+๐ ) = ๐(๐ ; ๐) = 4๐ 0,8โ1 โ 0.5 โ 5 = ๐, ๐๐๐๐๐ ๐ฆฬ = ๐(๐๐ , ๐๐ )๐(๐๐+๐ , ๐๐ ๐+๐ ) ๐ ๐ฆฬ = ๐ + ๐, ๐๐๐๐๐ ๐ ๐ฆฬ = 4,7010815 ๐๐+๐ = ๐๐ + ๐ฆฬ โ ๐ ๐๐+๐ = ๐ + ๐, ๐๐๐๐๐๐๐ ๐๐+๐ = ๐, ๐๐๐๐๐๐๐ Aplicando Laplace a la ecuación ๐ฆ` = 4๐ 0,8๐ฅ โ 0.5๐ฆ ๐๐(๐) โ ๐(๐) + ๐, ๐๐(๐) = ๐ โ ๐ ๐ โ ๐, ๐ ๐๐(๐) + ๐, ๐๐(๐) = ๐ +๐ ๐ โ ๐, ๐ ๐๐(๐) + ๐, ๐๐(๐) = ๐ + ๐๐ โ ๐, ๐ ๐ โ ๐, ๐ ๐(๐)(๐ + ๐, ๐) = ๐(๐) = ๐ + ๐๐ โ ๐, ๐ ๐ โ ๐, ๐ ๐ + ๐๐ โ ๐, ๐ ๐ โ ๐, ๐ โ (๐ + ๐, ๐) Aplicando fracciones parciales 2๐ โ 2,4 ๐ด ๐ต = + ๐ โ 0,8 โ (๐ + 0,5) ๐ โ 0,8 ๐ + 0,5 2๐ โ 2,4 = ๐ด๐ + 0,5๐ด + ๐ต๐ โ 0,8๐ต ๐ด+๐ต =2 0,5๐ด โ 0,8๐ต = โ2,4 163 Métodos Numéricos Ing. William Caiza ๐ด=โ 14 0,8๐ฅ 40 โ0,5๐ฅ ๐ + ๐ 13 13 Ejemplo 3: Con el método de Euler integre numéricamente la ecuación ๐๐ฆ = โ2๐ฅ 3+ 12๐ฅ 2 โ 20๐ฅ + 8,5 ๐๐ฅ Desde x=0 hasta x=4 con un tamaño de paso 0,5. La condición inicial en x=0 es y=1. Solución ๐๐ฆ = โ2๐ฅ 3 + 12๐ฅ 2 โ 20๐ฅ + 8.5 ๐๐ฅ ๐๐ฆ = (โ2๐ฅ 3 + 12๐ฅ 2 โ 20๐ฅ + 8.5)๐๐ฅ โซ ๐๐ฆ = โซ(โ2๐ฅ 3 + 12๐ฅ 2 โ 20๐ฅ + 8.5)๐๐ฅ ๐ฅ4 + 4๐ฅ 3 โ 10๐ฅ 2 + 8.5๐ฅ + ๐ถ 2 04 1=โ 2 + 4(0)3 โ 10(0)2 + 8.5(0) + ๐ถ ๐ถ=1 ๐ฆ = โ0,5๐ฅ 4 + 4๐ฅ 3 โ 10๐ฅ 2 + 8,5 + 1 ๐ฆ=โ Error: ๐ธ๐ก = ๐ฃ๐๐๐๐ ๐ฃ๐๐๐๐๐๐๐๐ โ ๐ฃ๐๐๐๐ ๐๐๐๐๐ฅ๐๐๐๐๐ ๐ธ๐ก = 3,21875 โ 5,25 = โ2,03125 O, expresada como error relativo porcentual, ๐๐ญ =-63,1. En el segundo paso: ๐ฆ(1) = ๐ฆ(0,5) + ๐(0,5; 5,25)0,5 ๐ฒ(๐) = 5,25 + {โ2(0,5)3+ 12(0,5)2 โ 20(0,5) + 8,5} ๐ฒ(๐) = 5,875 Tabla de comparación de los valores verdaderos y aproximados mediante el método de Euler. Se utiliza la ecuación ๐ฒ๐ข+๐ = ๐ฒ๐ข + ๐(๐ฑ ๐ข , ๐ฒ๐ข) ๐ก para implementar el método de Euler: ๐ฆ(0,5) = ๐ฆ(0) + ๐(0,1)0,5 Donde y(0)=1 y la pendiente estimada en x=0 es: ๐(0,1) = โ2(0)3+ 12(0)2 โ 20(0) + 8,5 = 8,5 164 Métodos Numéricos Ing. William Caiza Por lo tanto, ๐ฆ(0,5) = 1,0 + 8,5(0,5) = 5,25 La solución verdadera en x=0,5 es: ๐ฆ = โ0,5(0,5)4+ 4(0,5)3 โ 10(0,5)2 + 8,5(0,5) + 1 = 3,21872 8 7 6 5 y verd 4 y euler 3 2 1 0 0 2 4 6 8 10 12 Figura 7.2 grafica del método de Euler en Excel Ejemplo 2: Resuelva el siguiente problema de valor inicial En el intervalo de t=0 a 2, donde y (0) = 1. Muestre todos sus resultados en la misma gráfica. dy = yt 3 โ 1.5y dt EULER h=0,5 i xi yreal 0 0 1.0000 f(xi,yi) 0 165 yi+1 1 Métodos Numéricos Ing. William Caiza 1 2 3 4 0.5 1 1.5 2 0.4798 0.2865 0.3737 2.7183 -1.5000 -0.3438 -0.0391 0.1099 0.2500 0.0781 0.0586 0.1135 3,0000 2,5000 EULER h=0,25 2,0000 EULER h=0,5 1,5000 Y REAL PUNTO MEDIO 1,0000 RK CUARTO ORDEN 0,5000 0,0000 0 0,5 1 1,5 2 2,5 Figura 7.3 métodos de Runge Kutta 7.3 Análisis del error para el método de Euler La solución numérica de las EDO implica dos tipos de error: Errores de truncamiento: Originados por la naturaleza de las técnicas empleadas para aproximar los valores de y. Errores de redondeo: Causados por el número limitado de cifras significativas que una computadora puede retener. 7.3.1 Errores de truncamiento Los errores de truncamiento se componen de dos partes: Error de truncamiento local: Que resulta de una aplicación del método considerado, en un solo paso. Error de truncamiento propagado: Que resulta de las aproximaciones producidas durante los pasos previos. La suma de los dos es el error total de truncamiento. 7.4 Mejoras del método de Euler Un motivo fundamental de error en el método de Euler es suponer que la derivada al inicio del intervalo es la misma durante todo el intervalo. Hay dos modificaciones simples para evitar esta consideración y son: 1. Método de Heun 2. Método del punto medio 166 Métodos Numéricos Ing. William Caiza 7.1.2 Método de Heun Este método emplea dos derivadas uno en el punto inicial y otra en el final. Las dos derivadas se promedian con la finalidad de obtener una mejor estimación de la pendiente en todo el intervalo. Recuerde que en el método de Euler la pendiente al inicio del intervalo y โฒi= f(xi, yi ) la expresión anterior se utiliza para extrapolar linealmente a yi+1,mediante la siguiente expresión y i+10= yi + f(xi, yi )h La ecuación es una predicción intermedia, da una estimación de yi+1 que permite el cálculo de la estimación de la pendiente al final del intervalo: y i+1โฒ= f(xi+1, y i+10) combinando las dos pendientes, para obtener un pendiente promedio se obtiene: f(xi, yi )+f(xi+1, y i+10) ศฒโฒ = โโ 2 La cual va a ser la pendiente de la expresión de Euler Resumen de las ecuaciones ๐ฒ ๐ข+๐๐= ๐ฒ๐ข + ๐(๐ฑ ๐ข, ๐ฒ๐ข )๐ก (Predictor) ๐ฒ๐ข+๐ = ๐ฒ๐ข + ๐(๐ฑ๐ข, ๐ฒ๐ข )+๐(๐ฑ๐ข+๐, ๐ฒ ๐ข+๐๐) ๐ ๐ก (Corrector) El método de Heun es un procedimiento predictor corrector de un solo paso. Un criterio de terminación para la convergencia del corrector está dado por: j jโ1 (y โy ) |Ea | = | i+1 j i+1 | (y i+1) 167 Métodos Numéricos Ing. William Caiza Figura 7.4 Representación gráfica del método de Heun 7.5 Método de Runge-Kutta de segundo orden La expresión del método de Runge-Kutta de 2do orden es: Yi+1 = Yi + (a1 k1 + a2 k 2 )h (๐) Donde: k1 = f(xi , yi ) (๐) ; k 2 = f(xi + (p1 )h , yi + q11 (k1 )h) (๐) Recordando la serie de Taylor, tenemos: Yi+1 = Yi + f(xi , yi )h + fโฒ(xi , yi ) 2 h 2! (๐) Encontrando fโฒ(xi , yi ) : fโฒ(xi , yi ) = df(xi , yi ) โf dx โf dy = โ + โ dx โx dx โy dx fโฒ(xi , yi ) = Yi+1 df โf dy + โ (๐) dx โy dx df โf dy h2 = Yi + f(xi , yi )h + ( + โ ) (๐) dx โy dx 2! Utilizando la serie de Taylor de dos variables; tenemos: g(x + r; y + s) = g(x; y) โ r โ โg โg +sโ +โฏ โx โy Veamos el valor de: โf โf f(xi + (p1 )h , yi + q11 (k1 )h) = f(xi , yi ) + p1 h โx + q11 (k1 )h โy + O(h2 ) (7) Si ๐๐ = ๐/๐ tenemos: 168 Métodos Numéricos Ing. William Caiza a1+ a2 = 1 1 a2 p1 = 2 โซ โซ 1 a2 q11 = 2 a1 = 1 โ 1 = 1/2 2 p1 = 1 โซ q11 = 1 Entonces: 1 1 Yi+1 = Yi + ( k1 + k 2 )h 2 2 k1 = f(xi , yi ) METODO HEUN k 2 = f(xi + h , yi + (k1 )h) Si ๐๐ = ๐ tenemos: a1+ a2 = 1 1 a2 p1 = 2 โซ โซ 1 a2 q11 = 2 a1 = 1 โ 1 = 0 p1 = 1/2 โซ q11 = 1/2 Entonces: Yi+1 = Yi + ( k 2 )h k1 = f(xi , yi ) METODO DE PUNTO MEDIO k 2 = f(xi + 1/2h , yi + 1/2(k1 )h) Explicación ๐ค ๐ง Los métodos de Runge-Kutta tienen la exactitud del esquema de la Serie de Taylor, sin necesitar del cálculo de derivadas superiores. La fórmula general es: ๐๐+1 = ๐๐ + ๐ (๐ฅ; ๐๐ ; โ) Donde ฯ (x; Yi ;h) es la función de incremento, y representa el promedio de la pendiente sobre el intervalo. La función de incremento se puede escribir en su forma general como: ฯ = a1 k 1 + a 2 k 2 + โฆ + a n k n 169 Métodos Numéricos Ing. William Caiza Donde las ai son constantes y las ki son: k1 = f(xi ; yi ) k 2 = f(xi + p1 h; yi + q11 k1 h) k 3 = f(xi + p2 h; yi + q 21 k1 h++ q 22 k 2 h)โฆ k n = f(xi + pn h; yi + q nโ1 k1h+q nโ1 2k 2 h +โฆโฆ.+ q nโ1 (n โ 1k n h ) Todas las k son relaciones recurrentes. Por lo que k1 aparece en la ecuación k2, que aparece en la ecuación k3, etc. Esta recurrencia hace a los métodos RK eficientes para su cálculo en computadora. 7.6 Métodos de Runge-Kutta de tercer orden Para el resultado son seis ecuaciones con ocho incógnitas, por lo tanto se deben suponer dos valores con antelación para poder desarrollar el sistema de ecuaciones. Una versión ampliamente usada es: 1 Yi+1 = Yi + (k1 + 4k 2 + k 3 )h 6 k1 = f(xi , yi ) 1 1 k 2 = f (xi + h , yi + (k1 )h) 2 2 k 3 = f(xi + h , yi โ (k1 )h) + 2k 2 h) Si la ecuación deferencial ordinaria está en función solo de x, este método de tercer orden se reduce a la regla de Simpson 1/3. Los métodos de RK de tercer orden dan resultados exactos cuando la solución es cubica, al tratarse de polinomios la ecuación será exacta cuando la ecuación diferencial ordinaria sea cúbica y la solución sea de cuarto grado. Figura 7.8: Ejemplo en Excel 7.7 Métodos de Runge-Kutta de cuarto orden 170 Métodos Numéricos Ing. William Caiza El más popular de los métodos Rk es el de cuarto orden. La versión comúnmente usada se llama método clásico de Rk de cuarto orden: 1 Yi+1 = Yi + (k1 + 2k 2 + 2k 3 + k 4 )h 6 k1 = f(xi , yi ) k 2 = f(xi + 1/2h , yi + 1/2(k1 )h) k 3 = f(xi + 1/2h , yi + 1/2(k 2 )h)) k 4 = f(xi + h , yi + (k 3 )h) Demostración: El método de RK de cuarto orden está basado en lo siguiente: Yi+1 = Yi + (a1 k1 + a2 k 2 + a3 k 3 + a4 k 4 )h (1) Dónde: sabiendo el valor de Y = Yi para xi , nosotros podemos encontrar el valor de Yi = Yi+1 para xi+1 , y h = (xi+1 โ xi ) La ecuación (1) es comparada con los primeros cinco términos de la serie Taylor dy Yi+1 = Yi + dx| 1 d4 y xi ,yi | 4! dx4 xi ,yi (xi+1 โ xi ) + (xi+1 โ xi )4 1 d2 y 2! dx2 | xi ,yi (xi+1 โ xi )2 + 1 d3 y | 3! dx3 xi ,yi (xi+1 โ xi )3 + (2) dy Sabiendo que dx = f(xi , yi ) y h = (xi+1 โ xi ) Entonces: 1 1 1 Yi+1 = Yi + f(xi , yi )h + 2! fโฒ(xi , yi ) (h)2 + 3! fโฒโฒ(xi , yi ) (h)3 + 4! fโฒโฒโฒ(xi , yi ) (h)4 Basándonos en la ecuación (2) y (3), una de las soluciones más usadas es: 1 Yi+1 = Yi + (k1 + 2k 2 + 2k 3 + k 4 )h 6 Este método tiene similitud con el procedimiento de Héun en cuanto a que se usan múltiples estimaciones de la pendiente para obtener una mejor pendiente promedio en el intervalo. Así, el siguiente valor (Yi+1) es determinado por el presente valor (Yi )mas el producto del tamaño del intervalo (h) por una pendiente estimada. La pendiente es un promedio ponderado de pendientes: k1 es la pendiente al principio del intervalo; k2 es la pendiente en el punto medio del intervalo, usando k1 para determinar el valor de y en el punto xi + h/2 usando el método de Euler k3 es otra vez la pendiente del punto medio, pero ahora usando k2 para determinar el valor de y k4 es la pendiente al final del intervalo, con el valor de y determinado por k3 171 Métodos Numéricos Ing. William Caiza Promediando las cuatro pendientes, se le asigna mayor peso a las pendientes en el punto medio: Ejemplo: Resuelva el siguiente problema de valor inicial en el intervalo de t=0 a 2, donde y (0) = 1. Muestre todos sus resultados en la misma gráfica. dy = yt 3 โ 1.5y dt a) Método RK de cuarto orden con h=0.5. Figura 7.9: Cuadro de datos del método de runge kutta 4to orden 3,0000 2,5000 EULER h=0,25 2,0000 EULER h=0,5 1,5000 Y REAL PUNTO MEDIO 1,0000 RK CUARTO ORDEN 0,5000 0,0000 0 0,5 1 1,5 2 2,5 Figura 7.10: grafica del método de Runge Kutta 4to orden 7.8 Métodos de Runge-Kutta de orden superior Para tener resultados más exactos, se recomienda el método de RK de quinto orden. Yi+1 = Yi + 1 (7k1 + 32k 3 + 12k 4 + 32k 5 + 7k 6 )h 90 172 Métodos Numéricos Ing. William Caiza Donde: k1 = f(xi , yi ) 1 1 k 2 = f (xi + h , yi + (k1 )h) 4 4 1 1 1 k 3 = f (xi + h , yi + (k1 )h + (k 2 )h)) 4 8 8 1 1 k 4 = f (xi + h , yi โ (k 2 )h + (k 3 )h) 2 2 3 3 9 k 5 = f (xi + h , yi + (k1 )h + (k 4 )h) 4 16 16 3 2 12 12 8 (k 3 )h โ (k 4 )h + (k 5 )h) k 5 = f (xi + h , yi โ (k1 )h + (k 2 )h + 7 7 7 7 7 Ejemplo 6 Use el método clásico de Runge-Kutta de 5to Orden para integrar numéricamente la siguiente ecuación: f(x;y) = -2x 3 + 12 x 2 โ 20x + 8,5 desde x=0 hasta x=4, con un tamaño de paso de 0,5. Condición inicial en x=0 y y=1. 173 Métodos Numéricos Ing. William Caiza Figura 7.11: grafica de Runge Kutta orden superior Ejercicios propuestos 1.- Resuelva el siguiente problema de valor inicial en el intervalo de t=0 a 2, donde y (0) = 1. Muestre todos sus resultados en la misma gráfica. dy = yt 3 โ 1.5y dt b) Analíticamente. c) Método de Euler con h=0.5 y 0.25. d) Método RK de cuarto orden con h=0.5. 2.- Resuelva el siguiente problema en el intervalo de x=0 a 1. Usando un tamaño de paso de 0.25 donde y (0)=1. Muestre todos sus resultados en la misma gráfica. dy = (1 + 2x)โy dx a) Analíticamente. b) Método de Euler. c) Método de Heun sin el corrector. d) Método de Ralston. e) Método de RK de cuarto orden. 3.- Utilice los métodos de a) Euler y b) Heun (sin iteración) para resolver: 174 Métodos Numéricos Ing. William Caiza d2 y โt+y=0 dt 2 Donde y (0) = 2 y y โฒ (0) = 0. Resuelva de x = 0 a 4, con h = 0.1. Compare los métodos por medio de graficar las soluciones. 4.- Resuelva el problema siguiente con el método de RK de cuarto orden: d2 y dy + 0.6 + 8y = 0 2 dx dx Donde y (0) = 4 y y โฒ (0) = 0. Resuelva de x = 0 a 5 con h= 0.5. Grafique sus resultados. 5.- Resuelva la ecuación que se presenta a continuación, de t = 0 a 3, con h = 0.1, con los métodos de a) Heun (sin corrector), y b) RK y Ralston de segundo orden: dy = y sen3 (t) dx y(0) = 1 6.-Solucione en forma numérica el problema siguiente, de t = 0 a 3: dy = โy + t 2 , dt y(0) = 1 Utilice el método de RK de tercer orden, con un tamaño de paso de 0,5. 7.-Use los métodos de: a) Euler b) RK de cuarto orden Para resolver: dy dt = โ2y + 4eโ1 dz yz 2 =โ dx 3 En el rango de x = 0 a 1, con un tamaño de paso de 0,2, con y(0) = 2 y z(0) = 4. 8.-El movimiento de un Sistema acoplado masa-resorte (como indica la figura) esta descrito por la ecuación diferencial ordinaria que sigue: m d2 x dx + c + kx = 0 2 dt dt 175 Métodos Numéricos Ing. William Caiza Donde x=desplazamiento desde la posición de equilibrio (m), t=tiempo(s), m=20(kg) masa y s c= coeficiente de amortiguamiento (N โ m). El coeficiente de amortiguamiento c adopta tres valores, 5 (subamortiguado), 40 (amortiguamiento crítico) y 200 (sobreamortiguado). La s constante del resorte es k = 20 (N โ m). La velocidad inicial es de cero y el desplazamiento inicial es x = 1(m). Resuelva esta ecuación con el uso de un método numérico durante el periodo 0 โค t โค 15 s grafique el desplazamiento versus el tiempo de amortiguamiento sobre la misma curva. 9.- Si se drena el agua desde un tanque cilíndrico vertical por medio de abrir una válvula en la base, el líquido fluirá rápido cuando el tanque este lleno y despacio conforme se drene. Como se ve, la tasa a la que el nivel del agua disminuye es: dy = โkโy dt Donde k es una constante que depende de la forma del agujero y del area de la sección transversal del tanque y agujero de drenaje. La profundidad del agua y se mide en metros y el tiempo t en minutos. Si k = 0.006, determine cuanto tiempo se requiere para vaciar el tanque si el nivel de fluido se encuentra en un inicio a 3m. Resuelva con la aplicación de la ecuación de Euler y escriba un programa de computadora en Excel. Utilice un paso de 0.5 minutos. 10.-La siguiente es una ecuación diferencial de Segundo orden con valor inicial: d2 x dx + (5x) + (x + 7)sen(wt) = 0 2 dt dt Donde: dx (0) = 1,5 dt y x(0) = 6 Observe que w = 1. Descomponga la ecuación en dos ecuaciones diferenciales de primer orden. Después de la descomposición, resuelva el sistema t = 0 a 15, y grafique sus resultados. 176 Métodos Numéricos Ing. William Caiza Referencia5: métodos numéricos para ingenieros (sexta edición), autor: Steve C. Chapra, pág.: 68 Algoritmo de resolución de ecuaciones diferenciales por el método de Euler function varargout = MetodoEuler(varargin) % METODOEULER MATLAB code for MetodoEuler.fig % METODOEULER, by itself, creates a new METODOEULER or raises the existing % singleton*. % % H = METODOEULER returns the handle to a new METODOEULER or the handle to % the existing singleton*. % % METODOEULER('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in METODOEULER.M with the given input arguments. % % METODOEULER('Property','Value',...) creates a new METODOEULER or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before MetodoEuler_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to MetodoEuler_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % 177 Métodos Numéricos Ing. William Caiza % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help MetodoEuler % Last Modified by GUIDE v2.5 02-Aug-2015 22:35:15 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @MetodoEuler_OpeningFcn, ... 'gui_OutputFcn', @MetodoEuler_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit6_Callback(hObject, eventdata, handles) % hObject handle to edit6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit6 as text % str2double(get(hObject,'String')) returns contents of edit6 as a double % --- Executes during object creation, after setting all properties. function edit6_CreateFcn(hObject, eventdata, handles) % hObject handle to edit6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in pushbutton1. 178 Métodos Numéricos Ing. William Caiza function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) f1=get(handles.edit1,'string'); f=inline(f1,'x','y'); x(1)=str2double(get(handles.edit2,'string')); xf(1)=str2double(get(handles.edit3,'string')); h=str2double(get(handles.edit4,'string')); yi=get(handles.edit5,'string'); y(1)=str2double(yi); n=(xf-x)/h; sol=strcat('Dy=',f1); soly=strcat('y(0)=',yi); in=dsolve(sol,soly,'x'); inte=inline(in,'x','y'); fun=string(in); ff(1)=y(1); a(1)=0; for i=1:n a(i+1)=i; y(i+1)=y(i)+h*f(x(i),y(i)); x(i+1)=x(i)+h; ff(i+1)=inte(x(i+1),y(i+1)); end set(handles.text7,'string',fun); set(handles.uitable1,'data',[a',x',ff',y']); plot(handles.axes1,x,y,'b','linewidth',5); hold(handles.axes1,'on'); plot(handles.axes1,x,ff,'r','linewidth',4) grid on; hold on; plot([0 0],[min(y)-2 max(y)+2]); hold on; plot([min(x)-2 max(x)+2],[0 0]); hold on; 179 Métodos Numéricos Ing. William Caiza ANEXOS Propiedades de Laplace ๏ท L{ f(t) + g(t) } = F(s) + G(s) ๏ท L{ a.f(t) } = a.F(s) 1 ๐ ๏ท L{ f(at) } = ๐ ๐น (๐) ๏ท ๏ท ๏ท ๏ท ๏ท L{ eat.f(t) } = F(s-a) L{ f(t-a) } = e-as.F(s) L{ f โ (t) } = s.F(s) โ f(0) L{ f โโ (t) } = s2.F(s) โ s.f(0) โ f(1) ๐ก L{ โซ0 f(T). dt } = ๐น(๐ ) ๐ Tabla de la transformada de Laplace f(t) ๐ข(๐ก) F(s) 1 ๐ 1 ๐ 2 ๐! 2๐+1 ๐ 2 ๐ + ๐2 ๐ ๐ 2 + ๐2 1 ๐ โ๐๐ 1 ๐ โ๐ ๐ก ๐ก๐ ๐ ๐๐(๐๐ก) cos(๐๐ก) ๐ฟ(๐ก) ๐ฟ(๐ก โ ๐) ๐ ๐๐ก ๐ก. ๐(๐ก) โ โ 1 ๐(๐ก) ๐ก ๐(๐ก) โ ๐(๐ก) ๐๐น(๐ ) ๐๐ โซ ๐น(๐ข)๐๐ข ๐ ๐น(๐ ). ๐บ(๐ ) EJERCICIOS DE LAPLACE CON ECUACIONES DIFERENCIASLES POR LAPLACE ๏ท Usando la transformada de Laplace encuentre la solución de la ecuación. ๐โฒโฒ โ ๐๐โฒ + ๐๐ = โ๐๐โ๐ ๐(๐) = ๐ ๐โฒ (๐) = ๐๐ 180 Métodos Numéricos Ing. William Caiza โ(๐ฆ โฒ (๐ก))(๐ ) = ๐ ๐(๐ ) โ ๐ฆ(0) = ๐ ๐(๐ ) โ 2 โ(๐ฆ โฒโฒ (๐ก))(๐ ) = ๐ 2 ๐(๐ ) โ ๐ ๐ฆ(0) โ ๐ฆ โฒ(0) = ๐ 2 ๐(๐ ) โ 2๐ โ 12 8 โ(โ8๐ โ๐ก )(๐ ) = โ8โ(๐ โ๐ก )(๐ ) = โ ๐ +1 Aplicación la transformada de Laplace a nuestra ecuación obtenemos: โ8 (๐ 2 โ 2๐ + 5)๐(๐ ) โ 2๐ โ 8 = , ๐ +1 Lo que implica: 2๐ 2 + 10๐ ๐(๐ ) = 2 (๐ โ 2๐ + 5)(๐ + 1) 3(๐ โ 1) + 2(4) 1 = โ . 2 2 (๐ โ 1) + ๐ ๐ +1 Por lo tanto 3(๐ โ 1) + 2(4) 1 ๐ฆ(๐ก) = โ โ1 ( โ ) (๐ก) 2 2 (๐ โ 1) + ๐ ๐ +1 ๐ โ1 2 1 = 3โ โ1 ((๐ โ1)2 +๐ 2 ) (๐ก)+4โ โ1 ((๐ โ1)2 +๐ 2 ) (๐ก) โ โ โ1 (๐ +1) (๐ก) = 3๐ ๐ก cos(2๐ก) + 4๐ ๐ก sen(2๐ก) โ ๐ โ๐ก ๏ท Obtenga la ecuación que es solución de la siguiente ecuación diferencial por el método de la transformada de Laplace, haciendo uso de las tablas y propiedades. ๐ ๐ ๐(๐) + ๐๐(๐) = ๐๐๐ (๐๐)๐๐๐ ๐(๐) = ๐ ๐ ๐๐ ๐ ๐โฒ (๐) = ๐ ๐ โ{D2 g(t) + 4g(t)} = โ{sen(4t)} โ{D2 g(t) + 4โ{g(t)} = โ{sen(4t)} {S 2 G(s) โ Sg(0) โ g โฒ (0)} + 4{G(s)} = { 4 } S 2 + 42 1 4 + 4๐บ(๐ ) = 2 5 (๐ + 42 ) 1 4 ๐บ(๐ )(๐ 2 + 4) โ = 2 5 (๐ + 42 ) 4 1 20 + (๐ 2 + 42 ) ๐ 2 + 36 2 ๐บ(๐ )(๐ + 4) = 2 + = = (๐ + 42 ) 5 5(๐ 2 + 42 ) 5(๐ 2 + 42 ) 1 2 (๐ + 62 ) (๐ 2 + 62 ) 5 ๐บ(๐ ) = โน ๐บ(๐ ) = 5(๐ 2 + 42 )(๐ 2 + 42 ) 5(๐ 2 + 42 )(๐ 2 + 42 ) Aplicando la transformada Inversa de Laplace 1 2 (๐ + 62 ) 5 โ1 {๐บ(๐ )} โ1 โ =โ { } 5(๐ 2 + 42 )(๐ 2 + 42 ) ๐ 2 ๐บ(๐ ) โ 0 โ โ โ1 {๐บ(๐ )} = ๐(๐ก) = 0.2667๐๐๐(2๐ก) + 0.0834๐ ๐๐(4๐ก + ๐) 181 Métodos Numéricos Ing. William Caiza ๏ท Resuelva usando transformada de Laplace la ecuación ๐โฒโฒ + ๐๐ = ๐(๐) , ๐(๐) = ๐โฒ (๐) = ๐ Donde 0 ๐(๐ก) = { ๐ก 0โค๐ก<3 ๐กโฅ3 Primero observamos que: ๐(๐ก) = ๐ก๐ป(๐ก โ 3) = (๐ก โ 3)๐ป(๐ก โ 3) + 3๐ป(๐ก โ 3), Donde ๐ป(๐ก) = { 0 1 ๐ก<0 ๐กโฅ0 Entonces si ๐(๐ ) = โ(y(t))(s),aplicando transformada de Laplace a la ecuación diferencial obtenemos 3๐ + 1 โ3๐ (๐ 2 + 4)๐(๐ ) = ๐ ๐ 2 Esto implica 3๐ + 1 ๐(๐ ) = 2 2 ๐ โ3๐ ๐ (๐ + 4) 3๐ + 1 ๐ฆ(๐ก) = โ โ1 ( 2 2 ๐ โ3๐ ) (๐ก) ๐ (๐ + 4) 3๐ + 1 ๐ด ๐ด ๐ถ๐ + ๐ท = + 2+ 2 + 4) ๐ ๐ ๐ +4 ๐ 2 (๐ 2 Resolviendo se obtiene 3 1 3 1 ๐ด = 4, ๐ต = 4, ๐ถ = โ 4, ๐ท = โ 4 Asi 3๐ + 1 31 1 1 3 ๐ 1 ๐ = + 2โ 2 โ 2 + 4) 4 ๐ 4 ๐ 4๐ + 4 4๐ + 4 ๐ 2 (๐ 2 ๐(๐ก) = โ โ1 ( 3๐ + 1 3 1 3 1 (๐ก) ) = + ๐ก โ cos(2๐ก) โ sin(2๐ก) ๐ 2 (๐ 2 + 4) 4 4 4 8 Por lo tanto ๐ฆ(๐ก) = ๐(๐ก โ 3)๐ป(๐ก โ 3) 3 1 3 1 = ( + (๐ก โ 3) โ cos(2(๐ก โ 3)) โ sin(2(๐ก โ 3))) ๐ป(๐ก โ 3) 4 4 4 8 182 Métodos Numéricos Ing. William Caiza ๏ท Hallar: ๐{๐๐๐๐ + ๐๐๐ โ ๐๐๐๐(๐๐) + ๐๐๐๐(๐๐)} Por la propiedad de linealidad tenemos que: โ{4๐ 5๐ก + 6๐ก 3 โ 3๐ ๐๐(4๐ก) + 2๐๐๐ (2๐ก)} = 4โ{๐ 5๐ก } + 6โ{๐ก 3 } โ 3โ{๐ ๐๐(4๐ก)} + 2โ{cos(2๐ก)} 1 3! 4 ๐ =4 +6 4โ3 2 +2 2 ๐ โ5 ๐ ๐ + 16 ๐ +4 4 36 12 2๐ = + โ + ๐ โ 5 ๐ 4 ๐ 2 + 16 ๐ 2 + 4 ๏ท Hallar: ๐{(๐ + ๐)๐ ๐๐ + ๐โ๐๐ ๐๐๐๐(๐๐)} Por la propiedad de linealidad tenemos que: โ{(๐ก + 2)2 ๐ ๐ก + ๐ โ4๐ก ๐๐๐ โ(2๐ก)} = โ{(๐ก + 2)2 ๐ ๐ก } + โ{๐ โ4๐ก cosh(2๐ก)} = โ{(๐ก 2 + 4๐ก + 4)๐ ๐ก } + โ{๐ โ4๐ก cosh(2๐ก)} = โ{(๐ก 2 ๐ ๐ก } + 4โ{๐ก๐ ๐ก } + 4โ{๐ ๐ก } + โ{๐ โ4๐ก cosh(2๐ก)} Aplicando el primer teorema de la traslación: = โ{(๐ก 2 ๐ ๐ก } + 4โ{๐ก๐ ๐ก } + 4โ{๐ ๐ก } + โ{๐ โ4๐ก cosh(2๐ก)} 2! 4 4 ๐ +4 = + + + (๐ โ 1)3 (๐ โ 1)2 ๐ โ 1 (๐ + 4)2 โ 4 5๐ 4 + 29๐ 3 + 9๐ 2 โ 21๐ + 20 = (๐ โ 1)3 (๐ + 2)(๐ + 6) 183 Métodos Numéricos Ing. William Caiza Anexo de optimización Multiplicadores de Lagrange En los problemas de optimización, el método de los multiplicadores de Lagrange, llamados así en honor a Joseph Louis Lagrange, es un procedimiento para encontrar los máximos y mínimos de funciones de múltiples variables sujetas a restricciones. Este método reduce el problema restringido con n variables a uno sin restricciones de n + k variables, donde k es igual al número de restricciones, y cuyas ecuaciones pueden ser resueltas más fácilmente. Estas nuevas variables escalares desconocidas, una para cada restricción, son llamadas multiplicadores de Lagrange. El método dice que los puntos donde la función tiene un extremo condicionado con k restricciones, están entre los puntos estacionarios de una nueva función sin restricciones construida como una combinación lineal de la función y las funciones implicadas en las restricciones, cuyos coeficientes son los multiplicadores. La demostración usa derivadas parciales y la regla de la cadena para funciones de varias variables. Se trata de extraer una función implícita de las restricciones, y encontrar las condiciones para que las derivadas parciales con respecto a lasvariables independientes de la función sean iguales a cero. Consideremos un caso bidimensional. Supongamos que tenemos la función, f (x, y), y queremos maximizarla, estando sujeta a la condición: donde c es una constante. Podemos visualizar las curvas de nivel de f dadas por para varios valores de dn, y el contorno de g dado por g(x, y) = c. Supongamos que hablamos de la curva de nivel donde g= c. Entonces, en general, las curvas de nivel de f y g serán distintas, y la curva g = c por lo general intersectará y cruzará muchos contornos de f. En general, moviéndose a través de la línea g=c podemos incrementar o disminuir el valor de f. Sólo cuando g=c (el contorno que estamos siguiendo) toca tangencialmente (no corta) una curva de nivel de f, no se incrementa o disminuye el valor de f. Esto ocurre en el extremo local restringido y en los puntos de inflexión restringidos def. 184 Métodos Numéricos Ing. William Caiza Un ejemplo familiar puede ser obtenido de los mapas climatológicos, con sus curvas de nivel de presión y temperatura (isóbaras e isotermas respectivamente): el extremo restringido ocurrirá donde los mapas superpuestos muestren curvas que se tocan. Geométricamente traducimos la condición de tangencia diciendo que los gradientes de f y g son vectores paralelos en el máximo. Introduciendo un nuevo escalar, ฮป, resolvemos [๐(๐ฅ, ๐ฆ) โ ๐ (๐(๐ฅ, ๐ฆ) โ ๐)] = 0 para ฮป โ 0. Una vez determinados los valores de ฮป, volvemos al número original de variables y así continuamos encontrando el extremo de la nueva ecuación no restringida. de forma tradicional. Eso es, porque en para todo (x, y) satisfaciendo la condición es igual a cero en la restricción, pero los ceros de F(x, y) están todos . El método de los multiplicadores de Lagrange Sea f (x) una función definida en un conjunto abierto n-dimensional {x โ Rn}. Se definen s restricciones gk (x) = 0, k=1,..., s, y se observa (si las restricciones son satisfechas) que: Se procede a buscar un extremo para h lo que es equivalente a Demostración 185 Métodos Numéricos Ing. William Caiza Comencemos con el caso de una restricción. Sea una superficie M contenida en Rn definida por g(x)=0 y sea f(x) la función a obtener su punto crítico. Si p M un punto crítico entonces se ha de cumplir: para todo v vector tangente a M en p (es decir, sea cual sea la dirección en la que nos desplacemos en M, el incremento de f a primer orden es nulo) La anterior condición significa que es perpendicular al tangente a M en p y dado que dim M=n-1 existe un único vector perpendicular linealmente independiente que viene dado por , de modo que se tiene: para algún número En el caso de que M esté definida por varias restricciones el conjunto de vectores perpendiculares al tangente a M en p viene generado por ser perpendicular al vector tangente a M en p este ha de ser de la forma: para unos ciertos números Algoritmo de multiplicadores de LaGrange clear all; clc; fprintf('Interpolacion con el Metodo del Polinomio de Lagrange\n\n'); n=input('grado del polinolio: '); for i1:n+1 x(1,i)=input('dame los valores de xi:'); end for i=1:n+1 xi(1,i)=input('dame los valores de f(xi):'); end x xi xint=input('Numero para el que desea interpolar x: '); fxint=0; i=1; while i<=n+1 L=1; J=0; while J<=n if i~=J+1 L=L*(xint-x(1,J+1))/(x(1,i)-x(1,J+1)); end J=J+1; end fxint=fxint+L*xi(1,i); i=i+1; end 186 de modo que al Métodos Numéricos Ing. William Caiza fprintf('\nresultado xi: %d',fxint'); plotx,xi) grid title('Polinomio de Lagrange');xlabel('x');yhabel('y') % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) tabla=get(handles.uitable1,'Data'); tabla=str2double(tabla); tabla2=get(handles.uitable2,'Data'); tabla2=str2double(tabla2); x=tabla'; y=tabla2'; intervalo=0:1:3 ; axes(handles.axes2) m=length(x); n=m-1; plot(x,y,'*r') hold on for i=1:n+1 q=1; for j=1:n+1 if i~=j q= conv (q , poly(x(j)))/(x(i)-x(j)); end end l(i,:)= q; end disp('LOS COEFICIENTES DE LAGRANGE INTERPOLADOS SON: ') c=y*l; disp(c); z=length(c); suma=0; for d=z-1:-1:0 syms x; suma=suma+c(z-d)*x^(d); end disp('EL POLINOMIO OBTENIDO ES: ') fun=suma; f=inline(char(fun)); %disp(f) ezplot(f,[-5,5]) grid on F=char(f); set(handles.text5, 'String',F); % --- Executes on button press in pushbutton2. 187 Métodos Numéricos Ing. William Caiza function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) filas=str2double(get(handles.edit1,'String')); columnas=1; num_elem=cell(filas,columnas); num_elem(:,:)={''}; set(handles.uitable1,'Data',num_elem); set(handles.uitable1,'ColumnEditable',true()); set(handles.uitable2,'Data',num_elem); set(handles.uitable2,'ColumnEditable',true()); 188 Métodos Numéricos Ing. William Caiza ANEXO 3: INTRODUCCIÓN A LA PROGRAMACIÓN EN MATLAB Operadores relacionales Permiten comparar datos, los resultados son valores lógicos, es decir: 1 (verdadero) o 0 (falso). Figura A1. Operadores relacionales Estructuras de control Matlab se manejan principalmente tres estructuras de control: ๏ท Decisión: if ... elseif ... else ... end ๏ท Repetición un número fijo de veces: for ... end Repetición bajo condiciones: while ... end Se puede, pero no es habitual, utilizar estas estructuras en la ventana de trabajo de Matlab. Condicional Si queremos ejecutar un conjunto de instrucciones en el caso de que se cumpla una condición, usaremos una estructura if. La manera más sencilla de usarla es la siguiente: if expresión lógica 1 Conjunto de ordenes 1 (de Matlab ) end El conjunto de ordenes 1 se ejecuta si la expresión lógica 1 es verdadera. 189 Métodos Numéricos Ing. William Caiza Control de flujo MATLAB, al igual que la mayoría de los lenguajes de programación, incluye instrucciones para el control del flujo de sus programas, incrementando de esta forma la potencia de los cálculos realizables. Bucles FOR Estos bucles permiten la ejecución de un comando o grupo de comandos, un número fijo predeterminado de veces. Por ejemplo: for i=1:n, x(i)=0, end Asigna el valor 0 a los n primeros elementos del vector x. Si n es menor que 1, el comando central no se ejecutará ninguna vez. Si x no existe, o bien tiene menos de n elementos, se reservará memoria adicional de forma automática. Una práctica común es la utilización de bucles anidados: for i=1:m for j=1:m A(i,j)=1/(i+j-1) ; end end Es importante no olvidar que cada sentencia for debe concluir con su end correspondiente. Bucles WHILE Los bucles WHILE permiten la ejecución de un comando o grupo de comandos un número indeterminado de veces bajo el control de una condición lógica. Esto es, los comandos se ejecutarán mientras} se verifique dicha condición. Como ejemplo mostramos los comandos necesarios para averiguar cuál es el primer número entero cuyo factorial es un número de 100 dígitos: n=1 while prod(1:n)< 1e100, n=n+1; end; Sentencia IF En su forma más simple, la sentencia if se escribe en la forma siguiente (obsérvese que โa diferencia de C/C++/Javaโ la condición no va entre paréntesis, aunque se pueden poner si se desea): if condicion 190 Métodos Numéricos Ing. William Caiza sentencias end Existe también la bifurcación múltiple, en la que pueden concatenarse tantas condiciones como se desee, y que tiene la forma: if condicion1 bloque1 elseif condicion2 bloque2 else %opción por defecto para cuando no se cumplen las condiciones 1 ni 2 bloque3 end Donde la opción por defecto else puede ser omitida: si no está presente no se hace nada en caso de que no se cumpla ninguna de las condiciones que se han chequeado. Un ejemplo de uso podría ser: if I == J A(I,J) = 2; elseif abs(I-J) == 1 A(I,J) = -1; else A(I,J) = 0; end Es interesante aquí observar qué obtenemos al ejecutar las sentencias anteriores dentro de dos bucles for anidados. Ejecutando help relop se puede obtener información sobre el funcionamiento de los operadores relacionales utilizados en las sentencias de control. Introducción a la Interface Gráfica de Usuario (GUI) Desde el punto de vista de la programación, una GUI es una visualización grafica de una o más ventanas que contienen controles, llamados componentes, que permiten a un usuario realizar tareas en forma interactiva. GUI es un entorno de programación gráfica, que ofrece Matlab para poder realizar y ejecutar diversos programas, el entorno de Matlab tiene las características básicas de todos los programas visuales como Visual Basic o Visual C++. Para poder realizar un programa en GUI, se debe seguir los siguientes pasos: 1. En la ventana principal de Matlab, se debe ejecutar el comando โguideโ, obteniendo la siguiente ventana 191 Métodos Numéricos Ing. William Caiza Figura A3: Comando Guide Con las siguientes opciones, como se describe en el grafico anterior. Elegimos la primera opción, Blank GUI, y tenemos la siguiente ventana: Figura A4: Mascara De Interface De Matlab 2. En la ventana anterior se puede colocar diversos componentes predefinidos por Matlab, los cuales podrían ser: Figura A5 Paleta de componentes 192 Métodos Numéricos Ing. William Caiza 3. Grabar el archivo con la extensión predefinido por Matlab (.m). Una aplicación GUI consta de dos archivos uno cuya extensión es .m y otro cuya extensión es .fig, la cual es la parte grafica del programa. Las dos partes están unidas a través de las subrutinas callback. Una vez que se graba los archivos podemos ejecutar el programa desde la ventana del comando de Matlab solamente escribiendo el nombre del archivo. Por ejemplo si guardamos un archivo sumador.fig y sumador.m escribiendo sumador y presionando enter se ejecuta el programa. EJEMPLOS BASICOS A LA INTRODUCCION A MATLAB Ejemplo 1: En el ejemplo se hace uso de un โpushbuttonโ, โeditโ y โtextโ, se ingresa un texto en โeditโ se hace click y el texto pasa a โtextโ. function pushbutton1_Callback(hObject, eventdata, handles) % mostrar un mensaje escrito en edit text y que se muestra en static text. texto=get(handles.edit1,'String'); set(handles.text1,'String',texto); Figura A.1 Ejemplo 2: El ejemplo hace uso del objeto โaxesโ, para graficar una función 193 Métodos Numéricos Ing. William Caiza function pushbutton2_Callback(hObject, eventdata, handles) % Este es un ejemplo de como ingresar funciones y se muestre su respectiva gráfica en un axes. x=linspace(0,10,100); plot(handles.axes1,x,cos(x)); Figura B.1 Ejemplo 3: Se hace uso de dos objetos โaxesโ, en el cual se puede ver su uso para realizar gráficos. function pushbutton2_Callback(hObject, eventdata, handles) % En este ejemplo mostramos como se grafican más de una función. x=linspace(0,10,100); plot(handles.axes1,x,cos(x)); plot(handles.axes2,x,x.^2); Figura B.2 Ejemplo 4: En el ejemplo se muestra un menú de opciones de colores, que al elegir nos muestra el color seleccionado. 194 Métodos Numéricos Ing. William Caiza Primera forma: function popupmenu1_Callback(hObject, eventdata, handles) texto=get(handles.popupmenu1,'Value'); switch texto case 1 color= 'y'; case 2 color='r' case 3 color= [ 1 0 1]; end set(handles.text1,'Backgroundcolor',color); Segunda forma: function popupmenu1_Callback(hObject, eventdata, handles) clc; contenido = get(hObject,'String'); valor =get(hObject,'Value');% El valor númerico de la posición texto= contenido(valor)% muestra en contenido dentro de la matriz switch cell2mat(texto) case 'Amarillo' color= 'y'; case 'Azul' color='b'; case 'Verde' color='g'; end set(handles.text1,'Backgroundcolor',color); Figura C.1 195 Métodos Numéricos Ing. William Caiza Ejemplo 5: En este ejemplo mostramos una lista con operaciones aritméticas, ingresando los números n1=5 y n2=10, procedemos a seleccionar una de las operaciones y ver su resultado. function listbox1_Callback(hObject, eventdata, handles) contenido=get(hObject,'string'); a=get(hObject,'Value'); operaciones=contenido(a); n1=5,n2=10; switch cell2mat(operaciones) case 'Suma' res=n1+n2; case 'Resta' res=n1-n2; case 'Multiplicación' res=n1*n2; case 'División' res=n1/n2; end set(handles.text1,'string',res); Figura D.1 Ejemplo 5: Se hace uso de โradiobuttonโ, para elegir comidas y se traslada el pedido a un โtextโ. function pushbutton1_Callback(hObject, eventdata, handles) 196 Métodos Numéricos Ing. William Caiza elige_valor = get(handles.uipanel1,'SelectedObject'); elige_cadena=get(elige_valor,'String') set(handles.text2,'String',elige_cadena) Ejemplo 6: % En este ejemplo se muestra como con el uso de Radio Button se puede cambiar el tamaño de letra en un mensaje. function uipanel1_SelectionChangeFcn(hObject, eventdata, handles) A=get(hObject,'String'); switch A case '10' set(handles.text1,'FontSize',10); case '14' set(handles.text1,'FontSize',14); case '18' set(handles.text1,'FontSize',18); end 197 Métodos Numéricos Ing. William Caiza Figura E.1 3. Radio Button: Indica una opción que puede ser seleccionada y realiza una acción determinada. Button Group: Solo se puede tener un Button Group en la Gui, permite exclusividad de selección con los radio button. F) Realizaremos un ejemplo de cómo usar el check Box. 1. Creamos una nuevo Gui y colocamos cada elemento que usaremos. 2. Realizamos el algoritmo que muestre la función de cada elemento % En este ejemplo damos la opción de tener activada o desactivada la cuadricula para la gráfica de una función. function uipanel1_SelectionChangeFcn(hObject, eventdata, handles) A=get(hObject,'String'); switch A case 'Seno' ezplot('sin(x)',[0 10]); case 'Coseno' ezplot('cos(x)',[0 10 ]); case 'Tangente' ezplot('tan(x)',[0 10]); end % --- Executes on button press in checkbox1. function checkbox1_Callback(hObject, eventdata, handles) valor=get(hObject,'Value'); if valor==1 grid on; else 198 Métodos Numéricos Ing. William Caiza grid off; end Figura F.1 3. Check Box: Indica el estado (on ó off) de un atributo. Toggle Button: Un botón con solo 2 estados (on ó off) G) Realizaremos un ejemplo de cómo usar el Slider. % En este ejemplo se muestra como poder aumentar o disminuir la ampliación de una gráfica con el uso de Slide. 1. Creamos una nuevo Gui y colocamos cada elemento que usaremos. 2. Realizamos el algoritmo que muestre la función de cada elemento function slider1_Callback(hObject, eventdata, handles) A=get(hObject,'Value'); x=linspace(0,10,100); y=A*sin(A*x) plot(x,y); 199 Métodos Numéricos Ing. William Caiza Figura G.1 3. Slider: Una barra que nos permite deslizarnos para aumentar o disminuir el rango de valores. H) Realizaremos un ejemplo de cómo usar tablas. 1. Creamos una nuevo Gui y colocamos cada elemento que usaremos. 2. Realizamos el algoritmo que muestre la función de cada elemento % En este ejemplo se muestra como insertar datos en una tabla. function pushbutton1_Callback(hObject, eventdata, handles) A={'Pedro' 'Ana' 'David' 'Gabriela'}; P={10 20 15 12}; datos=[A' P']; set(handles.uitable1,'data',datos); 200 Métodos Numéricos Ing. William Caiza Figura H.1 A continuación realizaremos el algoritmo de la suma de 2 variables para comprender la utilización de los comandos 1. En el componente โfigโ como muestra la figura 2 procedemos a insertar los objetos necesarios. 2. De la paleta de componentes escogemos dos edit text, los cuales serían edit1 y edit 2 respectivamente, insertamos un push button y dos static text. 201 Métodos Numéricos Ing. William Caiza Figuran A6 componentes para la interface 3. Al guardar el archivo, Matlab internamente crea el código necesario de los objetos insertados para proceder a utilizarlos y manipular los objetos insertados en la fig. Como muestra la figura 4. Generalmente se programara dentro de la โfunction pushbutton1_Callback(hObject, eventdata, handles)โ. 4. Código del programa. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) valor1=str2double(get(handles.edit1,'string')); valor2=str2double(get(handles.edit2,'string')); suma=valor1+valor2; set(handles.text2,'string',suma); Descripción: 1. Al โvalor1โ le asignamos el contenido del objeto โedit1โ, mediante la función, โstr2doubleโ realiza la transformación de string a un valor numérico; โgetโ es la función por medio de la cual obtenemos los valores ingresados por el usuario, cuyos componentes son: โhandles.edit1โ, la instrucción anterior indica a la función โgetโ, que el valor extraído será del objeto โedit1โ, โstringโ el comando indica que el valor extraído será una cadena. 202 Métodos Numéricos Ing. William Caiza 2. Suma=valor1+valor2, realiza la respetiva suma. 3. En la cuarta línea contiene la instrucción โsetโ (colocar), por medio del cual los resultados obtenidos en el programa son visualizados en el programa por medio del objeto โtext2โ. Handles: es el identificador a los datos de la aplicación 4. Ejecución del programa. Figura A8: ejecución del algoritmo de la suma Ejemplo 2: Algoritmo de Suma y Promedio. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) n=str2double(inputdlg('cuantos numeros desea ingresar')); for i=1:n etiqueta1=['Ingrese dato(' num2str(i) ')']; datos(i)=str2double(inputdlg(etiqueta1)); end s=0; for i=1:n s=s+datos(i); end promedio=s/n; set(handles.text4,'string',s); set(handles.text5,'string',promedio); 203 Métodos Numéricos Ing. William Caiza Descripción: 1. Asignamos a la variable n, el número de datos a realizarse las operaciones, se idéntica manera al programa anterior, se utiliza la función โstr2doubleโ para pasar de cadena a número como se verifica en la instrucción: str2double(inputdlg(โCuantos números desea ingresarโ)); 2. Utilizamos el comando โforโฆ endโ, para poder ingresar los datos al programa. 3.- En la tercera línea creamos la variable โetiquetaโ por medio del cual se da una mejor visualización al ingreso de los datos. 4.- Utilizamos la variable s como inicializador de la suma de los números ingresados, mediante la cual podemos realizar la suma de los datos. 5.- calculamos el promedio, utilizando la suma anterior dividida para el número de datos ingresados. 6.- usamos el comando โsetโ para poder visualizar los resultados como indica el siguiente código: set(handles.txt3, โstringโ,etiqueta). 204 Métodos Numéricos Ing. William Caiza Figura A10: ejecución de algoritmo suma y promedio Ejemplo3: Programa Para Sumar o Multiplicar Datos en un listbox List Box presenta una lista desplegable. Código function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) dato=get(handles.edit1,'String'); old_dato=get(handles.listbox1,'String'); new_dato=strvcat(old_dato,dato); set(handles.listbox1,'String',new_dato); function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) acum=0; x=str2num(get(handles.listbox1,'string')); for i=1:length(x) acum=acum+x(i) end set(handles.text1,'string',acum); function pushbutton4_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) mul=1; x=str2num(get(handles.listbox1,'string')); for i=1:length(x) 205 Métodos Numéricos Ing. William Caiza mul=mul*x(i) end set(handles.text1,'string',mul); Ejecución del programa Suma Multiplicación Pushbutton3 1. En la primera línea de código importamos los datos del edit1 2. En la segunda línea de código importo el dato ingresado del Listbox1, el cual será mi dato antiguo. 206 Métodos Numéricos Ing. William Caiza 3. En la tercera línea creo mu nuevo dato concatenando verticalmente los datos del Listbox1 con el comando โstrvcatโ. 4. En la cuarta línea imprimo mis datos concatenados en el Listbox1. Pushbutton1 1. En la primera línea de código creo un acumulador que este igualado a 0, mientras que en la segunda línea meto en una variable a los datos encontrados en el Listbox 2. Creo un bucle con un For que empiece desde 1 y recorra hasta el número de datos ingresados en el Listbox 3. Dentro del for acumulo los datos (acum=acum+ datos), de esta manera los datos quedan sumados. Pushbutton4 1. En la primera línea de código creo una variable que este igualado a 1 ya que con esta variable vamos a realizar las multiplicaciones y la multiplicación por 0 es 0, mientras que en la segunda línea meto en una variable a los datos encontrados en el Listbox 2. Creo un bucle con un For que empiece desde 1 y recorra hasta el número de datos ingresados en el Listbox 3. Dentro del for multiplico los datos (mul=mul*datos), de esta manera los datos quedan multiplicados. Ejemplo4: Importación y exportación de datos entre Ecxel y Matlab Con la función xlsread Matlab importa automáticamente los datos del archivo de Excel y con xlswrite exportamos los datos hacia Excel. Código: % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) Ruta=inputdlg('Ingrese ruta de archivo xlsx(con extensión)'); set(handles.text2,'string',Ruta); A=cell2mat(Ruta); B=xlsread(A); set(handles.uitable1,'data',B); % --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) B=get(handles.uitable1,'data'); Ruta2=inputdlg('Ingrese ruta de destino (con extensión):'); set(handles.text3,'string',Ruta2); C=cell2mat(Ruta2); xlswrite(C,B); 207 Métodos Numéricos Ing. William Caiza Descripción Botón 1: 1.- En la primera línea de código usamos la función inputdlg para ingresar por un cuadro de diálogo la dirección del archivo a leer, presentamos la dirección en la segunda línea. 2.- En la tercera línea usamos la función cell2mat en la variable ruta para convertir el vector tipo cell a vector normal. 3.- En la cuarta línea usamos la función xlsread para importar los datos desde la ruta ingresada. 4.- En la quinta línea presentamos los datos importados en una tabla de datos. Botón 2: 1.- En la primera línea obtenemos los datos de la tabla. 2.- En la segunda línea ingresamos la ruta de destino para nuestro nuevo archivo y presentamos la misma en la tercera línea. 3.- En la cuarta línea usamos la función cell2mat para convertir el vector tipo cell a vector normal. 4.- En la quinta línea exportamos el archivo, con la función xlswrite, a la ruta ingresada con los datos obtenidos. Ejecución del Programa 208 Métodos Numéricos Ing. William Caiza Ejemplo5: Uso de Axes Mediante el uso del axes en el entorno grafico guide del Matlab nosotros podemos crear la gráfica de una función que ingresemos: Para obtener un axes presionamos el botón indicado por la flecha en el entorno grafico guide: Programación: % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) funcion=char(inputdlg('ingrese la funcion')); f=inline(funcion); etiqueta1=['(x)inicial']; xi =str2double(inputdlg(etiqueta1)); etiqueta2=['(x)final']; xf =str2double(inputdlg(etiqueta2)); x=xi:0.1:xf; [f1 c]=size(x); for i=1:c y(i)=f(x(i)); end plot(handles.axes1,x,y ,'g'); hold on; 209 Métodos Numéricos Ing. William Caiza plot(handles.axes1,[min(x) max(x)],[0 0],'r'); plot(handles.axes1,[0 0], [min(y) max(y)], 'r'); xlabel('x') ylabel('y') Descripción 1) Usamos la función (char) para convertir la función en una cadena de caracteres y poder evaluarla 2) Ingresamos los datos para poder evaluar la función mediante etiquetas: 3) 4) Mediante un (for) Definimos el vector para poder realizar las graficas. Declaramos los valores de la función 5) Mediante la función plot dibujamos un vector de valores (y) en ordenadas frente a otro vector(x) en las abscisas. Ambos vectores tienen el mismo número de elementos. ๏ท ๏ท La función hold on, nos permite dibuja barias líneas en una misma figura. La función lebel podemos poner nombre a los ejes de la grafica 210 Métodos Numéricos Ing. William Caiza ๏ท con la función lebel podemos poner nombre a los ejes de la grafica También es posible cambiar el color y la forma de la grafica ๏ท Colores: 'r'(rojo), 'b'(azul), 'g'(verde), 'y'(amarillo), 'k'(negro), 'm'(morado), 'w'(blanco), 'c'(celesta),โฆ ๏ท Tipo de trazo: '-', '-.', '--', ':', '.', 'o', '*', 'x', '+',โฆ ๏ท Símbolos: 's', 'h', 'p', 'd',โฆ Ejecución del Programa 211 Métodos Numéricos Ing. William Caiza Ejemplo6: Uso del uitable Uitable es una función del entorno grafico de Matlab que enumera los datos ingresados o enumera los resultados de un programa. Para obtener un uitable presionamos el botón indicado en el entorno grafico guide: Programación: funcion=char(inputdlg('ingrese la funcion')); f=inline(funcion); etiqueta1=['(x)inicial']; xi =str2double(inputdlg(etiqueta1)); etiqueta2=['(x)final']; xf =str2double(inputdlg(etiqueta2)); x=xi:0.1:xf; [f1 c]=size(x); for i=1:c y(i)=f(x(i)); end plot(handles.axes1,x,y); hold on; plot(handles.axes1,[min(x) max(x)],[0 0],'r'); 212 Métodos Numéricos Ing. William Caiza plot(handles.axes1,[0 0], [min(y) max(y)], 'r'); datos1=[x' y']; datos2=[xi xf']; set(handles.uitable1, 'ColumnName', {'x','y'}); set(handles.uitable1,'data', datos1); set(handles.uitable2, 'RowName', {'X0','Xf'}); set(handles.uitable2,'data',datos2 ); xlabel('x') ylabel('y') Descripción 1) Ordenamos los datos que queremos que devuelva el elemento uitable 2) La función inline transforma en función una cadena de caracteres. 3) Mediante la función set devolvemos los datos de la gráfica 4) podemos poner nombres a las filas o columnas de nuestra uitable mediante las funciones : ๏ท 'ColumnName': La cual nos sirve para nombrar las columnas. ๏ท 'RowNameโ: La cual usamos para nombrar las filas. Ejecución del Programa: 213 Métodos Numéricos Ing. William Caiza Ejemplo7: Radio Button Radio Button representa una opción Código function uipanel2_SelectionChangeFcn(hObject, eventdata, handles) % hObject handle to the selected object in uipanel2 % eventdata structure with the following fields (see UIBUTTONGROUP) % EventName: string 'SelectionChanged' (read only) % OldValue: handle of the previously selected object or empty if none was selected % NewValue: handle of the currently selected object % handles structure with handles and user data (see GUIDATA)get A=get(hObject,'String'); switch A case '10' set(handles.text1,'FontSize',10); case '12' set(handles.text1,'FontSize',12); case '14' set(handles.text1,'FontSize',14); case '18' set(handles.text1,'FontSize',18); end Ejecucuión del programa 214 Métodos Numéricos Ing. William Caiza 1. En la primera línea de codigo recuperamos las propiedades de los objetos. 2. Creamos un menú con cuatro casos para determinar el tamaño de letra, estos casos son los que seleccionemos con RadioButton. 3. Dentro de cada caso podemos modificar el tamaño del texto que se encuentra dentro del text1 con โFontSizeโ Ejemplo 8: Uso del elemento Checkbox y Msgbox El elemento Checkbox funciona para seleccionar algún componente de entre algunas opciones y el elemento Msgbox funciona como un mensaje de salida para informar de cualquier evento en el programa. function checkbox1_Callback(hObject, eventdata, handles) % hObject handle to checkbox1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) if (get(hObject,'Value') == get(hObject,'Max')) msgbox('Seleccionado'); else msgbox('No seleccionado'); end 215 Métodos Numéricos Ing. William Caiza Descripción: 1.- En la primera línea de código creamos una sentencia if (de condición) para obtener el valor numérico del elemento checkbox ( 1 como verdadero y cero como falso). 2.- Se envía un cuadro de mensaje, con la sentencia msgbox, enviando โSeleccionadoโ si es número 1 ó โNo seleccionadoโ si es cualquier otro número. Ejecución del Programa 216 Métodos Numéricos Ing. William Caiza ANEXO : SISTEMAS DE ECUACIONES NO LINEAL El método de Newton-Raphson para sistemas de n ecuaciones no lineales Considérese nuevamente el sistema de n ecuaciones no lineales con n incógnitas representado por ๐1 (๐ฅ1 , ๐ฅ2 , โฆ . . , ๐ฅ๐ ) = 0 , ๐ฅ2 , โฆ . . , ๐ฅ๐ ) = 0 ๐(๐ฅ) = 0 โ {๐โฆ2 (๐ฅ โฆ1โฆ โฆ โฆโฆโฆโฆโฆโฆ ๐๐ (๐ฅ1 , ๐ฅ2 , โฆ . . , ๐ฅ๐ ) = 0 Al igual que se hizo en el caso de una variable, supongamos que en un dominio cerrado D โ IRn f (x) es una función de clase (C2(D))n. Y supongamos además que la ecuación anterior admite una solución xโ en el dominio D. Para cualquier otro vector x(0) โ D , denotando por _x al vector tal que como ๐ฅ โ = ๐ฅ 0 + ะฑ๐ฅ. la expresión del desarrollo en serie de Taylor nos permitiría afirmar, para cada una de las ecuaciones del sistema, que existen valores _j โ [0, 1] (j = 1, 2, .., n) tales que: 0 = ๐๐ (๐ฅ โ ) = ๐(๐ฅ (0) + ะฑ๐ฅ) 1 ๐ = ๐๐ (๐ฅ (0) ) + {๐ป๐๐ (๐ฅ (0) )} โ ะฑ๐ฅ + โ {ะฑ๐ฅ}๐ โ [๐ป๐๐ (๐ฅ (0) + ัฒ๐ โ ะฑ๐ฅ)] โ ะฑ๐ฅ 2 Donde [๐ป๐2 (๐ฅ)]es la matriz hessiana de la función fj(x). Si conocido x(0) se fuese capaz de determinar ะฑx resolviendo el sistema formado para j = 1, 2, .., n, por las ecuaciones: 1 ๐ ๐๐ (๐ฅ (0) ) + {๐ป๐๐ (๐ฅ (0) )} โ ะฑ๐ฅ + โ {ะฑ๐ฅ}๐ โ [๐ป๐๐ (๐ฅ (0) + ัฒ๐ โ ะฑ๐ฅ)] โ ะฑ๐ฅ = 0 2 Podría determinarse ๐ฅ โ como ๐ฅ โ = ๐ฅ 0 + ะฑ๐ฅ. Pero para resolver este sistema primero deberíamos conocer los valores de ัฒ๐ (lo cual no es obvio) y, una vez conocidos, resolver un sistema, en general, no lineal pues obsérvese que ะฑx interviene en la expresión de las matrices hessianas [๐ป๐๐ (๐ฅ (0) + ัฒ๐ โ ะฑ๐ฅ)]. Por tanto, salvo en situaciones muy particulares, no se ganaría gran cosa remplazando el problema de resolver f (x) = 0 por el de resolver el sistema anterior. El método de Newton-Raphson (o método de linealización de Newton) se sustenta en simplificar las expresiones anteriores linealizándolas. Para ello considera que si se está 217 Métodos Numéricos Ing. William Caiza suficientemente cerca de la solución (es decir si โะฑ๐ฅโes suficientemente pequeño) los 1 términos (2 โ {ะฑ๐ฅ}๐ โ [๐ป๐๐ (๐ฅ (0) + ัฒ๐ โ ะฑ๐ฅ)]) podrán despreciarse frente a los otros términos de cada ecuación del sistema. Por ello, denotando por [Jf (x)] a la matriz jacobiana de f en el punto x, en este método se resuelve el sistema lineal: ๐(๐ฅ (0) ) + [Jf (๐ฅ (0) )] โ โ๐ฅ (0) = 0 Del que se obtiene que: โ๐ฅ (0) = โ[Jf (๐ฅ (0) )] โ1 โ ๐(๐ฅ (0) ) Obviamente, al ser diferente el sistema linealizado que el proporcionado por el desarrollo de Taylor, se tendrá que โ(๐ฅ (0) ) โ ะฑ๐ฅ y por tanto como ๐ฅ โ = ๐ฅ 0 + ะฑ๐ฅ โ ๐ฅ (1) = ๐ฅ (0) + โ๐ฅ (0) . De una forma intuitiva (que después deberemos precisar cuándo es correcta) puede pensarse que aunque ๐ฅ (1) sea diferente de ๐ฅ โ será un vector más próximo a ๐ฅ โ que ๐ฅ (0) pues lo hemos obtenido โaproximandoโ el valor ะฑx que nos llevaba de ๐ฅ (0) a ๐ฅ โ Con ello el método de Newton-Raphson propone repetir este proceso de forma recursiva hasta estar lo suficientemente cercanos a la solución buscada. Más concretamente el método de NewtonRaphson consiste en: Dado un vector ๐ฅ (0) , generar la sucesión: ๐ฅ (๐+1) = ๐ฅ (๐) โ [Jf (๐ฅ (๐) )] โ1 โ ๐(๐ฅ (๐) )} โ ๐=0 Sobre este método, en primer lugar, puede observarse que si denotamos por: ๐(๐ฅ) = ๐ฅ โ [Jf (๐ฅ (๐) )] โ1 โ ๐(๐ฅ) estamos en presencia de un caso particular del método de aproximaciones sucesivas antes contemplado en el aparatado 1.4.1.. En otros términos, se tiene la siguiente propiedad: Propiedad 3.1. Si la función g(x) = x โ [Jf (x)]โ1 · f (x) es, para alguna norma matricial, una contracción definida en D la sucesión dada por ๐ฅ (๐+1) = ๐ฅ (๐) โ [Jf (๐ฅ (๐) )] ๐(๐ฅ (๐) )} โ1 โ โ obtenida a partir de cualquier vector ๐ฅ (0) โ D converge hacia la única ๐=0 solución de la ecuación f (x) = 0 en D. 218 Métodos Numéricos Ing. William Caiza Demostración. Es un caso particular de los teoremas de convergencia del método de aproximaciones sucesivas. Del teorema anterior, por analogía a lo realizado en el caso de una única ecuación no lineal, podrían derivarse teoremas de convergencia que actuaran sobre las primeras y segundas derivadas parciales de las componentes de la aplicación vectorial g(x). Dejamos al lector el desarrollo de tales teoremas y pasamos a enunciar algunos otros en los que las hipótesis se realizan directamente sobre la propia función vectorial f (x) y su matriz jacobiana y que pueden ser de más fácil aplicación al análisis de la convergencia del método. Previamente a la demostración de dichos teoremas necesitaremos introducir el siguiente lema: Lema 3.1. Siendo f : D โ D una aplicación de clase (C1(D))n y siendo D un cerrado de ๐ผ๐ ๐ , si existe una constante estrictamente positiva ฮฑ tal que para alguna norma vectorial y para la norma matricial a ella subordinada se verifique: โJf (๐ฅ) โ [Jf (๐ฆ)]โ โค ๐ผ ·โ๐ฅ โ ๐ฆโ โx, y โ D entonces se verifica también que: โ๐(๐ฅ) โ f(y) โ [Jf (๐ฆ)](๐ฅ โ ๐ฆ)โ โค ๐ผ 2 ·โ๐ฅ โ ๐ฆโ2 โx, y โ D Demostración. Siendo x e y dos vectores genéricos de D denotemos por q(t) a la función vectorial dependiente de un único parámetro real definida por: ๐(๐) = ๐(๐ + ๐(๐ โ ๐)) Esta función, habida cuenta de las hipótesis realizadas sobre f es derivable โt โ [0,1]. Así, denotando por z = y + t · (x โ y) se tiene que: 219 Métodos Numéricos Ing. William Caiza ๐ โฒ (๐ก) = ๐(๐ฆ + (๐ก + โ๐ก) โ (๐ฅ โ ๐ฆ)) โ ๐(๐ฆ + ๐ก(๐ฅ โ ๐ฆ)) ๐๐ (๐ก) = lim โ๐กโถ0 ๐๐ก โ๐ก ๐(๐ง + โ๐ก(๐ฅ โ ๐ฆ)) โ ๐(๐ง) = [Jf (๐ง)](๐ฅ โ ๐ฆ) โ๐กโถ0 โ๐ก = lim De donde: โ๐ โฒ (๐ก) โ ๐โฒ(0)โ = โ[Jf (๐ง)] โ [Jf (๐ฆ)]โ(๐ฅ โ ๐ฆ) โค โค โ[Jf (๐ง)] โ [Jf (๐ฆ)]โ โ โ๐ฅ โ ๐ฆโ = = โ[Jf (๐ฆ + ๐ก(๐ฅ โ ๐ฆ)))] โ [Jf (๐ฆ)]โ โ โ๐ฅ โ ๐ฆโ โค โค ฮฑ โ tโ๐ฅ โ ๐ฆโ2 Esta desigualdad, a su vez, puede utilizarse en el proceso siguiente: โ๐(๐ฅ) โ ๐(๐ฆ) โ Jf (๐ฆ) โ (๐ฅ โ ๐ฆ)โ = โ๐(1) โ ๐(0) โ ๐ โฒ (0)โ = 1 โโซ (๐ 1 โฒ (๐ก) โ๐ โฒ (0) โ ๐๐กโ โค โซ โ(๐ โฒ (๐ก) โ ๐ โฒ (0)โ โ ๐๐ก โค 0 0 ๐ โค โซ ๐ โ ๐ญ โ๐ โ ๐โ๐ โ ๐ ๐ = ๐ ฮฑ โ๐ โ ๐โ๐ ๐ Nota 3.8. El que se verifique la hipótesis del lema precedente: โฮฑ โ IR+ / โJ๐ (๐ฅ) โ [Jf (๐ฆ)]โโคฮฑ โ๐ฅ โ ๐ฆโ2 โx, y โ D se expresa diciendo que la matriz Jacobiana es lipschitciana de razón ฮฑ en D para la norma โ. โ. Con ayuda de este lema puede procederse a presentar y demostrar el siguiente teorema: Teorema 3.6. Siendo D un cerrado de ๐๐๐ y siendo f : D โ D una aplicación de clase (๐ช๐ (๐ซ))๐ para la que, utilizando alguna norma vectorial y para la norma matricial a ella subordinada, se verifican las dos hipótesis siguientes: 220 Métodos Numéricos Ing. William Caiza 1) โฮฑ โ IR+ / โJ๐ (๐ฅ) โ [Jf (๐ฆ)]โ โคฮฑ โ๐ฅ โ ๐ฆโ โx, y โ D 2) โ๐ฝ โ IR+ / โ[Jf (๐ฆ)]โ1 โ โค๐ฝ โx, y โ D entonces para la sucesión ๐(๐+๐) = ๐(๐) โ [๐๐ (๐(๐) )] โ๐ โ ๐(๐(๐) )} โ obtenida a partir ๐=๐ de cualquier vector ๐(๐) โ D se verifica que: โ๐(๐+๐) โ ๐(๐) โ โค ๐ถโ๐ท ๐ โ โ๐(๐) โ ๐(๐โ๐) โ ๐ Demostración. Se tiene que: โ๐(๐+๐) โ ๐(๐) โ = โ[๐๐ (๐(๐) )] โ๐ โ๐ โ ๐(๐(๐) )โ โค โ[๐๐ (๐(๐) )] โ โ โ๐(๐(๐) )โ โค ๐ท โ โ๐(๐(๐) )โ y como de: ๐ฅ (๐+1) = ๐ฅ (๐) โ [Jf (๐ฅ (๐) )] โ1 โ ๐(๐ฅ (๐) ) Se deduce que: โ1 ๐(๐ฅ (๐) ) = โ[Jf (๐ฅ (๐) )] (๐ฅ (๐+1) = ๐ฅ (๐) ) Se tiene, utilizando el lema presente, que: โ๐ฅ (๐+1) โ ๐ฅ (๐) โ โค ๐ฝโ๐(๐ฅ (๐) )โ = ๐ฝ โ๐(๐ฅ (๐) ) โ ๐(๐ฅ (๐) ) โ [Jf (๐ฅ (๐) )] โค โ1 (๐ฅ (๐+1) โ ๐ฅ (๐) )โ ๐ผโ๐ฝ 2 โ โ๐ฅ (๐) โ ๐ฅ (๐โ1) โ 2 El teorema anterior nos muestra que la relación entre la norma del vector diferencia entre las aproximaciones halladas en las iteraciones (i+1) e i es proporcional (con factor ๐ถ = ๐ผโ๐ฝ 2 ) al cuadrado de la norma del vector diferencia entre las aproximaciones halladas en las iteraciones i e (i โ 1). Pero por sí solo este teorema no nos justifica que el método converja. 221 Métodos Numéricos Ing. William Caiza 2 Simplemente nos indica que si en algún momento โ๐ฅ (๐) โ ๐ฅ (๐โ1) โ < (1/C) entonces se habrá logrado una sucesión de Cauchy y, al estar en un completo, por ello una sucesión convergente. Para acabar de obtener un resultado que garantice la convergencia es necesario imponer más condiciones en el método. Como por ejemplo las que se recogen en el teorema siguiente que, junto a las hipótesis a) y b) del teorema anterior añade una nueva: Teorema 3.7. Siendo D un cerrado de๐๐๐ y siendo f : D โ D una aplicación de clase (๐ช๐ (๐ซ))๐ para la que, utilizando alguna norma vectorial y para la norma matricial a ella subordinada, se verifican las dos hipótesis siguientes: 1) โ๐ โ IR+ / โ๐๐ (๐) โ [๐๐ (๐)]โ โค๐ โ๐ โ ๐โ โx, y โ D 2) โ๐ท โ IR+ / โ[๐๐ (๐)]โ๐ โ <๐ท โx, y โ D entonces para la sucesión ๐(๐+๐) = ๐(๐) โ [๐๐ (๐(๐) )] โ๐ โ ๐(๐(๐) )} โ obtenida a partir de ๐=๐ cualquier vector ๐(๐) โ D para el que se verifique la condición 3) โ๐ โค ๐ ๐ถโ๐ท โ IR+ / โ[๐๐ (๐๐ )]โ๐ โ ๐(๐(๐) )โ < u existe el límite ๐โ de la sucesión ๐(๐+๐) = ๐(๐) โ [๐๐ (๐(๐) )] โ๐ โ ๐(๐(๐) )} โ que es una ๐=๐ raíz del sistema f (x) = 0 en D y se verifica que: โ๐ฅ donde ๐ = ๐ผโ๐ฝโ๐ข 2 (๐) โ๐ฅ ๐๐๐โ๐ โ โค โ u ๐ โ ๐๐๐ (๐โ1) 2 < 1. POR NEWTON Este método se basa en utilizar el desarrollo de Taylor. Escribimos x1 = x0 + โx, f (x1) = f (x0) + f โ (x0) โx + o (โx2) , y suponiendo que f (x1) = 0, queda ๐ฅ1 = ๐ฅ0 โ ๐(๐ฅ0 ) ๐โฒ(๐ฅ๐ ) 222 Métodos Numéricos Ing. William Caiza . El método de Newton-Raphson se basa en esta ecuación y consiste en calcular los valores de una sucesi´on de la forma: ๐ฅ๐+1 = ๐ฅ๐ โ ๐(๐ฅ๐ ) ๐โฒ(๐ฅ๐ ) Otro modo de obtener este metodo consiste en suponer que f : [a, b] โ R es continua en [a, b] y tal que f 00(x) no cambia de signo en [a, b] con f (a)f (b) < 0. El proceso para encontrar un x tal que f (x) = 0 consiste en lo siguiente: 1) Fijamos c = a ´o b, tal que f (c)f 00(x) > 0, โx โ (a, b). 2) x0 = c. 3) Hallamos la ecuacion de la tangente que pasa por (x0, f (x0)) y el punto de corte de dicha tangente con el eje X. El proceso se repite hasta conseguir una sucesion de aproximaciones que converge a la raiz de f (x) = 0. La ecuación de la recta tangente a la curva y = f (x) en (xnโ1, f (xnโ1)) viene dada por y = f (xnโ1) + f 0 (xnโ1)(x โ xnโ1) . La abscisa del punto de intersección de la recta tangente con el eje X, xn = xnโ1 โ f (xnโ1) f 0(xnโ1) , y mediante esta relación obtenemos una sucesión, {xn}โ n=1 de aproximaciones al valor de la raíz buscada. El error que se comete en la iteración n-ésima sera | r โ xn |< M 2m | xn โ xnโ1 | , Donde 0 < m โค| f (x) | y | f 00(x) |โค M, โx โ (a, b) Por punto fijo Dada la ecuación f (x) = x โ x 4/5 โ 2 = 0 Si tomamos la función de iteración g(x) = ๐ฅ 4/5 + 2 Las iteraciones 223 Métodos Numéricos Ing. William Caiza Suponemos que se quiere buscar una raíz de la función f (x) = x 3 + 4x 2 โ 10 en [1, 2]. Se pueden hacer diferentes elecciones de la función ฯ(x), por ejemplo, a) ฯ1(x) = x โ ๐ฅ 3 โ 4๐ฅ 2 + 10; 1 b) ฯ2(x) = 2 (10 โ ๐ฅ 3 )1/2 ; c) ฯ3(x) = ๐ฅ โ ( ๐ฅ 3 โ 4๐ฅ 2 + 10)/(8๐ฅ + 3๐ฅ 2 ); d) ฯ4(x) = (10/(4 + ๐ฅ))1/2 ; Ejercicio Calcular el vector ๐ฅ (k) de la iteración k-ésima cuando k=4 si se utiliza el método de NewtonRaphson en la resolución del sistema no lineal: 2 xโcos( y ) = 0, 2 yโsin( x ) = 0, tomando x(0) = [0,0]T. Calcular en cada iteración k el valor de la estimación del error absoluto ||e(k)|| = || x(k) โ x(kโ1) ||โ y también del error relativo || x(k) โx(kโ1) ||โ / || x(k) ||โ. Dar los resultados con cuatro decimales exactos. Queremos resolver un sistema de ecuaciones del tipo: f1(x1,x2,...,xn) = 0, f2(x1,x2,...,xn) = 0 , ... fn(x1,x2,...,xn) = 0 donde las funciones fi(x), i=1,2,...,n son arbitrarias. Llamando entonces a F(x) = [f1(x),f2(x), ..., fn(x)]T queremos resolver F(x) = 0, con F:Rn โ Rn . Si se usa el método de Newton-Raphson, esto se traduce en usar el esquema iterativo: x(k+1) = x(k) โ (J(x(k)))โ1 F(x(k)), k=0,1,2,... J(x(k)) = [ โfi(x) โxj ] x = ๐ฅ (k) , 1 โค i, j โค n, la matriz de Jacobi. Por tanto, al resolver el sistema por Newton-Raphson, debemos resolver en cada iteración el sistema lineal: J(x(k)) vc(k) = โF(x(k)) y obtener luego la siguiente iteración usando este vector de corrección recién calculado: x(k+1) = x(k) + vc(k) En nuestro caso la función es: 224 Métodos Numéricos Ing. William Caiza F(x) =[ 2 x โ cos( y ) ] 2 y โ sin( x ) y la matriz de Jacobi: J(x) =[ 2 sin( y ) ] โcos( x ) 2 Como la aproximación inicial es ๐ฅ (0) = [0,0]T, calculamos: 2 J(๐ฅ)(0) = [ โ1 โ1 0 ] , F(x0 ) = [ ] 0 2 Y por tanto, el sistema lineal a resolver es: [ 2 0 ] โ1 2 1 (๐ฃ๐)(0) = [ ] 0 Una vez resuelto es ๐ฃ๐ (0) = [1/2,1/4]T , por lo que entonces: 1/2 1/2 0 ๐ฅ (1) = ๐ฅ (0) + ๐ฃ๐ (0) = [ ] + [ ]=[ ] 1/4 1/4 0 Con ๐ฅ (1) continuaríamos el proceso y obtendríamos ๐ฅ (2) , etc., comprobando la convergencia con cada ๐ฅ (k) calculado (es e(k)= vc (kโ1)). Las iteraciones son: A continuación viene la gráfica donde aparecen las funciones que intervienen en el sistema, el punto de intersección pedido, la iteración solicitada en el enunciado y el conjunto de puntos calculados en las diferentes iteraciones. La aproximación inicial aparece con un pequeño círculo rojo. 225 Métodos Numéricos Ing. William Caiza Ejercicio 2 Sea la ecuación no lineal siguiente: ๐(๐ฅ) = โ๐ฅ 3 โ cos(๐ฅ) = 0 a) Aplicando el método de Newton encontrar la raíz próxima al valor ๐ฅ0 = โ1.0 con una precisión de 10โ2. Método de Newton-Raphson. ๐(๐ฅ) = โ๐ฅ 3 โ cos(๐ฅ) = 0 ๐ฅ0 = โ1 Derivando la ecuación obtenemos: ๐โฒ(๐ฅ) = โ3๐ฅ 2 + sin(๐ฅ) = 0 Formula: ๐(๐ฅ๐โ1 ) (๐ โฅ 1) ๐โฒ(๐ฅ๐โ1 ) โ๐ฅ๐โ1 3 โ cos[๐ฅ๐โ1 ] ๐ฅ๐โ1 3 โ cos[๐ฅ๐โ1 ] ๐ฅ๐ = ๐ฅ๐โ1 โ = ๐ฅ + ๐โ1 โ3๐ฅ๐โ1 2 โ sin[๐ฅ๐โ1 ] โ3๐ฅ๐โ1 2 + sin[๐ฅ๐โ1 ] ๐ฅ๐ = ๐ฅ๐โ1 โ Tabla de datos ๐ 0 1 2 3 ๐๐ -1 -0.880333 -0.865684 -0.865474 ๐(๐๐ ) 0.459698 0.045351 0.000632 1.289200x10โ7 ๐โฒ(๐๐ ) -3.841471 -3.095909 -3.009766 -3.008539 Donde ๐(๐) = โ๐๐ โ ๐๐จ๐ฌ(๐) = ๐ Remplazamos el ๐ฅ0 = โ1, en la ecuación para obtener el valor de ๐(๐๐ ) 226 Error [%] 13.59 16.92 0.02 Métodos Numéricos Ing. William Caiza ๐(โ1) = โ(โ1)3 โ cos(โ1) = 0.459698 ๐โฒ(๐) = โ๐๐๐ + ๐ฌ๐ข๐ง(๐) = ๐ Remplazamos el ๐ฅ0 = โ1, en la ecuación derivada para obtener el valor de ๐โฒ(๐๐ ) ๐ โฒ (โ1) = โ3(โ1)2 + sin(โ1) = โ3.841471 Procedemos a remplazar los valores obtenidos en la ecuación, en la fórmula para obtener el ๐๐ ๐(๐๐โ๐ ) ๐๐ = ๐๐โ๐ โ ๐โฒ(๐๐โ๐ ) 0.459698 ๐ฅ๐ = โ1 โ = โ0.880333 โ3.841471 ERROR |๐ฅ๐ โ ๐ฅ๐โ1 | ๐๐๐๐๐ = โ 100% |๐ฅ๐ | |โ0.880333 โ (โ1)| = โ 100% = 13.59% |โ0.880333| La raíz aproximada es: ๐ฅ = ๐ฅ3 = โ0.865474 227 Métodos Numéricos Ing. William Caiza EJERCICIO 3 Representacion de la función ๐(๐) = โ๐๐ โ ๐๐จ๐ฌ(๐) = ๐ . Aplicando el método de Newton encontrar el cero de la función ๐ฟ๐๐(๐ฅ) 1 ๐ฆ= + ๐ โ๐ฅ โ 2 5 Próximo al valor de ๐ฅ0 = 1.5, iterando hasta que se cumpla que el error sea menor que 10โ3 Fórmulas ๐(๐ฅ๐โ1 ) ๐ฅ๐ = ๐ฅ๐โ1 โ ๐โฒ(๐ฅ๐โ1 ) ๐ฟ๐๐(๐ฅ ) 1 ๐ โ + eโ๐ฅ๐ โ ๐ฅ๐ (3๐ โ๐ฅ๐ + 10(1 + ๐ฅ๐ ) โ 5๐ โ๐ฅ๐ ๐ฟ๐๐[๐ฅ๐ ]) 2 5 ๐ฅ๐ = ๐ฅ๐โ1 โ = 1 5(๐ โ๐ฅ๐ +2๐ฅ๐ ) โ๐ โ๐ฅ๐ โ 2๐ฅ ๐ Tabla de datos ๐ 0 1 2 3 ๐๐ 1.5 1.177243 1.213457 1.214065 ๐(๐๐ ) -0.179602 0.026539 0.000431 1.177954x10โ7 Error [%] 27.41 2.98 0.05 ๐ณ๐๐(๐) ๐ + ๐โ๐ โ ๐ ๐ Remplazamos el valor e ๐ฅ0 = 1.5, en la ecuación para obtener el valor de ๐(๐๐ ) ๐(๐๐ ) = ๐(1.5) = ๐ฟ๐๐(๐ฅ) 1 + ๐ โ(1.5) โ = โ๐. ๐๐๐๐๐๐ 2 5 228 Métodos Numéricos Ing. William Caiza ๐ณ๐๐(๐๐ ) ๐ โ + ๐โ๐๐ โ ๐ ๐๐ = ๐๐โ๐ โ ๐ ๐ โ๐๐ โ๐ โ ๐๐ ๐ ๐ฟ๐๐(1.5) 1 โ + eโ1.5 โ 2 ๐ฅ๐ = ๐ฅ๐โ1 โ 5 = ๐. ๐๐๐๐๐ 1 โ๐ โ1.5 โ 2(1.5) ERROR |๐ฅ๐ โ ๐ฅ๐โ1 | โ 100% |๐ฅ๐ | |0.322757 โ 1.5| = โ 100% = ๐๐. ๐๐% |0.322757| ๐๐๐๐๐ = La raíz aproximada es: ๐ฅ๐ = ๐ฅ3 = ๐. ๐๐๐๐๐ Representación de la función ๐= ๐ณ๐๐(๐) ๐ + ๐โ๐ โ ๐ ๐ Problema 1. Aplíquese el método de Punto Fijo para sistemas no lineales para aproximar el sistema de ecuaciones no lineales siguiente, iniciando el método en el punto inicial P0 = (๐ฅ1(0) , ๐ฅ2(0) , ๐ฅ3(0) )= (0.1, 0.1, โ0.1)๐ e iterando hasta que โฅPi+1 - Pi โฅโ โค 10โ5 ๐1 (๐ฅ1, ๐ฅ2, ๐ฅ3) = 3 ๐ฅ1 โ ๐๐๐ (๐ฅ2 ๐ฅ3) โ 1/2 = 0, ๐2 (๐ฅ1, ๐ฅ2, ๐ฅ3) = ๐ฅ12 โ 81 (๐ฅ2 โ 0.1)2 + ๐ ๐๐ ๐ฅ3 + 1.06 = 0, ๐3 (๐ฅ1, ๐ฅ2, ๐ฅ3) = ๐ โ๐ฅ ๐ฅ + 20 ๐ฅ3 + (10 ๐ โ 3)/ 3 = 0. 1 2 Método del Punto Fijo para sistemas de ecuaciones no lineales. SE FORMA EL SISTEMA DE ECUACIONE. 229 Métodos Numéricos Ing. William Caiza 1 โ ๐๐๐ (๐ฅ2 ๐ฅ3) + 3 ๐ฅ1 + 2 0 ๐1 (๐ฅ1, ๐ฅ2, ๐ฅ3) = [๐ฅ12 โ 81 (๐ฅ2 โ 0.1)2 + ๐ ๐๐ ๐ฅ3 + 1.06]=[0] 1 0 + 20 ๐ฅ3 + ๐ โ๐ฅ ๐ฅ + (โ3 + 10 ๐ ) 1 2 3 El punto inicial en matriz es: ๐ฅ(0) 0.1 1 P0= ๐ฅ(0) =[ 0.1 ] 2 ๐ฅ(0) โ0.1 [ 3 ] El límite de P es: (0) (0) (0) lim๐(๐ฅ) = ๐ = (๐ฅ1 , ๐ฅ2 , ๐ฅ3 )๐ก ๐ฅโ0 Si y solo si lim๐๐ = ๐๐ ๐๐๐๐ ๐๐๐๐ ๐ = 1,2, โฆ . , ๐. ๐ฅโ0 Ecuaciones preparadas para el método del Punto Fijo. 1 (2 6 ๐ฅ(0) 1 = ๐ฅ(0) 2 (0) [ ๐ฅ3 ] cos((๐ฅ(2๐โ1) ) (๐ฅ(3๐โ1) )) + 1 ) 2 1 โ(๐ฅ(๐โ1) ) + ๐ ๐๐ (๐ฅ(๐โ1) ) + 1.06 โ 0.1 1 3 9 1 (๐โ1) [20 (โ๐โ(๐ฅ1 (๐โ1) )(๐ฅ2 ) + 1 (โ3 + 10 3 ๐ )) ] Solución. Resolviendo por el método de punto fijo multivariable, con sustituciones simultaneas, primero se despejaran de las ecuaciones las variables de la siguiente forma: 1 1 g1=x1=3 cos(๐ฅ2 ๐ฅ3 ) + 6 1 g2=x2=9 โ๐ฅ12 + ๐ ๐๐(๐ฅ3 ) + 1.06 โ 0.1 1 g3=x3=โ 20 ๐ โ๐ฅ1 ๐ฅ2 โ 10๐โ3 60 Para verificar que el sistema converge se deberán cumplir con las siguientes condiciones en las formulas con derivadas parciales: ๐ฟ๐1 ๐ฟ๐2 ๐ฟ๐3 2๐ฅ1 1 | |+| |+| |= 0+| | + | ๐ฅ2 ๐ โ๐ฅ1 ๐ฅ2 | < 1 ๐ฟ๐ฅ1 ๐ฟ๐ฅ2 ๐ฟ๐ฅ3 20 18โ๐ฅ12 + ๐ ๐๐(๐ฅ3 ) + 1.06 ๐ฟ๐1 ๐ฟ๐2 ๐ฟ๐3 1 1 | |+| |+| | = |โ ๐ฅ3 ๐ ๐๐(๐ฅ2 ๐ฅ3 )| + 0 + | ๐ฅ2 ๐ โ๐ฅ1 ๐ฅ2 | < 1 ๐ฟ๐ฅ1 ๐ฟ๐ฅ2 ๐ฟ๐ฅ3 3 20 ๐ฟ๐1 ๐ฟ๐2 ๐ฟ๐3 1 cos(๐ฅ3 ) | |+| |+| | = |โ ๐ฅ3 ๐ ๐๐(๐ฅ2 ๐ฅ3 )| + | |+0<1 2 ๐ฟ๐ฅ1 ๐ฟ๐ฅ2 ๐ฟ๐ฅ3 3 18โ๐ฅ1 + ๐ ๐๐(๐ฅ3 ) + 1.06 Luego de probar algunos valores se tomarán como valores iniciales: ๐ฅ1 0 ,2 0 ,๐ฅ3 0 = 0.1,0.1,โ0.1 230 Métodos Numéricos Ing. William Caiza 1ra iteración 2da iteración (2) ๐ฅ1 (2) ๐ฅ2 = 1 1 (1) (1) cos(๐ฅ2 ๐ฅ3 ) + = 0.499996 3 6 1 โ(๐ฅ3(1) )2 + ๐ ๐๐(๐ฅ3(1) ) + 1.06 โ 0.1 = 0000028 9 (1) (1) 1 10๐ โ 3 (1) ๐ฅ3 = โ ๐ โ๐ฅ1 ๐ฅ2 โ = โ0.524101 20 60 = (2) (1) 2 (1) 2 (2) (2) (1) 2 ๐๐๐๐๐ = โ(๐ฅ1 โ ๐ฅ1 ) + (๐ฅ2 โ ๐ฅ2 ) + (๐ฅ3 โ ๐ฅ3 ) = 0.009473 Luego evaluando las derivadas parciales para determinar la convergencia del método: ๐ฟ๐ ๐ฟ๐ ๐ฟ๐ | 1 | + | 2 | + | 3 | = 0 + 0.061744 + 0.000470 = 0.062213 ๐ฟ๐ฅ1 ๐ฟ๐ฅ2 ๐ฟ๐ฅ3 ๐ฟ๐3 ๐ฟ๐1 ๐ฟ๐2 | |+| |+| | = 0.000864 + 0 + 0.025117 = 0.025982 ๐ฟ๐ฅ1 ๐ฟ๐ฅ2 ๐ฟ๐ฅ3 ๐ฟ๐ ๐ฟ๐ ๐ฟ๐ | 1 | + | 2 | + | 3 | = 0.000016 + 0.053458 + 0 = 0.053473 ๐ฟ๐ฅ1 ๐ฟ๐ฅ2 ๐ฟ๐ฅ3 Viendo estos valores se puede decir que el método convergerá, pero como el error es mayor a la tolerancia se deberá continuar con otra iteración. Viendo estos valores se puede decir que el método convergerá, pero como el error es mayor a la tolerancia se deberá continuar con otra iteración. Table de datos ๐ 0 1 2 3 4 5 ๐ฅ๐ 0.1 0.499983 0.499981 0.500000 0.500000 0.500000 ๐ฆ๐ 0.1 0.020176 -0.000028 -0.000028 0.000000 0.000000 ๐ง๐ -0.1 -0.524101 -0.524106 -0.523598 -0.523598 -0.523599 La solución aproximada del sistema es: 0.5 ๐5 = [ ] 0 โ0.523599 ๐ฅ = 0.5 y=0 z = โ0.523599 ๐๐๐๐๐ = 7.1๐ฅ10โ7 231 ๐๐๐๐๐ 0.745561 0.020204 0.000508 2.8๐ฅ10โ5 7.1๐ฅ10โ7 Métodos Numéricos Ing. William Caiza 232 Métodos Numéricos Ing. William Caiza 233
© Copyright 2024