Beruflich Dokumente
Kultur Dokumente
%biseccion
%fun_ex5=funcion de prueba
%Resultados:
%raiz=solucion
format long
error=0.001;
k=1;
m(1)=(a+b)/2;
k,a,b,m(1));
fxb=feval(fun_ex2,b);
fxm=feval(fun_ex2,m(1));
elseif fxa*fxm<0
b=m(1);
fxb=fxm;
elseif fxa*fxm>0
a=m(1);
fxa=fxm;
end
for k=2:imax
m(k)=(a+b)/2;
fxa=feval(fun_ex2,a);
fxb=feval(fun_ex2,b);
fxm(k)=feval(fun_ex2,m(k));
k,a,b,m(k),dif(k));
if fxa*fxm(k)<=0
b=m(k);
fxb=fxm(k);
else
a=m(k);
fxa=fxm(k);
end
if dif(k)<error, break
else
end
end
y=(x./(1-x)).*sqrt((6./(x+2)))-0.05;
falsa posicin
function raiz=regulafalsi(fun_ex2,a,b,imax)
%regula falsi
%fun_ex2=funcion de prueba
%Resultados:
%raiz=solucion
% regulafalsi('fun_ex2',-1,0,50)
error=0.001;
k=1;
fxa=feval(fun_ex2,a);
fxb=feval(fun_ex2,b);
%dif(1)=0;
fprintf('%5d%10.5f%10.5f%10.5f\n',...
k,a,b,w(1));
fxw=feval(fun_ex2,w(1));
if fxa*fxb>0
elseif fxa*fxw<0
b=w(1);
fxb=fxw;
elseif fxa*fxw>0
a=w(1);
fxa=fxw;
end
for k=2:imax
w(k)=(fxb*a-fxa*b)/(fxb-fxa);
dif(k)=abs(w(k)-w(k-1))/abs(w(k));
fxa=feval(fun_ex2,a);
fxb=feval(fun_ex2,b);
fxw(k)=feval(fun_ex2,w(k));
ab(k)=abs(fxw(k));
fprintf('%5d%10.5f%10.5f%10.5f%10.5f%10.5f\n',...
k,a,b,w(k),dif(k),ab(k));
if fxa*fxw(k)<=0
b=w(k);
fxb=fxw(k);
else
a=w(k);
fxa=fxw(k);
end
if dif(k)<error, break
else
end
end
raiz=w(k);