Está en la página 1de 2

Metodo punto fijo

Metodo Newton-Raphson

EDIT GUARDAR

% Funci�n del m�todo de Newton-Raphson para c�lculo de cruces por cero de una
% funci�n no lineal que se mueve en plano real.
%
% El m�todo calcula un cruce por cero.
%
% La funci�n se llama de la siguiente manera.
%
% [Cero,Mat]=Newton-Raphson(a)
%
% Entradas:
% a -- Punto inicial del m�todo.
%
% Salida:
% Cero -- Valor de la variable para la cual la magnitud de la funci�n es cero
% o menor a una tolerancia especificada previamente.
% Mat -- Vector que contiene todas las iteraciones hasta convergencia.
%
function[Cero,Mat] = NewtonRaphson(a);
Err = 1; % Inicializa el error para ingresar al ciclo iterativo.
tol = 1e-12; % Tolerancia especificada para la convergencia.
c = 0; % Inicializa el contador de iteraciones.
while Err > tol & c < 20
% Valor de la funci�n en el punto inicial.
fa = 1 + 2.*a - 3.*a.^2.*exp(-a) + 2.*a.^3.*sin(a).*exp(-a./5);
% Valor de la derivada de la funci�n en el punto inicial.
fpa = 2 - 6.*a.*exp(-a) + 3.*a.^2.*exp(-a) + 6.*a.^2.*sin(a).*exp(-a./5) + ...
2.*a.^3.*cos(a).*exp(-a./5) - (2/5).*a.^3.*sin(a).*exp(-a./5);
% C�lculo del nuevo valor de x dado por el m�todo de Newton-Raphson.
xn = a - fa/fpa;
% Valor de la funcion en el nuevo punto.
fxn = 1 + 2.*xn - 3.*xn.^2.*exp(-xn) + 2.*xn.^3.*sin(xn).*exp(-xn./5);
% Contador de iteraciones para no dejar en un ciclo el programa en caso de alguna
% inconsistencia.
c = c + 1;
% Matriz que almacena los resultados de cada iteraci�n.
Mat(c,:) = [a fa fpa];
% Asignaci�n de la aproximaci�n m�s nueva para seguir la iteraci�n.
a = xn;
% Criterio de error.
Err = abs(fxn);
end
% Cruce por cero que determina el m�todo de Newton-Raphson.
Cero = xn;

--------------------------------------------------------------
comando

>> f=inline('1 + 2.*a - 3.*a.^2.*exp(-a) + 2.*a.^3.*sin(a).*exp(-a./5)')

f =

Inline function:
f(a) = 1 + 2.*a - 3.*a.^2.*exp(-a) + 2.*a.^3.*sin(a).*exp(-a./5)
>> x= 0:0.01:10;
>> y= 1 + 2.*a - 3.*a.^2.*exp(-a) + 2.*a.^3.*sin(a).*exp(-a./5);
>> plot(x,y)
>> grid on
>> NewtonRaphson(3)

ans =

3.3138

>> [raiz tabla]=NewtonRaphson(3)

raiz =

3.3138

tabla =

3.0000 9.8380 -23.5454


3.4178 -4.3072 -43.7563
3.3194 -0.2178 -39.2793
3.3138 -0.0007 -39.0185
3.3138 -0.0000 -39.0176

>> fzero(f,3)

ans =

3.3138

También podría gustarte