Solución de ecuaciones no lineales

Slides:



Advertisements
Presentaciones similares
Funciones/Funciones Elementales/Polinomios.
Advertisements

Resolución aproximada de ecuaciones Ejemplos
Método de la falsa posición
CODIFICACIÓN EN MATLAB
Propiedades de las Funciones Continuas
Problemas resueltos del Teorema de Rolle
Problemas del método de Newton
Problemas del Teorema de Rolle
Métodos de Análisis Ingenieril
Tema III: Solución de ecuaciones no lineales
Inecuaciones CUADRÁTICAS
3. Métodos de resolución Ecuaciones algebraicas lineales
Curso de modelización y simulación de procesos. ETSII. Manuel Rodríguez MÉTODOS DE RESOLUCIÓN Ecuaciones Algebraicas LinealesNo lineales Interval Halving.
MÉTODOS NUMÉRICOS 1.1 Raíces Gustavo Rocha
MÉTODOS NUMÉRICOS Raíces de ecuaciones
MÉTODOS NUMÉRICOS Raíces de ecuaciones
Métodos Numéricos por Interpolación
Instituto Tecnológico de Costa Rica Escuela Ingeniería en Electrónica Curso: Métodos Numéricos Método de Bairstow Profesor: Ing. Marvin Hernández.
Sistemas de Ecuaciones no Lineales
Instituto Tecnológico de Costa Rica Escuela Ingeniería en Electrónica Curso: Métodos Numéricos Método de Bairstow Profesor: Ing. Marvin Hernández.
Integración Numérica Cálculo Numérico Práctica 2.
Métodos Iterativos para la resolución de ecuaciones en una variable
MÉTODO DE LA SECANTE Este método se basa en la fórmula de Newton-Raphson, pero evita el cálculo de la derivada usando la siguiente aproximación Sustituyendo.
MÉTODO DE BISECCION El método de bisección se basa en el Teorema del Valor Intermedio Básicamente el Teorema del Valor Intermedio nos dice que toda función.
MÉTODO DE LA REGLA FALSA
MÉTODO DE NEWTON RAPHSON
Computación Científica
RAICES DE POLINOMIOS 4El teorema fundamental del Algebra 4Evaluación 4 Aproximación y recuento de raíces.
Contenido Planteamiento del problema Método de Punto Fijo
Funciones En MATLAB. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada. sin(x), cos(x),
JOCELYN DÁVILA HERNÁNDEZ JORGE QUECHOLAC ZAMBRANO.
Benemérita Universidad Autónoma de Puebla Facultad de Ciencias de la Computación Métodos Numéricos Método de la regla falsa Balderas Nieves Dulce Ivett.
Métodos de Análisis Ingenieril
Operaciones con Polinomios
Método de Steffensen.
Programación Numérica
Programación en Matlab
Práctica 2 La ecuación f(x)=0. v Problemas clásicos y modernos v Métodos Iterativos v Tipos de convergencia v Método del Punto Fijo v Método de Bisección.
SESION Nº 03.  En la práctica de la ingeniería y ciencias, es muy frecuente él tener que resolver ecuaciones del tipo f(x)=0. En estas ecuaciones se.
Interpolación y aproximación polinomial
Teoría de Sistemas y Señales
Integración Numérica Ultima actualización: 13/04/2017
Tópicos Especiales en Computación Numérica
UNIVERSIDAD POPULAR DEL CESAR
Ecuaciones diferenciales de orden superior
M. en C. José Andrés Vázquez Flores
Método de bisección Estimación predeterminada de la precisión. El método recursivo. Un ejemplo de resolución.
Método de Steffensen Nicolás Martínez Santiago Ramón Medina Aparicio.
Bisección. Newton-Raphson Secante UNIVERSIDAD NACIONAL EXPERIMENTAL DEL TÁCHIRA DECANATO DE POSTGRADO Maestría en Matemática Mención Educación Matemática.
Raíces de ecuaciones No Lineales Lucia Lucio Cesar Vázquez Sánchez.
Métodos iterativos Álgebra superior.
MÉTODOS NUMÉRICOS Unidad 2
Programac. De Métodos Numéricos Unidad 2
Máquinas de Soporte Vectorial. (Clase Nº 3: Ideas Preliminares)
Ecuación Cuadrática Profesor: Víctor Moreno.
Ecuaciones cuadráticas
Solución de Ecuaciones Lineales y
MATE 3011 – PRESENTACION #6 Desigualdades.
EL MÉTODO DE LA SECANTE Y SECANTE MODIFICADA
Interpolación Jessica Hernández Jiménez.
ENRIQUE MALDONADO MUÑOZ JESUS CABALLERO LUNA IRVING GONZÁLEZ VÁZQUEZ.
Tema 4 : Cálculo de raíces de ecuaciones no lineales
BIENVENIDO AL CURSO DE TEMAS SELECTOS DE MATEMÁTICAS PROFRA: L.A.F. JESSICA PAREDES SILVA.
MÉTODO DE LA REGLA FALSA APROXIMACION DE RAÍCES Norma Jacqueline Herrera Domínguez Alexander Reyes Merino.
 Una ecuación de segundo grado [1] [2] o ecuación cuadrática de una variable es una ecuación que tiene la forma de una suma algebraica de términos cuyo.
