Universidad Autónoma de Chihuahua Facultad de Ingeniería Ingeniería de software Asignatura: Métodos numéricos Tema: Método de Newton Raphson Asesor: M.C. Claudio Hiram Carmona Jurado Alumno: Luis Alberto Rodríguez González 257333 12 de febrero de 2023 MÉTODO DE NEWTON RAPHSON El método de Newton Raphson nos sirve para encontrar aproximaciones de las raíces de funciones no lineales, es un método abierto esto quiere decir que no requiere de intervalos, solamente necesita un valor inicial al cual llamaremos xn. Éste valor será la primera aproximación de la raíz con el cual se debe evaluar la función y el resultado que nos dé va a ser punto en la función desde el cual vamos a dibujar una recta tangente (la cual representa la derivada de la función) que va a interceptarse con el eje de las equis, ese nuevo punto lo llamaremos xn+1 y de aquí en adelante el proceso se repite hasta encontrar la raíz o bien hasta llegar a una aproximación aceptable. Figura 1 En esta imagen se observa de manera gráfica como se representan los elementos de la función y ecuación a evaluar. El método se basa en el desarrollo de Taylor, que recordemos es de la siguiente manera: f(x) = f(a) + f '(a) (x-a) + (1/2!) f ' '(a) (x-a)2 + ...... + (1/n!) f (n) (a) (x-a)n y haciendo un poco de algebra nos queda como resultado la siguiente fórmula: xn+1 = (xn – f(xn)) / f ‘ (xn) Donde: xn+1 = Representa el valor aproximado de la raíz xn = Representa el valor inicial aproximado de la raíz f(xn) = La función evaluada en xn f ‘ (xn) = La derivada de la función evaluada en xn Ventajas: Este método puede ser rápido dadas las condiciones. Es eficiente en ecuaciones no lineales. Desventajas: Requiere de la primera derivada. Pudiera no convergir dependiendo de la función. Es ineficiente en ecuaciones lineales. Es muy lenta dependiendo de la complejidad de las derivadas. Los pasos a seguir en este método son los siguientes 1. Graficar la función. 2. Asignar valor inicial para xn 3. Evaluar f(x) y f ‘(x) 4. Calcular la raíz aproximada: xn+1 = (xn – f(xn)) / f ‘ (xn) 5. Calcular el error: Ea = | (xn+1 - xn) / xn+1 | 6. Regresar al paso 3 y repetir el proceso de manera iterativa hasta que f(xr)=0, hasta que el error (Ea) sea aceptable o hasta que se cumpla un determinado número de iteraciones. Ejemplo: Encontrar la raíz de la función f(x)=x3-x-1 hasta que Ea sea menor 0.05 Paso 1: Graficar la función Figura 2 En esta imagen aprovecho para dejar el valor de la raíz a modo de comprobación. Paso 2: Asignar valor inicial para x1 Primera Iteración x1 = 1 Paso 3: Evaluar f(x) y f ‘(x) f(x) = x3-x-1 f ‘(x) = 3x2 -1 Ahora vamos a evaluar la aproximación inicial en ambas funciones f(x) = (1)3-1-1 f(x) = -1 f ‘(x) = 3(1)2 -1 f ‘(x) = 2 Segunda Iteración Paso 4: x2 = (x1 – f(x1)) / f ‘ (x1) x2 = (1 –(–1 / 2 )) x2 = (1 –(–0.5 )) x2 = (1 + 0.5) x2 = 1.5 Paso 5: Calcular el error: Ea = | (x2 – x1) / x2 | Ea = | (1.5 – 1) / 1.5 | Ea = 0.3333 Tercera Iteración: Paso 3: Evaluar f(x) y f ‘(x) f(x) = x3-x-1 f ‘(x) = 3x2 -1 Ahora vamos a evaluar la aproximación inicial en ambas funciones f(x2) = (1.5)3-1.5-1 f(x2) = 0.875 f ‘(x2) = 3(1.5)2 -1 f ‘(x2) = 5.75 Paso 4: X3 = (x2 – f(x2)) / f ‘ (x2) x3 = (1.5 – (0.875 / 5.75)) x3 = 1.5 – 0.152173 x3 = 1.347827 Paso 5: Calcular el error: Ea = | (x3 – x2) / x3 | Ea = | (1.347827 – 1.5) / 1.347827 | Ea = 0.1129 Cuarta Iteración: Paso 3: Evaluar f(x) y f ‘(x) f(x) = x3-x-1 f ‘(x) = 3x2 -1 Ahora vamos a evaluar la aproximación inicial en ambas funciones f(x3) = (1.347827)3-1.347827-1 f(x3) = 0.100686 f ‘(x3) = 3(1.347827)2 -1 f ‘(x3) = 4.449912 Paso 4: X4 = (x3 – f(x3)) / f ‘ (x3) x4 = (1.347827 – (0.100686 / 4.449912)) x4 = 1.347827 – 0.022630 x4 = 1.325197 Paso 5: Calcular el error: Ea = | (x4 – x3) / x4 | Ea = | (1.325197– 1.347827) / 1.325197| Ea = 0.0170 Por lo tanto, al ser 0.0170 < 0.05 el proceso de iteración termina. ______________________________________________________________________________ Ahora voy a dejar el código del algoritmo que lo resuelve en Scilab y también dejare un link de descarga del archivo en formato .sce para correrlo en el programa Scilab. resp1 = 's' while resp1 == 's' clc clear fu = input('Ingrese la función a evaluar: ','s') deff('y=f(x)','y='+fu) printf('\nEste programa requiere que conozca el dominio de la función a evaluar razón por la\ncual debe usted ingresar los límites de la gráfica') a = input('Ingrese el límite inferior de gráfica: ') b = input('Ingrese el límite superior de gráfica: ') x = a:1:b clf() plot(x,f(x),xgrid(1)) resp2 = 's' while resp2 == 's' x0 = input ('Ingrese el valor inicial de x0: ') it = input ('Ingrese el número de iteraciones: ') n=1 while n<it de = numderivative(f,x0) xi = x0 - f(x0)/de n=n+1 x0 = xi end printf ('El valor de la raíz es de x = %6f',xi) resp2 = input('¿Desea evaluar otro punto? Ingrese S o N: ','s') end resp1= input('¿Desea ingresar otra función? Ingrese S o N:','s') end ________________________________________________________________________________ Dejo ahora unas capturas del programa en ejecución: Figura 3 En la figura se ingresa la función del ejemplo x3-x-1 Figura 4 Se ingresan los valores inferior y superior de la gráfica y se genera automáticamente Figura 5 Se ingresa el valor inicial, en este caso se asigno x=1 como lo indicaba el ejemplo y se ingreso el numero de iteraciones como 3. Esto nos arrojo un valor casi exacto al mismo que sacamos a mano en el ejemplo de este documento salvo por el último dígito después del punto, dado que trunque el resultado a 6 dígitos después del punto. Figura 6 Aquí únicamente accedí a evaluar nuevamente (volví a retomar x=1 como punto inicial) esta vez con 4 iteraciones para corroborar que el ejercicio hecho a mano estuviera bien, sin embargo, por la cantidad de decimales que tomé el resultado varía un poco. Figura 7 Finalmente el programa pregunta si se quiere ingresar un nuevo o valor o una nueva función. En este caso simplemente indique que no a ambas solicitudes y el programa terminó. BIBLIOGRAFIA Departamento de Matemáticas de la Universidad de Las Palmas de Gran Canaria. (s.f.). Métodos Numéricos 3: Raíces de ecuaciones: Métodos de Newton-Raphson y de la secante. Departamento de Matemáticas. https://estadistica-dma.ulpgc.es/FCC/05-3-Raices-de-Ecuaciones-2.html Portafolio de métodos numéricos. (2017, 8 de marzo). Comparativo. Métodos numéricos. https://metodosnumericos426.wordpress.com/2017/03/08/comparativo/