Vous êtes sur la page 1sur 3

BISECCION

clear , clc
h=input('ingrese la funcion a analizar:');
f=inline(h);
a=input('ingrese el limite inferior del intervalo:');
b=input('ingrese el limite superior del intervalo:');
tol=input('indique 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\n')

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 un tolerancia de %f:\n\t%f\n',tol,c)

NEWTON RAPHSON

clc
clear all
format shortG;
syms x;
% yx=input('Introduzcal a funcion f(x)=');
yx=cos(0.4*x)-0.05*(x-10)^2+3*x+12;
dyx=diff(yx,x);
Fx=inline(yx);
dFx=inline(dyx);
disp(Fx)
disp(dFx)
xp=-5:5;
disp(' x f(x) ')
for n=1:length(xp)
fxp(n)=feval(Fx,xp(n));
fprintf('%6.2f %12.6f\n', xp(n),fxp(n))
end
Xi=input('Introduzca el valor inicial Xi = ');
%err=input('Ingrese el valor del error Es = ')
err = 0.0005;
Nc=100;
disp(' N Xi Xr F(Xi) F(Xr) err')
disp('|----|-------------|-------------|-------------|-------------|-------------|'
)
for n=1:Nc
Fxi=feval(Fx,Xi);
dFxi=feval(dFx,Xi);
Xr=Xi-Fxi/dFxi;
Fxr=feval(Fx,Xr);
Ea=abs((Xr-Xi)/Xr)*100;
fprintf('%3d %12.6f %12.6f %12.6f %12.6f %12.6f %12.6f\n',n,Xi, Xr, Fxi,
dFxi, Fxr, Ea);
if Ea < err
break
end
Xi=Xr;
end
fprintf('\nEl numero de iteraciones es N = %d\n',n)
fprintf('El valor de la solucion es es X = %12.8f\n',Xr)
fprintf('El valor de funcion es F(X)=%12.8f\n',Fxr)
fprintf('El valor del error es Ea =%12.8f\n',Ea)

PUNTO FIJO

clc
clear all
format shortG;
syms x;
% yx=input('Introduzcal a funcion f(x)=');
yx=cos(0.4*x)-0.05*(x-10)^2+3*x+12;
gx=(-cos(0.4*x)+0.05*(x-10)^2-12)/3;
Fx=inline(yx);
Gx=inline(gx);
disp(Fx)
disp(Gx)
xp=-5:5;
disp(' x f(x) ')
for n=1:length(xp)
fxp(n)=feval(Fx,xp(n));
fprintf('%6.2f %12.6f\n', xp(n),fxp(n))
end
Xi=input('Introduzca el valor inicial Xi = ');
%err=input('Ingrese el valor del error Es = ')
err = 0.0005;
Nc=100;
disp(' N Xi Xr F(Xi) F(Xr) err')
disp('|----|-------------|-------------|-------------|-------------|-------------|'
)
for n=1:Nc
Xr=feval(Gx,Xi);
Fxi=feval(Fx,Xi);
Fxr=feval(Fx,Xr);
Ea=abs((Xr-Xi)/Xr)*100;
fprintf('%3d %12.6f %12.6f %12.6f %12.6f %12.6f\n',n,Xi, Xr, Fxi, Fxr,
Ea);
if Ea < err
break
end
Xi=Xr;
end
fprintf('\nEl numero de iteraciones es N = %d\n',n)
fprintf('El valor de la solucion es es X = %12.8f\n',Xr)
fprintf('El valor de funcion es F(X)=%12.8f\n',Fxr)
fprintf('El valor del error es Ea =%12.8f\n',Ea)

FALSA POSICI�N

clear , clc

h=input('ingrese la funcion a analizar:');

f=str2func(strcat('@(x)',h));

a=input('ingrese el limite inferior del intervalo:');

b=input('ingrese el limite superior del intervalo:');


tol=input('indique la tolerancia deseada:');

rf=0;
c=0 ; n=1 ; MEP = (b-a)/2 ; ea=100;

fprintf('-------n--------a---------c---------b---------MEP------ea---
\n')

while ( ea > tol)


c = b-(f(b)*(a-b))/(f(a)-f(b));

ea=(abs(c-rf)/c)*100;
disp([n,a,c,b,MEP,ea])
if (f(a)*f(c)<0)
b=c;
else
a=c;
end
rf=c;
MEP = (b-a)/2;
n=n+1;
end

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

Vous aimerez peut-être aussi