Introducción. Unidad 1. Resolución de Ecuaciones. Métodos que utilizan intervalos.
MÉTODOS NUMÉRICOS 1.1 Raíces
MÉTODOS NUMÉRICOS 2.2 Raíces de ecuaciones
Método de la bisección Se trata de encontrar los ceros de f(x) = 0
METODO DE NEWTON RAPHSON
Transcripción de la presentación:

Solución de ecuaciones no lineales Curso de Programación numérica

Temario Métodos cerrados: Métodos gráficos Método de bisección Método de la posición falsa Métodos abiertos Iteración simple de punto fijo Método de Newton-Raphson Método de la secante Raíces de polinomios Método de Müller Método de Bairstow

Métodos gráficos Los métodos gráficos consisten en graficar la función f(x) y observar donde la función cruza el eje x.

Ejemplo 1 Encontrar la raíz de:

Ejemplo 2 Grafica de: f(x) = sen 10x + cos 3x

Ejemplo 2 (cont.) Grafica de: f(x) = sen 10x + cos 3x

Tarea Utilice Excel para los siguientes problemas. Determine las raíces reales de: f(x) = –0.5x2 + 2.5x + 4.5 Gráficamente. Confirme utilizando la fórmula cuadrática. Determine las raíces reales de: f(x) = 5x3 – 5x2 + 6x – 2 Gráficamente.

Método de la bisección Se trata de encontrar los ceros de f(x) = 0 Donde f es una función continua en [a,b] con f(a) y f(b) con signos diferentes. y f(a) y = f(x) b x a f(b)

Método de la bisección De acuerdo con el teorema del valor medio, existe p  [a,b] tal que f(p) = 0. El método consiste en dividir a la mitad el intervalo y localizar la mitad que contiene a p. El procesos se repite hasta la lograr la precisión deseada.

Método de la bisección Primera iteración del algoritmo y f(a) y = f(x) Mitad del intervalo que contiene a p f(a) y = f(x) f(p1) b x a f(b) p p1=(a+b)/2

Método de la bisección Segunda iteración del algoritmo y y = f(x) f(a) Mitad del intervalo que contiene a p y = f(x) f(a) b x a =p1 f(b) f(p2) p p2=(a+b)/2

Método de la bisección Algoritmo bisección Entradas: extremos a,b; número de iteraciones ni; tolerancia tol 1. p=a; i=1; eps=1; 2. mientras f(p)0 y i ni eps>tol 2.1. pa = p; 2.2. p = (a+b)/2 2.3. si f(p)*f(a)>0 entonces a=p; 2.4. sino 2.5. si f(p)*f(b)>0 entonces b=p; 2.6. i = i + 1; eps = |p-pa|/p;

