Professional Documents
Culture Documents
Cd. : 12140134
METODO DE BISECCION
function biseccion
fprintf('\n')
ff=input('INGRESE LA FUNCION f(x)=','s');
a=input('INGRESE LIMITE INFERIOR:');
b=input('INGRESE LIMITE SUPERIOR:');
tol=input('INGRESE EL ERROR:');
n=input('INGRESE NUMERO DE ITERACIONES:');
fprintf('\n');
fprintf('n
a
b
Pn
f(Pn)
Error \n');
disp('==================================================================');
i=1;e=1;r=0;
while e>tol & i<=n
r=a+b/2;
x=a;fa=eval(ff);
x=b;fb=eval(ff);
x=r;fr=eval(ff);
fprintf('%2d\t%11.8f\t%11.8f\t%11.8f\t%11.8f\t',i,a,b,r,fr);
if fa*fr<=0
b=r; e=abs((r-a)/r);
fprintf('%10.8f\n',e);
else
a=r; e=abs((r-b)/r);
fprintf('%10.8f\n',e);
end
i=i+1;
end
fprintf('\n');fprintf('la Raiz es:%10.8f\n',r);
METODO DE FALSA POSICION
function falsaposicion
global fun
fprintf('Mtodo de falsa posicion:\n');
fun=input('Ingrese la funcin:\n','s');
x0=input('Ingrese el punto inicial x0:\n');
x1=input('Ingrese el punto inicial x1:\n');
tol=input('Ingrese tolerancia:\n');
it=0;
fprintf(' it
x0
x1
x2
f(x2)');
while(it<50)
it=it+1;
x=x0;
f_0=eval(fun);
x=x1;
f_1=eval(fun);
x2=(x0*f_1-x1*f_0)/(f_1-f_0);
x=x2;
f_2=eval(fun);
fprintf('\n%3.0f%12.8f%12.8f%12.8f%12.8f\n',it,x0,x1,x2,abs(f_2));
if(abs(f_2)<tol)
fprintf('el proceso se completo satisfactoriamente:\n');
break
end
if(f_0*f_2)
x0=x0;
x1=x2;
else
x0=x2;
x1=x1;
end
end
fprintf('la raiz buscada es=%15.9f\n',x2);
ezplot(fun),grid on
line([-20,0;20,0],[0,-20;0,20],'color','r')
METODO PUNTO FIJO
function puntofijo
global fun1 fun
fprintf('Mtodo del punto fijo:\n');
fun=input('Ingrese la funcin y(x):\n','s');
fun1=input('Ingrese la funcin g(x):\n','s');
x0=input('Ingrese el punto inicial:\n');
tol=input('Ingrese tolerancia:\n');
it=0;
fprintf(' it
x0
x1
abs(x1-x0)');
while(it<50)
it=it+1;
x=x0;
x1=eval(fun1);
fprintf('\n%3.0f%13.9f%13.9f%13.9f\n',it,x0,x1,abs(x1-x0));
if(abs(x1-x0)<tol)
fprintf('el proceso se completo satisfactoriamente:\n');
break
end
x0=x1;
end
fprintf('la raiz buscada es=%15.9f\n',x1)
hold on
ezplot(fun1);
ezplot(fun),grid on,axis([-5 7 -5 10])
hold off
line([-20,0;20,0],[0,-20;0,20],'color','r')
METODO NEWTON-RAPSHON
function newtonrapshon
global fun dfun
fprintf('metodo de newton:\n');
fun=input('ingrese la funcion:\n','s');
x0=input('ingrese el punto inicial:\n');
tol=input('ingrese tolerancia:\n');
dfun=diff(fun);
it=0;
fprintf('it x0
x1
abs(x1-x0)');
while(it<50)
it=it+1;
x=x0;
x1=x0-(eval(fun)/eval(dfun));
fprintf('\n%3.0f%15.9f%15.9f%15.9f\n',it,x0,x1,abs(x1-x0));
if(abs(x1-x0)<tol)
fprintf('el proceso se completa satisfactoriamente:\n');
break
end
x0=x1
end
fprintf('LA RAIZ BUSCADA ES=%15.9f\n',x1);
ezplot(fun),grid on
line([-20,0;20,0],[0,-20;0,20],'color','r')
METODO SECANTE
function secante
global fun
D2,
fprintf('Mtodo de secante:\n');
fun=input('Ingrese la funcin:\n','s');
x0=input('Ingrese el punto inicial x0:\n');
x1=input('Ingrese el punto inicial x1:\n');
tol=input('Ingrese tolerancia:\n');
it=0;
fprintf(' it
x0
x1
x2
abs(x2-x1)');
while(it<50)
it=it+1;
x=x0;
f_0=eval(fun);
x=x1;
f_1=eval(fun);
x2=x1-f_1*(x0-x1)/(f_0-f_1);
fprintf('\n%3.0f%12.8f%12.8f%12.8f%12.8f\n',it,x0,x1,x2,abs(x0-x1));
if(abs(x1-x0)<tol)
fprintf('el proceso se completo satisfactoriamente:\n');
break
end
x0=x1;
x1=x2;
end
fprintf('la raiz buscada es=%15.9f\n',x2);
ezplot(fun),grid on
line([-20,0;20,0],[0,-20;0,20],'color','r')
Fin