You are on page 1of 7

ANALISIS NUMERICO I

Alumna: Andrea Campos López

Resolución de ecuaciones no lineales

Métodos para la localización de raíces.

A continuación se presentará los métodos utilizando el programa MATLAB:

1- METODO DE LA BISECCION

METODODELABISECCION.m

%Metodo de la Biseccion
clear,clc
h=input ('Ingrese funcion a analizar');
f=inline(h);
a=input('Ingrese limite inferior del intervalo: ');
b=input('Ingrese limite superior del intervalo: ');
tol=input('Ingrese la tolerancia deseada': );

c=0;n=0;MEP=(b-a)/2;
fprintf('\t n\t\ta \t\t c\t\t b \t\t MEP\t')

while (MEP>tol)
c=(a+b)/2;
disp([n,a,c,b,MEP])
if(f(a)*f(c)<0)
b=c;
else a=c;
end
MEP=(b-a)/2;
n=n+1;
end

fprintf('Raiz encontrada con una tolerancia de %f:\n\t%f\n',tol,c)


Ejecución de programa en MATLAB:

Ejemplo:
𝑓(𝑥) = cos(𝑥) + 1 − 𝑥
2. METODO DE NEWTON RAPHSON

METODODENEWTONRAPHSON.m

%Metodo de Newton Raphson


clear,clc
cf=input('Ingrese funcion a evaluar');
syms x
f=inline(cf);
derivada=diff(cf,x);
df=inline(derivada);
tol=input('Ingrese tolerancia:');
error=50;
x=input('Ingrese un valor inicial:');
n=0;
disp(' n x1 error')
while (error>tol)
fprintf('\t%i\t%3.5f\t%f\n' , n , x ,error)
n=n+1;
x=x-f(x)/df(x);
error=abs(f(x));
end

Ejecución del programa en MATLAB:


Ejemplo:

𝑓(𝑥) = 𝑥 3 + 2𝑥 2 + 10𝑥 − 20

3. METODO DEL PUNTO FIJO

METODODELPUNTOFIJO.m

%Metodo del punto fijo


clear,clc
cf=input('Ingrese funcion f:');
cg=input('Ingrese funcion g:');
f=inline(cf);
g=inline(cg);
syms x
dg=diff(cg,x);
x=input('Ingrese primer valor ');

if (abs(eval(dg))<1)
tol=input('Ingrese tolerancia:');
disp('n x0 error')
fprintf(' 0.0000 %7.4f ----\n',x)
n=0;error=100;
while(error>tol)
n=n+1;
anterior=x;
x=g(x);
error=abs(x-anterior);
disp([n,x,error])
end
else
disp('Ingrese otra funcion g(x),pues con la actual el metodo
diverge' );
end

Ejecución del programa en MATLAB:

Ejemplo

𝑓(𝑥) = cos(𝑥) − 3𝑥 , g(x)=cos(x)/3


4. METODO DE LA SECANTE

METODODELASECANTE.m
%Metodo de la secante
clear,clc
cf=input('Ingrese funcion: ');
f=inline(cf);
x0=input('Ingrese primer valor: ');
x1=input('Ingrese segundo valor: ');
tol=input('Ingrese tolerancia: ');
error=100;
n=0;
fprintf(' n x0 x1 x2 error\n');
fprintf(' %i %4.4f %4.4f----- -----\n ',n,x0,x1);
while(error>tol)
n=n+1;
x2= x1 - (x1-x0)*f(x1)/(f(x1)-f(x0));
error=abs( f(x2));
fprintf('%i %4.4f %4.4f %4.4f %4.4f\n
',n,x0,x1,x2,error);
x0=x1;
x1=x2;

end

Ejecución del programa en MATLAB:


Ejemplo:

𝑓(𝑥) = 𝑥 3 + 2𝑥 2 + 10𝑥 − 20