Metdos De Analisis Numericos En Matlab
Enviado por jhainer1993 • 28 de Noviembre de 2013 • 375 Palabras (2 Páginas) • 572 Visitas
Metodo de bissecion
disp(' METODO DE LA BISECCION ');
disp(' ---------------------- ');
f=input('INGRESE FUNCION: ','s');
xai=input('INGRESE LIMITE INFERIOR DEL INTERVALO: ');
xbi=input('INGRESE LIMITE SUPERIOR DEL INTERVALO: ');
tol=input('INGRESE PORCENTAJE DE ERROR: ');
f=inline(f);
i=1;
ea(1)=100;
if f(xai)*f(xbi) < 0
xa(1)=xai;
xb(1)=xbi;
xr(1)=(xa(1)+xb(1))/2;
fprintf('It. Xa Xr Xb Error aprox \n');
fprintf('%2d \t %11.7f \t %11.7f \t %11.7f \n',i,xa(i),xr(i),xb(i));
while abs(ea(i)) >= tol,
if f(xa(i))*f(xr(i))< 0
xa(i+1)=xa(i);
xb(i+1)=xr(i);
end
if f(xa(i))*f(xr(i))> 0
xa(i+1)=xr(i);
xb(i+1)=xb(i);
end
xr(i+1)=(xa(i+1)+xb(i+1))/2;
ea(i+1)=abs((xr(i+1)-xr(i))/(xr(i+1))*100);
fprintf('%2d \t %11.7f \t %11.7f \t %11.7f \t %7.3f \n',...
i+1,xa(i+1),xr(i+1),xb(i+1),ea(i+1));
i=i+1;
end
else
fprintf('No existe una raíz en ese intervalo');
end
function x = biseccion(fun,a,b,tol)
% Aproxima por el método de la bisección una raíz de la ecuación fun(x)=0
disp('Método de la bisección');
u=feval(fun,a);
v=feval(fun,b);
n=1;
if sign(u)==sign(v)
disp('Error la función debe cambiar de signo en (a,b)');
end
while ((b-a)*0.5>=tol)
c=(b+a)/2; w=feval(fun,c);
disp(['n=', num2str(n)]);
disp(['c=', num2str(c)]);
disp(['f(c)=', num2str(w)]);
if sign(u)==sign(w)
a = c; u=w;
else
b=c; v=w;
end
n=n+1;
end;
x=c;
metodo newton rahpson matlab
% Al escribir la función, usar x como variable.
x0=input('Ingrese el valor inicial: ');
tol=input('Ingrese el porcentaje de error: ');
f=input('Ingrese la función: ');
i=1;
fx(i)=x0;
syms x;
f1=subs(f,x,fx(i));
z=diff(f);
d=subs(z,x,fx(i));
ea(1)=100;
while abs(ea(i))>=tol;
fx(i+1)=fx(i)-f1/d; f1=subs(f,x,fx(i+1)); d=subs(z,x,fx(i+1));
ea(i+1)=abs((fx(i+1)-fx(i))/fx(i+1)*100);
i=i+1;
end
fprintf('i fx(i) Error aprox (i) \n');
for j=1:i;
fprintf('%2d \t %11.7f
...