Newton-Raphson.sce
// Solución de f(x)=0 por Newton-Raphson
disp("Método de Newton-Raphson para f(x)=0");
clear
// Aquí se define la función
function y=f(x)
y=
endfunction
// Aquí se define la derivada de la función
function yprima=fprima(x)
yprima=
endfunction
// Estas variables controlan la convergencia
// maxiter = número máximo de iteraciones
// tol = tolerancia en el error relativo
// converge = booleano que indica si ya convergió
maxiter=100;
tol=5e-6;
converge=%F;
disp("Proporcione el valor inicial:");
x=input("x0 = ");
iter=0;
while (iter<maxiter) & (~converge)
iter=iter+1;
// Calcular el nuevo valor de x
xn=x-f(x)/fprima(x);
// Checar criterio de convergencia (error relativo aproximado)
e=abs((x-xn)/xn);
if e<tol then
// Señalar que convergió y salir del ciclo
converge=%T;
end
// x para la siguiente iteración
x=xn;
end
if (converge) then
disp("La solución es x = " + string(xn))
disp("Error aproximado "+string(e*100)+"%")
disp(string(iter) + " iteraciones necesarias")
else
disp("No converge después de "+string(maxiter)+" iteraciones")
end