Está en la página 1de 2

UNIVERSIDAD NACIONAL DE COLOMBIA

FACULTAD DE INGENIERA
MTODOS NUMRICOS
Un procedimiento (de los varios que existen) para ejecutar un programa en
SCILAB
1) Escoja la funcin a investigar, codifquela, grbela en un archivo .sci usando el
editor del SCILAB
2) Seleccione y programe el mtodo numrico como una funcin y grbela en un
archivo .sci usando el editor del SCILAB
3) Escriba el programa en SCILAB donde defina los valores de los parmetros que
necesita el mtodo numrico definido en 2). Grabe este ltimo como un archivo
.sce
4) Ejecute el programa definido en 3), cargando primero desde el editor las funciones
dadas en 1) y 2) y luego cargue el programa definido en 3). En la consola de
comandos aparecer los resultados del programa.
Ejemplo: Encontrar la raz de la ecuacin f(x)=x3 + 4x2 -10 = 0, usando el mtodo de la
falsa posicin, tomando como intervalo de bsqueda [a, b] = [1.3, 2.7]
Pasos:
1)
Funcin a investigar: f(x)=x3 + 4x2 -10 = 0.
Codificacin SCILAB:
// f(x)=x^3 + 4*x^2 10 = 0
function z=fun1(x)
z=x.^3 + 4*x.^2 - 10;
endfunction
Nombre del archivo:
2)

fun1.sci

Mtodo numrico (falsa posicin) codificado:


function [c,err,yc]=falsa1(a,b,delta,max1)
// Input - f is the function
//
- a and b are the left and right endpoints
//
- delta is the tolerance for the zero
//
- max1 is the maximum number of iterations
//
Output - c is the zero
//
- yc=f(c)
//
- err is the error estimate for c
// ya=f(a);
// yb=f(b);
ya=fun1(a);
yb=fun1(b);
if ya*yb>0
disp('Nota: f(a)*f(b) >0'),
return,
end
for k=1:max1

dx=yb*(b-a)/(yb-ya);
c=b-dx;
ac=c-a;
yc=fun1(c);
if yc==0,break;
elseif yb*yc>0
b=c;
yb=yc;
else
a=c;
ya=yc;
end
dx=min(abs(dx),ac);
if abs(dx)<delta,break,end
end
c;
err=abs(b-a)/2;
yc=fun1(c);
endfunction
Nombre del archivo:

falsa1.sci

3) Programa que encuentra la solucin usando la funcin a investigar con el mtodo


seleccionado:
clc;
a=1.3;
b=2.7;
ya=fun1(1.3);
yb=fun1(2.7);
if ya*yb>0
disp('Revise intervalo. No hay cambio de signo: f(a)*f(b) >0'),
return,
end
disp('Rango adecuado')
delta=0.0005;
max1=10;
[c,err,yc]=falsa1(a,b,delta,max1)
Nombre del programa:

Prog01.sce

4) Desde el editor de SCILAB cargue en SCILAB los archivos: fun1, falsa1 y desde la
ventana de comandos ejecute Prog01, observe los resultados en la consola de
comandos del SCILAB

También podría gustarte