Skip to content

Instantly share code, notes, and snippets.

@l337quez
Created March 24, 2016 20:35
Show Gist options
  • Save l337quez/ca6499cac4baa3e15cfd to your computer and use it in GitHub Desktop.
Save l337quez/ca6499cac4baa3e15cfd to your computer and use it in GitHub Desktop.
Programa en matlab que muestra graficamente la solucion del metodo, como tambien por terminal
%Creado por Ronal Forero
%Programa del metodo de Newton Raphson
clc, clear %limpiamos pantalla, limpiamos workspace
fprintf('\n Nota:Ingrese el plinomio como un vector. \n')
fprintf('\n Ejemplo: x^3 + 4x^2 + 7x + 9 => [1 4 7 9] \n')
pol=input('\nIngrese el polinimoio:');
size=size(pol);
tamano=size(2);
for k=1:tamano
sym pol(k);
poli=pol();
k=k+1;
end
POL=poly2sym(poli);
syms x %declaramos a "x" como variable simbolica
f=inline(POL);
derivada= diff(POL,x);
df=inline(derivada);
tol=input('\n Ingrese la Tolerancia Permitida:');
x=input('\n Ingrese la Aproximacion Inicial:');
rango=input('\n Ingrese un numero que sera simetrico para el rango del eje x en la Gragica \n');
ni=0; %numero de iteraciones
error=input('\n Ingrese el Error Absoluto:');
%xi = aproximaciones a la raiz
clc %limpiamos pantalla
EJEx=-rango:rango;
%creamos una tabla
disp(' n xi error')
while (error>tol)
fprintf('\t%i\t%3.5f\t%f\ni',ni,x,error);
ni=ni+1;
x=x - f(x)/df(x);
error=abs(f(x));
%Graficando Raices
plot(x,'or')
title ('Metodo de Newton Raphson');
%INICIO procedimiento para graficar la tangente
%hallamos la primera derivada
derivada=diff(POL);
derivada1=sym2poly(derivada);
%pendiente
m=polyval(derivada1,x);
Y=polyval(pol,x);
EJEy=m*(EJEx - x) + Y;
%ploteamos
plot(EJEx,EJEy, 'm')
%FIN de Procedimiento para hallar la tangente
hold on %superponemos el grafico
%Graficando Raices
end
%Graficamos la funcion
y=polyval(pol,EJEx);
plot (EJEx,y)
grid on %activamos la malla en la grafica
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment