CAPÍTULO 6 SISTEMAS DE ECUACIONES NO LINEALES. PAG- 170 Sistemas de ecuaciones no lineales. SISTEMAS DE ECUACIONES NO LINEALES En Esta sección se considera el problema de determinación de raíces de ecuaciones no lineales simultáneas de la forma: . 𝑓1 (𝑥1 , 𝑥2 , … , 𝑥𝑚 ) = 0 𝑓1 (𝑥1 , 𝑥2 , … , 𝑥𝑚 ) = 0 (1) {𝑓1 (𝑥1 , 𝑥2 , … , 𝑥𝑚 ) = 0 Donde cada 𝑓1 , 𝑖 = 1, 2,…, m es una función real de m variables reales, para simplificar se considera el caso de las ecuaciones con dos incógnitas, esto es, sistemas no lineales de la forma: { 𝑓(𝑥 , 𝑦) = 0 𝑔(𝑥 , 𝑦) = 0 (2) Geométricamente, las raíces de este sistema son los puntos del plano (x , y), donde las curvas definidas por f y g se interceptan. Iteración Lineal La resolución de sistemas no lineales a través del método de iteración lineal es muy semejante al método iterativo lineal estudiado anteriormente. Así, un primer paso en la aplicación de iteración lineal es resolver el sistema de la forma: { 𝑥 = 𝐹(𝑥 , 𝑦) 𝑦 = 𝐺(𝑥 , 𝑦) (3) de forma que cualquier solución de (3) sea, también solución de (2). Sean (𝑥̅ , 𝑦̅) una solución de (2) y (𝑥0 , 𝑦0 ) una aproximación para (𝑥̅ , 𝑦̅). Se obtienen las aproximaciones sucesivas (𝑥𝑘 , 𝑦𝑘 ) para la solución deseada (𝑥̅ , 𝑦̅), usando el proceso iterativo definido por: { 𝑥𝑘+1 = 𝐹(𝑥𝑘 , 𝑦𝑘 ) 𝑦𝑘+1 = 𝐺(𝑥𝑘 , 𝑦𝑘 ) (4) Este proceso se llama método iterativo Lineal para sistemas no Lineales. El proceso (4) se cumplirá bajo las siguientes condiciones suficientes, pero no necesarias: a) F, G y sus derivadas parciales de primer orden sean continuas en una vecindad V de la raíz (𝑥̅ , 𝑦̅). b) La siguientes desigualdades sean satisfechas: |𝐹𝑥 | + |𝐹𝑦 | ≤ 𝑘1 < 1 |𝐺𝑥 | + |𝐺𝑦 | ≤ 𝑘2 < 1 Para todo punto (𝑥 , 𝑦) perteneciente a una vecindad V de (𝑥̅ , 𝑦̅), donde: 𝛿𝐹 𝛿𝐹 𝐹𝑥 = , 𝐹𝑦 =, 𝑒𝑡𝑐. 𝛿𝑥 𝛿𝑦 c) La aproximación inicial (𝑥0 , 𝑦0 ) pertenezca a la vecindad V de (𝑥̅ , 𝑦̅). Para obtener una solución con una determinada precisión se debe, durante el proceso iterativo, calcular el error relativo para todas las componentes del vector solución. Ejemplo: Considerar el siguiente sistema no lineal. { 𝑓(𝑥 ,𝑦) = 0,2 𝑥 2 + 0,2 𝑥 𝑦 − 𝑥 + 0,6 = 0 𝑔(𝑥 ,𝑦) = 0,4 𝑥 + 0,1 𝑥 𝑦 2 − 𝑦 + 0,5 = 0 a) Verificar reescribiendo el sistema dado, se obtiene: { 𝑥 = 0,2 𝑥 2 + 0,2 𝑥 𝑦 − 𝑥 + 0,6 = 𝐹(𝑥 , 𝑦) 𝑦 = 0,4 𝑥 + 0,1 𝑥 𝑦 2 − 𝑦 + 0,5 = 𝐺(𝑥 , 𝑦) Las condiciones suficientes para garantizar la convergencia son satisfechas. b) Aplicar el método iterativo lineal para resolver el sistema dado. Solución: Es muy difícil conocer a priori la solución del sistema, sin embargo hay casos en que se puede intuir un posible resultado, debido a la simplicidad del problema. En este caso, como es un ejemplo ilustrativo para verificar las condiciones suficientes de convergencia, como aplicación del método iterativo lineal; por lo tanto, se considerará inicialmente (𝑥0 , 𝑦0 ) = (0,9 ; 1,1) Para verificar las condiciones suficientes, se calcula inicialmente, las derivas parciales de F y G. Así: 𝐹𝑥 = 0,4 𝑥 + 0,2 𝑦 , 𝐹𝑦 = 0,2 𝑥, 2 𝐺𝑥 = 0,4 + 0,1 𝑦 , 𝐺𝑦 = 0,2 𝑥 𝑦, Si se escribe que (𝑥0 , 𝑦0 ) = (0,9; 1,1,) se ve que F, G y sus derivadas parciales son continuas en (𝑥0 , 𝑦0 ). Además de eso, las desigualdades que figuran en las condiciones para la convergencia son satisfechas, se tiene: |𝐹𝑥 | + |𝐹𝑦 | = |(0,4) (0,9)| + |(0,2) (0,9)| = 0,76 < 1 |𝐺𝑥 | + |𝐺𝑦 | = |(0,4) + (0,1)(1,1)2 | + |(0,2) (0,9)(1,1)| = 0,719 < 1 Esto demuestra que (𝑥0 , 𝑦0 ) esta en la vecindad de (𝑥̅ , 𝑦̅) = (0,9; 1,1,) y usando el proceso iterativo definido por (4), se obtiene: 𝑥1 = 𝐹(𝑥0 , 𝑦0 ) = (0,2)(0,9)2 + (0,2)(0,5)(1,1) + 0,6 𝑦1 = 𝐺(𝑥0 , 𝑦0 ) = (0,4) (0,9) + (0,1)(0,9)(1,1)2 + 0,5 𝑥1 = 0,96 𝑦1 = 0,9689 𝑥2 = 𝐹(𝑥1 , 𝑦1 ) = (0,2)(0,96)2 + (0,2)(0,96)(0,9689) + 0,6 𝑦2 = 𝐺(𝑥1 , 𝑦1 ) = (0,4) (0,96) + (0,1)(0,96)(0,9689)2 + 0,5 𝑥3 = 𝐹(𝑥2 , 𝑦2 ) = (0,2)(0,9703)2 + (0,2)(0,9703)(0,9791) + 0,6 0,9763 𝑦3 = 𝐺(𝑥2 , 𝑦2 ) = (0,4) (0,9703) + (0,1)(0,9703)(0,9791)2 + 0,5 0,9802 𝑥2 = 0,9703 𝑦2 = 0,9791 𝑥3 = 𝑦3 = Se nota que la secuencia (𝑥𝑘 , 𝑦𝑘 ) converge para (1 , 1). Adedmas de eso, se puede decir que la solución (𝑥̅ , 𝑦̅), con error relativo inferior a 10-2 , es (0,9773 , 0,982), |𝑥 −𝑥 | |𝑦 −𝑦 | aplicando 3𝑥 2 0,007 y 3𝑦 2 0,001. Si una de las componentes cumpliera con la 3 3 condición prefijada y la otra no, el proceso debe seguir hasta que todas cumplan con la precisión deseada. Método de Newton: Para adaptar el método de Newton a los sistemas no lineales, se procede como sigue: Sea (𝑥0 , 𝑦0 ) una aproximación para la solución de (𝑥̅ , 𝑦̅) de (2). Admitiendo que f y g sean suficientemente diferenciables, expandiendo 𝑓(𝑥 , 𝑦) y 𝑔(𝑥 , 𝑦) , usando la serie de Taylor para funciones de dos variables, en torno de (𝑥0 , 𝑦0 ). Así. { 𝑓(𝑥 , 𝑦) = 𝑓(𝑥0 , 𝑦0 ) + fx (𝑥0 , 𝑦0 )(𝑥 − 𝑥0 ) + 𝑓𝑦 (𝑥0 , 𝑦0 )(𝑦 − 𝑦0 ) + … 𝑔(𝑥 , 𝑦) = 𝑔(𝑥0 , 𝑦0 ) + g x (𝑥0 , 𝑦0 )(𝑥 − 𝑥0 ) + 𝑔𝑦 (𝑥0 , 𝑦0 )(𝑦 − 𝑦0 ) + … Admitiendo que (𝑥0 , 𝑦0 ) esté suficientemente próximo de la solución (𝑥̅ , 𝑦̅) al punto de evitar la operación con los términos de mas alto orden, se puede determinar una nueva aproximación para la raíz (𝑥̅ , 𝑦̅) haciendo 𝑓(𝑥 , 𝑦) = 𝑔(𝑥 , 𝑦) = 0. Se obtiene el sistema: { 𝑓𝑥 (𝑥 − 𝑥0 ) + 𝑓𝑦 (𝑦 − 𝑦0 ) = −𝑓 𝑔𝑥 (𝑥 − 𝑥0 ) + 𝑔𝑦 (𝑦 − 𝑦0 ) = −𝑔 (5) Esta entendido que todas las funciones y derivadas parciales en (5) deben ser calculadas en (𝑥0 , 𝑦0 ). Se observa que (5) es ahora una ecuación lineal. Además de eso, si no fueran despreciados los términos de más alto orden en el desarrollo de Taylor, entonces (x , y) sería la solución exacta del sistema no lineal. La resolución de (5) producirá una solución que se llamará (𝑥1 , 𝑦1 ). Entonces, se debe esperar que (𝑥1 , 𝑦1 ) esté mas próxima de (𝑥̅ , 𝑦̅) que de (𝑥0 , 𝑦0 ). Resolviendo (5) por la regla de Kramer se obtiene: −𝑓 𝑓 |−𝑔 𝑔𝑦 | −𝑓 𝑔𝑦 + 𝑔 𝑓𝑦 𝑦 𝑥1 − 𝑥0 = = | | 𝑓𝑥 𝑓𝑦 𝐽(𝑓 , 𝑔) (𝑥0 ,𝑦0 ) |𝑔 𝑔 | 𝑥 𝑦 𝑓𝑥 − 𝑓 | −𝑔 𝑓𝑥 + 𝑓 𝑔𝑥 𝑔𝑥 − 𝑔 𝑦1 − 𝑦0 = = | | 𝑓𝑥 𝑓𝑦 𝐽(𝑓 , 𝑔) (𝑥0 ,𝑦0 ) |𝑔 𝑔 | 𝑥 𝑦 | Donde 𝐽(𝑓 , 𝑔) = 𝑓𝑥 𝑔𝑦 − 𝑓𝑦 𝑔𝑥 0 en (𝑥0 , 𝑦0 ). La función 𝐽(𝑓 , 𝑔) es denominada Jacobiano de las funciones 𝑓 y 𝑔. La solución (𝑥1 , 𝑦1 ) de este sistema, produce ahora una nueva aproximación para (𝑥̅ , 𝑦̅). La repetición de este proceso conduce al Método de Newton para sistemas no lineales. El método de Newton para sistemas no lineales está definida por: 𝑓 𝑔𝑦 − 𝑔 𝑓𝑦 𝑥𝑘+1 = 𝑥𝑘 − | | 𝐽(𝑓 , 𝑔) (𝑥 ,𝑦 ) { 𝑦𝑘+1 𝑔 𝑓𝑥 − 𝑓𝑔𝑥 = 𝑦𝑘 − | | 𝐽(𝑓 , 𝑔) (𝑥 𝑘 𝑘 𝑘 ,𝑦𝑘 ) Con 𝐽(𝑓 , 𝑔) = 𝑓𝑥 𝑔𝑦 − 𝑓𝑦 𝑔𝑥 Observaciones: 1) Cuando la iteración converge, la convergencia es cuadrática. 2) El método de Newton converge según las siguientes condiciones siguientes: a) 𝑓 , 𝑔 y sus derivadas parciales hasta de segundo orden sean continuas y limitadas en una vecindad V conteniendo (𝑥̅ , 𝑦̅). b) 𝐸𝑙 𝐽𝑎𝑐𝑜𝑏𝑖𝑎𝑛𝑜 𝐽(𝑓 , 𝑔) no se anula en la vecindad V. c) La aproximación inicial (𝑥0 , 𝑦0 ) sea elegida suficientemente próxima de la raíz (𝑥0 , 𝑦0 ). 3) El método de Newton puede ser aplicado a un sistema de ecuaciones de 𝑛 incógnitas. En cada iteración se tiene, entonces, que calcular n2 funciones derivadas parciales y n funciones. La solución de un sistema de n ecuaciones, siendo n un valor elevado, seria muy difícil, aun para el uso de las computadoras. Ejemplo: 𝑥2 + 𝑦2 = 2 𝑥2 − 𝑦2 = 1 Con precisión de 10-3, usando el método de Newton. Determinar una raíz del sistema: r r r r r r rr { Ecuaciones Polinomiales Las ecuaciones polinomiales pueden ser resultas por cualquiera de los métodos iterativos. Las ecuaciones polinomiales requieren de un tratamiento especial. En particular, se presenta algunos algoritmos eficientes para la determinación de las raíces de polinomios, serán estas, reales o complejas. Sea: 𝑃(𝑥) = 𝑎𝑛 𝑥 𝑛 + 𝑎𝑛−1 𝑥 𝑛−1 + … + 𝑎1 𝑥 + 𝑎0 ∑ 𝑛 𝑎𝑖 𝑥 𝑖 , 𝑎 𝑛 ≠ 0 𝑖=0 Un polinomio de grado n con an 0. Entonces, los siguientes resultados son validos para P(x): a) P(x) posee, por lo menos, una raíz. b) P(x) posee, exactamente, n raíces, donde una raíz de multiplicidad k sea considerada k veces. c) Si los valores numéricos de dos polinomios de grado menor o igual a n coincidan para mas de n valores distintos de x, los polinomios son idénticos. d) Si 𝑥1 , 𝑥2 , … , 𝑥𝑛 fueren las raíces de P(x), entonces P(x) puede ser expresado unívocamente en la forma factorizada: 𝑃(𝑥) = 𝑎𝑛 (𝑥 − 𝑥1 )(𝑥 − 𝑥2 ) … (𝑥 − 𝑥𝑛 ) e) Si los coeficientes 𝑎𝑘 , (k = 0, 1, 2, … , n) fueren reales, y si (𝑎 + 𝑏𝑖) fuere una raíz compleja, entonces (𝑎 − 𝑏𝑖) será tamvbien una raíz de 𝑃(𝑥). Determinación de raíces reales Se deduce un algoritmo para la determinación de raíces reales de polinomios Se considera solamente polinomios que contengan coeficientes reales. En cualquier método iterativo para la determinación de raíces de un polinomio, se tiene que calcular, frecuentemente, el valor numérico del polinomio para un determinado número real. Por tanto es importante realizar el cálculo de una forma tan precisa como sea posible. Por ejemplo, usando el método de Newton se tiene: 𝑃(𝑥𝑘 ) 𝑥𝑘+1 = 𝑥𝑘 − 𝑃´(𝑥𝑘 ) Para medir la eficiencia de los algoritmos para calcular el valor del polinomio en un punto, se usa la siguiente notación: o = tiempo de procesamiento de una multiplicación. o = tiempo de procesamiento de una adición. Existen problemas relativamente simples y existe algoritmo que calcula P(x) , P´(x) y también las derivadas de orden superior de P(x), si se deseara, con una cantidad muy inferior del tiempo de procesamiento. Ese algoritmo, se llama: algoritmo de Briot – Ruffini – Horner, es obtenido escribiendo la fórmula para P(x) de la siguiente manera: (considerar n = 4) 𝑃(𝑥) = 𝑎4 𝑥 4 + 𝑎3 𝑥 3 + 𝑎2 𝑥 2 + 𝑎1 𝑥 + 𝑎0 = (((𝑎4 𝑥 + 𝑎3 )𝑥 + 𝑎2 )𝑥 + 𝑎1 )𝑥 + 𝑎0 De este modo se tiene el tiempo de procesamiento requerido es: 4 + 4. Así, de un modo general, para un polinomio de grado n se puede formular el algoritmo de la siguiente manera: Dados 𝑎𝑛 , 𝑎𝑛−1 , … , 𝑎0 , calcular 𝑏𝑛 , 𝑏𝑛−1 , … , 𝑏0 , de acuerdo con: 𝑏𝑛 = 𝑎𝑛 , 𝑏𝑛−𝑘 = 𝑥𝑏𝑛−𝑘+1 + 𝑎𝑛−𝑘 , k = 1, 2, …, n (6) Por tanto, 𝑏0 = 𝑃(𝑥) = valor de P en x. así, 𝑥̅ es una raíz de P(x) si y solamente si (sii), el algoritmo de Briot – Ruffinni, Horner, formado con el numero 𝑥̅ , resulta que 𝑏0 = 0. El tiempo de procesamiento requerido ahora es : n + n. Aplicando ahora a 𝑏𝑘 el mismo algoritmo que se aplica a 𝑎𝑘 . Haciendo eso, se obtiene números 𝑐𝑘 de acuerdo con: 𝑐𝑛 = 𝑏𝑛 , 𝑐𝑛−𝑘 = 𝑥𝑐𝑛−𝑘+1 + 𝑏𝑛−𝑘 , k = 1, 2, …, n – 1. (7) Sorprendentemente, 𝑐1 = 𝑃´(𝑥), así el valor de la derivada del polinomio en x es obtenida, con el tiempo de procesamiento igual a (n – 1) ( + ). La prueba analítica de que 𝑐1 = 𝑃´(𝑥), se realiza por diferenciación de relación de recurrencia dada por (6), recordar que 𝑏𝑘 es función de x, mientras que los 𝑎𝑘 no. Así, derivando (6), se obtiene: 𝑏´𝑛 = 0, 𝑏´𝑛−𝑘 = 𝑥𝑏´𝑛−𝑘+1 + 𝑏𝑛−𝑘+1 , 𝑘 = 1, 2, … , 𝑛 Se ve que 𝑏´𝑛−1 = 𝑏𝑛 , y que las cantidades 𝑐𝑘 = 𝑏´𝑘−1 son idénticas a los 𝑐𝑘 definidos por (7). Entonces, como 𝑏0 = 𝑃(𝑥), consecuentemente, 𝑐1 = 𝑏´0 = 𝑃´(𝑥). Sea x = z, entonces los valores de P(z), formulas (6), y P´(z) formulas (7), pueden ser obtenidos a través del esquema practico. Sea 𝑃(𝑥) = 𝑎𝑛 𝑥 𝑛 + 𝑎𝑛−1 𝑥 𝑛−1 + … + 𝑎1 𝑥 + 𝑎0. Entonces: 𝑎𝑛 𝑎2 𝑎1 𝑎0 + 𝑧𝑏𝑛−1 … + 𝑧𝑏3 + 𝑧𝑏2 + 𝑧𝑏1 𝑏𝑛−1 𝑏𝑛−2 … 𝑏2 𝑏1 𝑏0 + 𝑧𝑐𝑛 + 𝑧𝑐𝑛−1 … + 𝑧𝑐3 + 𝑧𝑐2 + 𝑧𝑏𝑛 𝑧 𝑏𝑛 𝑧 𝑎𝑛−1 𝑎𝑛−2 … 𝑐𝑛 𝑐𝑛−1 𝑐𝑛−2 … 𝑐2 𝑐1