The::Beastieux

Sangre de Bestia + Corazón de Pingüino | Un blog acerca de Linux, *BSD, Open Source, Software Libre, Programación …

Archivos por Etiqueta: Método Secante

Código Scilab – Método de la Secante



function y=f(x)
y=exp(-x^2)-x;
endfunction

function x = secante(x0,x1,tol)
j=2;
i=1;
x(1)=x0;
x(2)=x1;
ea(i)=100;
while abs(ea(i))>=tol
   x(j+1)=(x(j-1)*f(x(j))-x(j)*f(x(j-1)))/(f(x(j))-f(x(j-1)));
   ea(i+1)=abs((x(j+1)-x(j))/x(j+1))*100;
   j=j+1;
   i=i+1;     
end

printf(' i \t\t x(i) \t Error aprox (i) \n');
printf('%2d \t %11.7f \t \n',0,x(1));

for k=2:j;
    printf('%2d \t %11.7f \t %7.3f \n',k-1,x(k),ea(k-1));
end

endfunction

Código Matlab – Método de la Secante


fx(1)=input('Ingrese el intervalo inferior: ');
fx(2)=input('Ingrese el intervalo superior: ');
tol=input('Ingrese el porcentaje de error: ');
syms x;
f=input('Ingrese la funciòn: ');

f1=subs(f,x,fx(1));
f2=subs(f,x,fx(2));

ea(1)=100;

i=1;
j=2;

while abs(ea(i))>=tol
   xf(j+1)=(xf(j-1)*f2-xf(j)*f1)/(f2-f1);  f1=f2; f2=subs(f,x,xf(j+1));
   ea(i+1)=(xf(j+1)-xf(j))/xf(j+1)*100;
   j=j+1;
   i=i+1;     
end

fprintf(' i     xf(i)         Error aprox (i) \n');
%fprintf('%2d\t%11.7f\t\n',0,x(1));
for k=2:j;
    fprintf('%2d\t%11.7f\t%7.3f\n',k-1,xf(k),ea(k-1));
end
A %d blogueros les gusta esto: