# X0 : Punto inicial # f(x) : La función evaluada en el punto x # g(x) : La derivada evaluada en el punto x # n : La iteración actual # It : Máximo numero de Iteraciones #La tabla tiene las siguientes columnas #iteración - x - f(x) - f'(x) - f(x)/f'(x) # El Método hace que # m = f'(x[n+]) # X[n+1] = X[n] - f(X[n])/m #función de la que se hallará la raíz f = function(x) { 3*x^3-4*x^2+5*x-6 } #función primera derivada de f(x) g = function(x) { 9*x^2-8*x+5 } newton = function(X0=2,It=100) { x = X0 #Asignamos en x el valor inicial n = 0 #comenzamos por la iteración 0 tabla=matrix(c(n,x,f(x),g(x),f(x)/g(x)),nrow=1) #La primera fila de la tabla while(abs(f(x))>10^-4 && n<=It) { #Condición para parar o seguir n = n + 1 #Pasamos a la siguiente iteración x = x - f(x)/g(x) #utilizamos la fórmula del método tabla=rbind(tabla,c(n,x,f(x),g(x),f(x)/g(x))) #agregamos la nueva fila a la tabla }#while tabla=as.data.frame(tabla) #para poder dar formato a la tabla names(tabla)=c("iteración","x","f(x)","f'(x)","f(x)/f'(x)") #Nombres de las columnas tabla #retornamos o mostramos la tabla } newton(4) #probamos la función