Tarea De Scilab By Sebastian Vasquez

11
1 Metodo de Biseccion function y=f(x) y=-12.4+10*(0.5*%pi-asin(x/1)-x*(1-x**2)**0.5); endfunction function xr=biseccion(xai,xbi,tol) i=1; ea(1)=100; if f(xai)*f(xbi) < 0 xa(1)=xai; xb(1)=xbi; xr(1)=(xa(1)+xb(1))/2; printf('It.\t\t Xa\t\t Xb\t\t Xr\t\t f(Xr)\t Error \n'); printf('%2d \t %11.7f \t %11.7f \t %11.7f \t %11.7f \ n',i,xa(i),xb(i),xr(i),f(xr(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);

Transcript of Tarea De Scilab By Sebastian Vasquez

Page 1: Tarea De Scilab By Sebastian Vasquez

1 Metodo de Biseccion

function y=f(x)

y=-12.4+10*(0.5*%pi-asin(x/1)-x*(1-x**2)**0.5);

endfunction

function xr=biseccion(xai,xbi,tol)

i=1;

ea(1)=100;

if f(xai)*f(xbi) < 0

xa(1)=xai;

xb(1)=xbi;

xr(1)=(xa(1)+xb(1))/2;

printf('It.\t\t Xa\t\t Xb\t\t Xr\t\t f(Xr)\t Error \n');

printf('%2d \t %11.7f \t %11.7f \t %11.7f \t %11.7f \n',i,xa(i),xb(i),xr(i),f(xr(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;

Page 2: Tarea De Scilab By Sebastian Vasquez

ea(i+1)=abs((xr(i+1)-xr(i))/(xr(i+1)));

printf('%2d \t %11.7f \t %11.7f \t %11.7f \t %11.7f \t %7.6f \n',i+1,xa(i+1),xb(i+1),xr(i+1),f(xr(i+1)),ea(i+1));

i=i+1;

end

else

printf('No existe una raíz en ese intervalo');

end

endfunction

2 Metodo de Newton-Raphson

function y=f(x)

y=2*x**3+x-1;

Page 3: Tarea De Scilab By Sebastian Vasquez

endfunction

function y=df(x)

y=6*x**2+1;

endfunction

function x=newtonraphson(x0,tol);

i=1;

ea(1)=100;

x(1)=x0;

while abs(ea(i))>=tol;

x(i+1)=x(i)-f(x(i))/df(x(i));

ea(i+1)=abs((x(i+1)-x(i))/x(i+1));

i=i+1;

end

printf(' i \t X(i) Error aprox (i) \n');

for j=1:i;

printf('%2d \t %11.7f \t %7.6f \n',j-1,x(j),ea(j));

end

endfunction

Page 4: Tarea De Scilab By Sebastian Vasquez

4 a Newton

function y=f(x)

y=4*cos(x)-exp(x);

endfunction

function y=df(x)

y=-4*sin(x)-exp(x);

endfunction

function x=newtonraphson(x0,tol);

i=1;

ea(1)=100;

Page 5: Tarea De Scilab By Sebastian Vasquez

x(1)=x0;

while abs(ea(i))>=tol;

x(i+1)=x(i)-f(x(i))/df(x(i));

ea(i+1)=abs((x(i+1)-x(i))/x(i+1));

i=i+1;

end

printf(' i \t X(i) Error aprox (i) \n');

for j=1:i;

printf('%2d \t %11.7f \t %7.6f \n',j-1,x(j),ea(j));

end

endfunction

Page 6: Tarea De Scilab By Sebastian Vasquez

4 b Secante

function y=f(x)

y=4*cos(x)-exp(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));

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

Page 7: Tarea De Scilab By Sebastian Vasquez

endfunction

5 a Secante

function y=f(x)

y=x**2-6;

endfunction

function x = secante(x0,x1,tol)

j=2;

i=1;

x(1)=x0;

x(2)=x1;

Page 8: Tarea De Scilab By Sebastian Vasquez

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));

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

Page 9: Tarea De Scilab By Sebastian Vasquez

5 b Falsa posicion

function y=f(x)

y=x**2-6;

endfunction

function xr=reglafalsa(xai,xbi,tol)

i=1;

ea(1)=100;

if f(xai)*f(xbi) < 0

xa(1)=xai;

xb(1)=xbi;

Page 10: Tarea De Scilab By Sebastian Vasquez

xr(1)=xa(1)-f(xa(1))*(xb(1)-xa(1))/(f(xb(1))-f(xa(1)));

printf('It. Xa Xb Xr f(Xr) Error aprox \%\n');

printf('%2d \t %11.7f \t %11.7f \t %11.7f\t %11.7f \n',i,xa(i),xb(i),xr(i),f(xr(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(1)=xr(i);

xb(1)=xb(i);

end

xr(i+1)=xa(i+1)-f(xa(i+1))*(xb(i+1)-xa(i+1))/(f(xb(i+1))-f(xa(i+1)));

ea(i+1)=abs((xr(i+1)-xr(i))/(xr(i+1)));

printf('%2d \t %11.7f \t %11.7f \t %11.7f \t %11.7f\t %7.3f \n', i+1,xa(i+1),xb(i+1),xr(i+1),f(xr(i+1)),ea(i+1));

i=i+1;

end

else

printf('No existe una raíz en ese intervalo');

end

endfunction

Page 11: Tarea De Scilab By Sebastian Vasquez