Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Explicacic3b3n Del Programa Del Mc3a9todo Newton Raphson
Explicacic3b3n Del Programa Del Mc3a9todo Newton Raphson
4o Semestre
Febrero 8 de 2012
A continuaci on se presenta un programa en Matlab el cual resuelve polinomios mediante el m etodo de Newton Raphson.
1.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
% Calcula la ra z de una funci on por el m etodo newton-raphson clear disp(Ingresa una funci on derivable dependiente de "x",) f = input(la cual dese e analizar. f(x)= ,s); r = input(ahora ingresa la suposici on inicial de la ra z: ); df = diff(f,sym(x)); alto = 0; while alto == 0 disp(Selecciona 1 para seleccionar el criterio de error relativo) disp(entre aproximaciones o 2 para seleccionar por n umero) s = input(de iteraciones: ); switch s case 1 epsilon = input(Ingresa m aximo error relativo: ); alto = 1; case 2 maxit = input(Ingresa m aximo n umero de iteraciones: ); alto = 1; otherwise disp(Opci on no v alida, por favor selecciona 1 o 2) end end it = 1; alto = 0; while alto == 0 evf = subs(f,r); evdf = subs(df,r); if evdf == 0 disp(Derivada evaluada igual a cero en alguna iteraci on) return end r1 = r - (evf/evdf); err = abs((r1-r)/(r1)); if s == 1 if epsilon >= err alto = 1; end end if s == 2 if maxit <= it
41 42 43 44 45 46 47 48 49
2.
El n umero de l nea en el c odigo del script corresponde al n umero en cada paso de la explicaci on. 1. Comentarios sobre la funci on del programa. 2. Se limpian los valores de todas las variables. 3. Se despliega un mensaje solicitando que ingrese una funci on. 4. La funci on se guarda en la variable f. 5. Se solicita el punto inicial y se guarda en la variable r. 6. Se calcula la derivada de funci on con respecto de x. 7. Se inicializa en cero una variable alto la cual servir a como bandera para detener ciclos while. 8. Comienza le ciclo de iteraci on while el cual se encarga de solicitar al usuario un criterio para detener las iteraciones. 9. Se despliega la opci on del criterio por error relativo entre iteraciones 10. Se despliega la opci on del criterio por n umero de iteraci ones 11. La opci on elegida se guarda en la variable s. 12. Comienza el bloque switch el cual para cada opci on de criterio tiene un c odigo. 13. Si el usuario eligi o el criterio de error relativo se ejecutan las siguientes dos l neas. 14. Se solicita al usuario el error m aximo relativo y se guarda en la variable epsilon. 15. Al haber seleccionado ya un criterio, la bandera alto se coloca a uno para detener las iteraciones. 16. Si el usuario eligi o el criterio por n umero de iteraciones se ejecutan las siguientes dos l neas. 17. Se solicita al usuario el n umero de iteraciones m aximo y se guarda en la variable maxit. 18. Al haber seleccionado ya un criterio, la bandera alto se coloca a uno para detener las iteraciones.
19. Si no se seleccion o ninguna de las opciones v alidas, se ejecuta la siguiente l nea. 20. Se despliega el mensaje diciendo que no se seleccion o ninguna opci on v alida y por lo tanto necesita seleccionar otra vez. 21. Se termina el bloque switch. 22. Se termina el bloque while que solicita el criterio de detenimiento de iteraciones. 23. Se inicializa la variable it en uno ya que esta guardar a el n umero de iteraciones y comenzaremos en la primera iteraci on. 24. Se iguala a cero la variable alto para ser reutilizada. 25. Se inicia el ciclo while que contiene el c odigo del m etodo de Newton Raphson y el despliegue de resultados. 26. Se evalua la funci on en r y se guarda en evf. 27. Se evalua la derivada de la funci on en r y se guarda en evdf. 28. Inicia bloque if el cual se ejecutar a si la evaluaci on en la diferecial es cero. 29. Se despliega la situaci on. Esto se hace as ya que posteriormente este valor tomar a la posici on de denominador, lo que nos impide que sea cero. 30. El programa termina en caso de que lo anterior suceda. 31. Termina el bloque if de la evaluaci on de la derivada igual a cero. 32. Se calcula la aproximaci on que sigue con la f ormula conocida del m etodo Newton Raphson evf r1 = r evdf 33. Se calcula el error relativo entre dos iteraciones, la actual y la pasada, y se guarda en la variable err. 34. Si el criterio para detener las iteraciones fu e por error relativo, este bloque if se ejecutar a. 35. Se compara si el error relativo actual (err) ya es menor que el requerido (epsilon). 36. Si la l nea anterior es cierta entonces se ejecuta esta en la cual la bandera alto se pone en uno, lo que ya no permitir a m as iteraciones. 37. Termina el bloque if en el que se comparan los errores. 38. Termina el bloque if el cual se ejecuta cuando el criterio es el error relativo.
39. Si el criterio para detener las iteraciones fu e por n umero de iteraciones, este bloque if se ejecutar a. 40. Se compara si el n umero de iteraciones actual (it) es igual o mayor que las requeridas (maxit). 41. Si la l nea anterior es cierta entonces se ejecuta esta en la cual la bandera alto se pone en uno, lo que ya no permitir a m as iteraciones. 42. Termina el bloque if en el que se comparan el n umero de iteraciones. 43. Termina el bloque if el cual se ejecuta cuando el criterio es por n umero de iteraciones. 44. Se despliega el n umero de la iteraci on. 45. Se despliega el valor de la aproximaci on actual. 46. Se despliega el error relativo entre la aproximaci on actual y la anterior. 47. El valor de la aproximaci on acual r1 se guarda ahora como punto inicial para la siguiente iteraci on. 48. La variable que indica las iteraciones se aumenta en uno. 49. Termina el programa al t ermino del ciclo while.
3.
Como ejemplo de la ejecuci on del programa en la ventana de comandos se realizar an los c alculos para encontrar las ra ces de la ecuaci on f (x) = 0,874x2 + 1,75x + 2,627 (1)
las cuales ser an dos a lo m as. Primeramente gracamos la funci on para calcular por el m etodo gr aco un rango aproximado en el cual se encuentran la o las ra ces. En la Figura 1 se muestra la gr aca.
Figura 1: Gr aca de y = 0,874x2 + 1,75x + 2,627. Se puede observar como la primera ra z queda entre x1 = 2 y xu = 0, y una segunda ra z entre x1 = 2 y xu = 4. Aplicando el m etodo Newton Raphson con x0 = 0 esperando encontrar una ra z con un error relativo entre aproximaciones 1 %, a continuaci on se enumeran las iteraciones.
A continuaci on se muestra el ingreso de la funci on, el punto inicial y el criterio para parar de iterar en el programa. Posteriormente se despliegan los resultados.
Referencias
[1] An Introduction to Numerical Analysis for Electrical and Computer Engineers, Chistopher J. Zarowski, Editorial Wiley, ISBN 0-471-46737-5. [2] http://www.mathworks.com/help (Sitio de ayuda ocial de Matlab) [3] Numerical Methods for Mathematics, Science and Engineering, 2nd Ed, 1992