Bisección en C double biseccion(double a, double b, double error, int ni){ double p,pa,eps; int i; p = a; i = 1; eps = 1; while(f(p) != 0 && i<ni && eps > error){ pa = p; p = (a+b)/2; if(f(p)*f(a)>0) a = p; else if(f(p)*f(b)>0) b = p; i++; eps = fabs(p-pa)/p; } return p;

Ejemplo Función de ejemplo Función en C: double f(x){ return sqrt(x*x + 1) - tan(x); }

Tarea Haga funciones en C para encontrar la solución de las siguientes ecuaciones utilizando la función biseccion(): 1. ex – x2 + 3x – 2 = 0 para 0 <= x <= 1 2.

Error en el método de bisección Para el método de bisección se sabe que la raíz esta dentro del intervalo, la raíz debe situarse dentro de Dx / 2, donde Dx = xb – xa. La solución en este caso es igual al punto medio del intervalo xr = (xb + xa) / 2 Deberá expresarse por xr = (xb + xa) / 2  Dx / 2 Error aproximado sustituyedo

Número de iteraciones El error absoluto en la primera iteración es: El error absoluto en la iteración n-ésima es: Si el error deseado es Ead,El número de iteraciones será:

Volumen del abrevadero h L r a h b

Tarea 17. Un abrevadero de longitud L tiene una sección transversal en forma de semicírculo con radio r (véase la figura) Cuando se llena de agua hasta una distancia h de la parte superior, el volumen V de agua es V = L [ 0.5 pr2 – r2 arcsen(h/r) – h(r2 – h2)1/2 ] Escriba un programa en C amigable para el usuario que lea los datos de este problema y encuentre la profundidad h del abrevadero. Utilice el método de bisección para encontrar la solución. r h L

Resumen Requiere que se conozca el intervalo en donde está la raíz. Los valores de la función en los extremos deben tener signos diferentes. Converge lentamente, a cada paso el intervalo se divide en 2.

Método de falsa posición Este método considera cual límite del intervalo está más próximo a la raíz. De la figura f(xu) Despejando xr xl xu f(xr) f(xl)

Ejemplo en Excel Encontrar la raíz de:

Tarea Encuentre la raíz real de f(x) = (0.8 – 0.3x)/x, por el método de falsa posición. Utilice valores iniciales de 1 y 3, calcule el error porcentual verdadero en cada iteración. Encuentre la raíz analiticamente.

Falsa posición en C if(fl*fr<0){ xu = xr; fu = f(xu); iu = 0; il++; if(il>=2) fl/=2; } else{ xl = xr; fl = f(xl); il = 0; iu++; if(iu>=2) fu/=2; else; error = 0; }while(error>ee && iter<=imax); return xr; double falsaPosicion(double xl, double xu, double ee, int imax){ double error,fl,fu,fr,xr,xrOld; int iter=0,il=0,iu=0; fl = f(xl); fu = f(xu); do{ xrOld = xr; xr = xu - fu*(xl-xu)/(fl-fu); fr = f(xr); iter++; if(xr!= 0) error=fabs((xr-xrOld)/xr*100);

Iteración de punto fijo Un punto fijo de una función g(x) es un número p tal que g(p) = p. Dado un problema f(x) = 0, se puede definir una función g(x) con un punto fijo en p de diferentes maneras. Por ejemplo g(x) = x – f(x).

Teorema y y |g’(x)<=1 |g’(x)>1 y = x y = x b b p=g(p) y = g(x) Si g  C [a, b] y g(x)  C [a, b] para toda x  C [a, b], entonces g tiene un punto fijo en [a, b]. Si además g’(x) existe en (a, b) y una constante positiva k<1 existe con |g’(x)| <= k, pata toda x  (a, b), Entonces el punto fijo en [a, b] es único. y y |g’(x)<=1 |g’(x)>1 y = x y = x b b p=g(p) y = g(x) p=g(p) y = g(x) a a a a p b x p b x

Algoritmo de punto fijo Obtener una solución a p = g(p) dada un aproxiamción inicial p0. ENTRADA aproximación inicial p0; tolerancia TOL; número máximo de iteraciones N0. 1. Tome i = 1. 2. Mientras i <= N0 hacer 3. p = g(p0) 4. Si |p – p0| < TOL entonces 5. Regresar p 6. i = i +1 7. p0 = p 8. Fin mientras 9. Imprime ‘El procedimiento fracasó después de N0 iteraciones’

Gráfica del algoritmo de punto fijo y = x y y p3= g(p2) y = x y = g(x) p2= g(p1) p2= g(p1) p1= g(p0) p3= g(p2) y = g(x) p1= g(p0) p1 p3 p2 p0 p0 p1 p2 x x

Casos de no convergencia y = x y y y = x y = g(x) y = g(x) x x

Ejemplo Sea la función: x3 + 4x2 –10 = 0 tiene una raíz en [1, 2] Puede despejarse en: a. x = g1(x) = x – x3 – 4x2 +10 b. x = g2(x) = ½(10 – x3)½ c. x = g3(x) = (10/(4 + x))½ d. x = g4(x) = x – (x3 + 4x2 – 10)/(3x2 + 8x)

Iteraciones de punto fijo 1 1.5 2 -0.875 3 6.732421875 4 -469.72001200 5 1.02754555E8 6 -1.084933870E24 7 1.277055591E72 8 -2.082712908E216 9 NaN 10 11 12 13 14 15 20 25 30 (b) 1.5 1.286953767 1.402540803 1.345458374 1.375170252 1.360094192 1.367846967 1.363887003 1.365916733 1.364878217 1.365410061 1.365137820 1.365277208 1.365205850 1.365242383 1.365229578 1.365230028 1.365230012 (c) 1.5 1.348399724 1.367376371 1.364957015 1.365264748 1.365225594 1.365230575 1.365229941 1.365230022 1.365230012 1.365230013 1.365230013 (d) 1.5 1.373333333 1.365262014 1.365230013 1.365230013

Funciones graficadas en MathLab

Teorema de punto fijo Si g  C [a, b] y g(x)  C [a, b] para toda x  C [a, b], además supongamos que existe g’(x) en (a, b) y una constante positiva k<1 cuando |g’(x)| <= k, pata toda x  (a, b), Entonces, para cualquier punto p0 en [a, b] la sucesión definida por pn = g(pn–1), n >=1 Converge en el único punto fijo p en [a, b].

Corolario Si g satisface las hipótesis de teorema del punto fijo, las cotas de error que supone utilizar pn para aproximar a p están dadas por | pn – p| <= kn max(p0 – a, b – p0) Y por | pn – p| <= kn | p1 – p0|/ (1 – k), para toda n>=1

Análisis del ejemplo Caso (a) g1(x) = x – x3 – 4x2 +10 g1’(1) = – 11, g1’(2) = – 28 No se cumple |g1’(x)| <1 Caso (b) g2(x) = ½(10 – x3)½ g2’(x) = – 3/4x2(10 – x3)–½ g2’(1) = – 0.25, g1’(2) = – 2.1213 No se cumple |g1’(x)| <1 Caso (c) g3(x) = (10/(4 + x))½ g3’(x) = (– 5/3.16)(4 + x)–1.5 <= (– 5/3.16)(5)–1.5 <= 0.15 Para toda x en [1, 2] Caso (d) g4(x) = x – (x3 + 4x2 – 10)/(3x2 + 8x) Se cumple |g4’(x)| es aún menor que en el caso (c) para toda x en [1, 2]

Programa en Matlab function y = PuntoFijo(f_name, p0, tol, ni) %f_name - nombre de la funcion %p0 - valor inicial de la raiz %tol – tolerancia %ni – número de iteraciones i = 1; while i<=ni p = feval(f_name,p0); if(abs(p0-p)<tol) y = p; break; end i = i + 1; p0 = p; fprintf('No se encontro solucion.');

Función en C double PuntoFijo(double p0, double tol, int ni){ int i = 1; double p; while(i<=ni){ p = f(p0); if(fabs((p0-p)/p)<tol) return p; i++; p0 = p; } std::cout << "NO solucion en :" << ni << “ iteraciones.\n";

Tarea Encontrar la raíz más grande de f(x) = 2x3 – 11.7x2 + 17.7x – 5 Resolver por el método del punto fijo partiendo de x = 3.

Método de Newton-Raphson f(x) La ecuación de la recta tangente es: y – f(xn) = f ’ (xn)(x – xn) Cuando y = 0, x = xn+1 o sea 0 – f(xn) = f ’ (xn)(xn+1– xn) o Pendiente = f ’ (xn) f (xn) xn+1 xn

Algoritmo Newton Para obtener una solución a f(x) = 0 dada una aproximación p0. ENTRADA aproximación inicial p0; tolerancia tol; número máximo de iteraciones N0. 1. i = 1 2. Mientras i<=N0 hacer 2.1. p = p0 – f(p0)/f’(p0) 2.2. Si |p – p0|< tol entonces regrese p 2.3. i = i + 1 2.4. p0 = p 3. fracaso en encontrar la raíz en N0 iteraciones

Ejemplo f(x) = x – cos(x) f’(x) = 1 + sen(x) pn+1 = pn – (pn – cos(pn))/(1 + sen(pn)) Tomando p0 = 0, se obtiene pn f(pn) f’(pn) pn+1 0 -1 1 1 1 0.459698 1.8414 0.7503639 0.7503639 0.0189 1.6819 0.7391128 0.7391128 0.00005 1.6736 0.7390851 0.7390851 3E-10 1.6736 0.7390851

Ejercicio Encontrar la solución de x3 + 4x2 – 10 = 0 En el intervalo [1, 2] con el método de Newton

Código en C double Newton(double x0, double ee, int ni){ int i = 0; double x,fx,dfx; while(i<ni){ fx = f(x0); dfx = df(x0); x = x0-fx/dfx; if(fabs((x-x0)/x)<ee) return x; i++; x0 = x; } std::cout << "No solución en "<< i << " pasos\n";

Ejemplo: cuenta de ahorros El valor acumulado de una cuenta de ahorros puede calcularse con la ecuación de anualidad vencida A = P[(1 + i )n - 1 ] / i En esta ecuación A es el monto de la cuenta, P es la cantidad que se deposita periódicamente e i es la tasa de interés por periodo para los n periodos de depósito. A un ingeniero le gustaría tener una cuenta de ahorros con un monto de $ 750,000 dólares al momento de retirarse dentro de 20 años, y puede depositar $ 1,500 dólares mensuales para lograr dicho objetivo. ¿Cuál es la mínima tasa de interés a que puede invertirse ese dinero, suponiendo que es un interés compuesto mensual? Escriba un programa en C para este problema, el programa deberá pedir todos los datos necesarios y utilizar el método de Newton para calcular el interés a que debe invertirse el dinero.

Solución Para estimar el valor inicial de i podemos desarrollar el binomio (1 + i)n para aproximarlo a la segunda potencia. El resultado es Se sugiere validar los datos de entrada. El capital a obtener debe ser mayor que el depósito por el número de abonos, es decir A > nP

Ejemplos resuelto en Excel

Método alternativo para evaluar la derivada (método de la secante) Es posible calcular la derivada en xn usando: O utilizando

Algoritmo Newton2 Para obtener una solución a f(x) = 0 dada una aproximación p0. ENTRADA aproximación inicial p0; tolerancia tol; número máximo de iteraciones N0. 1. i = 1 2. h = 0.001 3. Mientras i<=N0 hacer 2.1. y = f(p0) 2.2. y_deriv =(f(p0+h)-y)/h 2.3. p = p0 – y/y_deriv 2.4. Si |p – p0|< tol entonces regrese p 2.5. i = i + 1 2.6. p0 = p 3. fracaso en encontrar la raíz en N0 iteraciones

Código en C double Newton(double x0, double ee, int ni){ int i = 0; double x,fx,dfx,h; h = 0.0001; while(i<ni){ fx = f(x0); dfx = (f(x0+h)-fx)/h; x = x0-fx/dfx; if(fabs((x-x0)/x)<ee) return x; i++; x0 = x; } std::cout << "No solución en "<< i << " pasos\n";

Programa en Matlab function x = Newt_n(f_name, xO) % Iteración de Newton sin gráficos x = xO; xb = x-999; n=0; del_x = 0.01; while abs(x-xb)>0.000001 n=n+1; xb=x ; if n>300 break; end y=feval(f_name, x) ; y_driv=(feval(f_name, x+del_x) - y)/del_x; x = xb - y/y_driv ; fprintf(' n=%3.0f, x=%12.5e, y=%12.5e, ', n,x,y) fprintf(' yd = %12.5e \n', y_driv) end fprintf('\n Respuesta final = %12.6e\n', x) ; Calcula derivada con incrementos

Raíz cuadrada con Newton Para extraer la raíz cuadrada de un número se puede resolver la ecuación f(x) = x2 – c = 0 La derivada es f’(x) = 2x La fórmula de recurrencia de Newton es xn+1 = xn – (xn2 – c)/(2xn) = xn/2 + c/(2xn) = (xn + c/xn)/2 Ejemplo: raíz cuadrada de 5 con x0 = 1.

Desventajas En algunos casos la convergencia es muy lenta, considere f(x) = xn – 1 Se obtiene la siguiente secuencia empezando en x = 0.5 iteración x 0 0.5 1 51.65 2 46.485 3 41.8365 4 37,65285 .. -- 1.000000

Desventajas (cont.) mínimo local raíz cerca de punto de inflexión f(x) f(x) x1 x0 x2 x x0 x2 x1 x mínimo local raíz cerca de punto de inflexión f(x) f(x) x1 x0 x1 x x0 x varias raíces la iteración en un mínimo

Ejemplo Resolver utilizando Excel sen x  - e-x = 0 para 0<= x <= 1 y 3<= x <= 4 y 6<= x <= 7

Resultados h= 0.1 xn f(xn) f'(xn) xn+1 0.00000000 -1.00000000 1.94995999 0.51283104 -0.10815190 1.41522716 0.58925121 0.00099615 1.33011566 0.58850229 -0.00004224 1.33095756 0.58853402 0.00000178 1.33092188 0.58853269 h= 0.01 xn f(xn) f'(xn) xn+1 0.00000000 -1.00000000 1.99499996 0.50125314 -0.12524617 1.47731614 0.58603267 -0.00347081 1.38411969 0.58854027 0.00001043 1.38133294 0.58853271 -0.00000004 1.38134134 0.58853274

Tarea #14 La carga en un circuito RLC serie esta dada por suponga q/q0 = 0.01, t = 0.05 s, L = 5H y C = 10-6 F. Encuentre el valor de la Resistencia R usando el método de Newton. Haga un programa en C para este problema.

Ejemplo La carga en un circuito RLC paralelo la impedancia esta dada por suponga R = 225, L = 0.5H y C = 0.610-6 F y Z = 75 Ohms. Encuentre el valor de la frecuencia w usando el método de Newton. 57

Convergencia en el punto fijo El algoritmo de punto fijo es de tipo lineal. Se puede demostrar que el error verdadero en la iteración i+1 es: Et,i+1= g’(x)Et,i donde Et,i = xr - xi

Convergencia en Newton Raphson El algoritmo de Newton es de tipo cuadrático. Se puede demostrar que el error verdadero en la iteración i+1 es: Et,i+1= (- f ’’(xr)/2f ’(xr))E2t,i Esto significa que el número de decimales exactos se duplica con cada iteración.

Raíces múltiples En el caso de que un polinomio tenga raíces múltiples, la función tendrá pendiente igual a cero cuando cruce el eje x. Tales casos no pueden detectarse en el método de bisección si la multiplicidad es par. En el método de Newton la derivada en la raíz es cero. Generalmente el valor de la función tiende a cero más rápido que la derivada y puede utilizarse el método de Newton

Ejemplo Polinomio: f(x) = (x – 3) (x – 1) (x – 1)