You are on page 1of 3

MATLAB

La siguiente función permite aplicar el método de Newton utilizando el programa


MATLAB.
%--------------Iteración de Newton-
Raphson---------------------
%Aproximación a una raíz de f(x)=0 a partir de un valor
inicial
%p0 mediante el método de Newton-Raphson.
function p=newton(f,df,p0,delta,max1)
%
%Datos:
%    1) f es la función introducida como cadena de
caracteres 'f'.
%    2) df es la derivada de f introducida como una
cadena 'df'.
%    3) p0 es la aproximación inicial al cero de f(x)=0.
%    4) delta es la tolerancia para la aproximacion.
%    5) max1 es el número máximo de iteraciones.
%Resultados:
%    1) p es la aproximación obtenida.
%    2) err es la diferencia, en valor absoluto, entre
iteraciones
%       consecutivas.
%    3) y es f(p).
p(1)=p0;
y(1)=feval(f,p(1));
k=1;
relerr=1;
while((k<=max1) & (relerr>delta))
   p(k+1)=p(k)-feval(f,p(k))./feval(df,p(k));
   err(k)=abs(p(k+1)-p(k));
   i(k)=k;
   relerr=err(k)/(abs(p(k+1))+eps);
   y(k+1)=feval(f,p(k+1));
   k=k+1;
end
disp('Las aproximaciones obtenidas y el valor de la
funcion en ellas son:')
[p',y']
plot(i,err),title('Error absoluto entre iteraciones
consecutivas'),grid on
 
Archivos utilizados para aplicar el método de Newton al problema de la esfera:
 
Definición de la función
 
% ******* esfera.m ********
% Definicion de la funcion del
% problema de la esfera.
function y=esfera(x)
y=x.^3-30*x.^2+2400;
 
Definición de la derivada
 
% ******* esfera.m ********
% Definicion de la derivada de la
% funcion del problema de la
esfera.
function y=desfera(x)
y=3*x.^2-60*x;
 
Fichero de comandos
 
% ********* esfera_newton
********
% Aplicacion del metodo de
Newton al
% problema de la esfera.

% Datos iniciales
p0=14;
% Tolerancia
delta=0.01;
% Numero maximo de iteraciones
max1=10;
% Metodo de Newton
newton('esfera','desfera',p0,delta,m
ax1)
 
 
Resultado obtenido
Las aproximaciones obtenidas y el valor de la funcion en ellas son:

ans =

14.0000 -736.0000
11.0794 77.4480
11.3406 0.2387
11.3414 0.0000

Codigo en MatLab
Programa escrito en Matlab para hallar las raíces usando el método de NEWTON-
RAPHSON

disp ('NEWTON-RAPHSON')
xo=input('Valor inicial =');
n=input ('numero de iteraciones=');
salida=ones(n,4); % matiz de salida de datos
for i=1:n
x1=xo-[(exp(-xo)-xo)]/[(-exp(-xo)-1)];
vsal=[xo;x1];
er=[[abs((xo-x1)/xo)]]*100; % error relativo porcentual
ea=[[abs((x1-xo)/x1)]]*100; % error
xo=x1;

salida(i,1)=i;
salida(i,2)=x1;
salida(i,3)=er;
salida(i,4)=ea;
end
disp('ite raiz er ea');
disp(num2str(salida));

You might also like