Вы находитесь на странице: 1из 5

METODO DE BISECCION

clc
format long;
syms x;

%% funcion a evaluar
f=x^3-12.2;

b=3;

%% graficar
x=linspace(a,b,100);
y=subs(f,x);
plot(x,y,'color','green');
xlabel('x')
ylabel('y')
grid on;

hold on
y=zeros(length(y));
plot(x,y,'color','red');

%% intervalo de la raiz
x1=input('introduce el valor de x1: ');
x2=input('introduce el valor de x2: ');
error_minimo=input('error minimo %: ');

%% variables generales
error=100;
iteracion=0;
xr_actual=0;
xr_anterior=0;

disp ('Iteracion

Xr

Error')

while(error>error_minimo)
iteracion=iteracion+1;
xr_anterior=xr_actual;
%% calcular Xr
xr_actual=(x1+x2)/2;

%% calcular el error apartir de la segunda iteracion


if(iteracion>1)
error=abs((xr_actual-xr_anterior)/xr_actual)*100;
end

%% condiciones del metodo de biseccion


evaluacion=subs(f,x1)*subs(f,xr_actual);
if(evaluacion>0)
x1=xr_actual;
elseif(evaluacion<0)
x2=xr_actual;
else
error=0;
end

fprintf('%f

%f

%f \n',iteracion,xr_actual,error)

end

METODO DE NEWTON-RAPHSON
clc
clear all
format long;
syms x;

%% funcion a evaluar
f=@(x)x^3-5*x^2+7*x-3;
aux=diff(f(x));
df=matlabFunction(aux);

%% intervalo de la raiz
x0=input('introduce el valor de x0: ');
error_minimo=input('error minimo %: ');

%% variables generales
error=100;
i=0;
xn=x0;
xn1=0;

disp (' i

Xi

Xi+1

Error')

while(error>error_minimo)
i=i+1;
%% calcular Xr
xn1=xn-(f(xn)/df(xn));
%% calcular el error apartir de la segunda iteracion
if(i>1)
error=abs((xn1-xn)/xn1)*100;
end
fprintf('%2.0f

%f

%f

xn=xn1;
end

METODO DE LA SECANTE
clc
clear all
format long;
syms x;

%% funcion a evaluar
f=@(x)cos(4*x-1)+0.5;

%% intervalo de la raiz

%f\n',i-1,xn,xn1,error)

x0=input('introduce el valor de x0: ');


x1=input('introduce el valor de x1: ');
error_minimo=input('error minimo %: ');

%% variables generales
error=100;
i=0;
xi=x1;
xi_1=0;

disp (' i

Xi-1

Xi

while(error>error_minimo)

Xi+1

Error')

clc
clear all
format long;
syms x;

i=i+1;

%% funcion a evaluar
f=@(x)x^3-5*x^2+7*x-3;
aux=diff(f(x));
xi1=xi-(((xi-xi_1)*f(xi))/(f(xi)-f(xi_1)));
df=matlabFunction(aux);

%% calcular Xi

fprintf(\n metodo de Newton Rapson

%% calcular el error apartir de la segunda iteracion


Modificado\n\n);

%% intervalo de la raiz
x0=input('introduce el valor de x0: ');
,s);
error_minimo=input('error minimo %: ');
error=abs((xi1-xi)/xi1)*100;
dfuncion=input(Dame
la derivada de
%% variables generales
funcion f(x) : ,s);
end
error=100;
d2funcion=input(Dame la segunda
i=0;
fprintf('%2.0f
%f
%f
%f xn=x0;
%f\n',i-1,xi_1,xi,xi1,error)
derivada
de funcion f(x) : ,s);
xn1=0;
xi=input(Dame el valor inicial de x : );
xi_1=xi;
funcion=input(Dame la funcion f(x) :

if(i>1)

e=input(Dame el porciento del error :


); xi=xi1;
ea=1000;

end

c=1;

x=xi;
while ea>e
g=eval(funcion);
h=eval(dfuncion);
k=eval(d2funcion);
j=x-(g*h)/(h^(2)-(g*k));
ea=abs((j-x)/j*100);
x=j;
c=c+1;
end
fprintf(\n\n\n\nLa raiz exacta es: %d,j)

disp (' i

Xi

Xi+1

Error')

while(error>error_minimo)
i=i+1;
%% calcular Xr
xn1=xn-(f(xn)/df(xn));
%% calcular el error apartir de la
segunda iteracion
if(i>1)
error=abs((xn1-xn)/xn1)*100;
end
fprintf('%2.0f
%f
%f
%f\n',i1,xn,xn1,error)
xn=xn1;
end

Вам также может понравиться