Está en la página 1de 6

UNIVERSIDAD DE EL SALVADOR

FACULTAD DE INGENIERIA Y ARQUITECTURA


ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
CTEDRA DE ANLISIS NUMRICO (ANS-115).

GUA DE LABORATORIO N: 4.
TEMAS A CUBRIR:
1. Ambientacin de Scilab.
2. Uso de medidas de control de ejecucin (Profiling).
3. Mtodos de Solucin de Ecuaciones No Lineales.
4. Ejercicios Propuestos.
El objetivo de este laboratorio es adecuar Scilab a nuestras necesidades, al igual que usar
herramientas de Scilab para controlar la ejecucin de los scripts, y aplicar los mtodos de solucin
de ecuaciones no lineales vistos en clase: newton, secante, biseccin, regula falsi, punto fijo, los
modificados de ellos y los mtodos de aceleracin de convergencia lineal de Aitken y Stephensen.
Al iniciar, la sesin de trabajo en Scilab, lo primero que debemos hacer es definir un directorio de
trabajo, el cual podr estar destinado en el Escritorio de Windows o en su USB. Para esta gua
debe establecer dicho directorio de trabajo con el nombre: LAB4. En seguida debe activar el diario
con el nombre labo4 y agrguele la fecha y la hora de su activacin como parte del formato de
creacin.
1.

Ambientacin de Scilab.
Lo primero ser integrar en una sola ventana tanto LA CONSOLA como EL SCINOTES, el
editor de Scilab, y El EXPLORADOR DE ARCHIVOS que funciona como un Navegador de
Archivos, en el caso que no lo haya hecho antes.

Tal y como aparece en la figura anterior. Aunque el orden usado no sea exactamente el
mismo que el mostrado. Tambin puede incorporar la ayuda de Scilab si as lo desea.

Para lograr esta integracin use el siguiente procedimiento:


a) Ubicar el control de Scilab, en la ventana de consola (por defecto est all al abrir
Scilab), la cual ser nuestra sede principal, a la cual se le insertarn las otras
aplicaciones (se identifica que est activa por tener la barra que contiene el nombre
de la aplicacin Consola de Scilab de color CELESTE y NO en un tono gris).
b) Desde la consola, del Men Principal, elija Aplicaciones y seleccione la Aplicacin
SciNotes. Asegurarse que esta ventana es ahora la ventana activa (se identifica por
tener la barra que contiene el nombre de la aplicacin SciNotes de color CELESTE
NO en un tono gris).
c) Luego ubique el puntero del Mouse sobre dicha barra CELESTE y arrastre con el
puntero del mouse la barra hacia el interior de la ventana de la consola sin dejar de
presionar el botn izquierdo del mouse, NO lo suelte hasta que aparezca un recuadro
dentro de la ventana de consola indicando la posicin en la que instalar la aplicacin
entrante y una vez Ud. est conforme con dicha ubicacin, entonces suelte el botn
izquierdo del mouse.
Repetir este procedimiento con el resto de aplicaciones a incorporar a la consola.
Al momento de estar interactuando en la ventana de consola, cuando se intercambia entre
aplicaciones, automticamente se intercambia el men principal segn sea la aplicacin
que se encuentre activa.
Ahora se incorporarn algunos mdulos o herramientas ATOMS.
Para poder incorporar las herramientas ATOMS, SE DEBE TENER ACCESO A INTERNET. Las
herramientas ATOMS, son una coleccin de funciones asociadas por un nombre para
interactuar en un rea de aplicaciones especfica.
Cuando se instala una herramienta ATOMS, para que surta efecto debe re-iniciarse Scilab.
Estas quedan instaladas para futuros usos y se activan automticamente cada vez que se
inicia Scilab.
Agregue el siguiente mdulo ATOMS (Si todava no lo ha hecho):
o GUI Builder 3.0-1 (Ubicado dentro de la Categora GUI)
Se da una breve indicacin en la consola de Scilab para interactuar con dicho mdulo.
Ejecute las instrucciones sugeridas para conocer un poco ms acerca del funcionamiento
del mdulo.
Los siguientes mdulos son opcionalmente tiles segn los usos que cada quien le d a
Scilab:
Stixbox 2.2-1 y Distfun 0.7-1 , ambos dentro de Data Analysis And Statistics.
Make Matrix 0.4.1-1 , dentro de Linear algebra.
Apifun 0.4.1-1 , dentro de Scilab development.

2.

Uso de medidas de control de ejecucin ( Ms sobre Profiling y otras funciones).


A veces, aunque en nuestro curso ser siempre, se tiene inters en conocer los tiempos de
ejecucin y la eficiencia de las funciones o scripts que uno crea o usa en la solucin de un

problema. Scilab ofrece una herramienta para realizar dicha tarea llamada profiling.
Las funciones o scripts en Scilab pueden existir en tres difrentes formatos:
No Compiladas
Compiladas, y
Compiladas con provisin para profiling.
Ms especificamente, las funciones en Scilab no estn compiladas. Por tanto para poderlas
usar en Scilab deben ser compiladas primero. Y para permitir Profiling, es decir, para
determinar con que frecuencia cada lnea de cdigo es ejecutada y cunto tiempo se tarda
en dicha ejecucin, es necesario adems, agregarle provisin para Profiling.
Las funciones o scripts se compilan usando el comando exec y se preparan para el profiling
haciendo una llamada a la funcin add_profiling. En el caso de la definicin de funciones
con el comando deff, se puede definir de manera directa al momento de crear una funcin
su provisin para profiling, agregando un tercer parmetro en la definicin: p
Por ejemplo:
-->deff('y=funct(n)',['y=rand(n,n)';'for ii=1:10';'y=sqrt(y)';'end'],'p')
-->y=funct(1000); // Ejecuta la funcin funct
-->profile(funct) // Efecta el profile de funct.
ans =
1.
1.
10.
10.
1.
1.

0.00001
0.000131
0.000027
0.000225
0.000094
0.

0.
4.
0.
3.
0.
0.

La salida del profile es una matriz de tres columnas, en la que cada fila analiza el
comportamiento de cada lnea de cdigo de la definicin de la funcin que se ha ejecutado.
El nmero en la primera columna es el nmero de veces que se ejecut cada linea de la
funcin. El nmero de la segunda columna representa el tiempo total en segundos que se
tard en la ejecucin de cada lnea de cdigo. El nmero en la tercera columna refleja el
esfuerzo del interpretador de Scilab dedicado a cada lnea de cdigo.
Por supuesto que uno debe conocer a qu lnea particular de cdigo hace referencia la
matriz dada por el profiler.
Pero Scilab tiene una funcin que muestra dicha asociacin: showprofile.
-->showprofile(funct)
function y=fun(n) |1 |0|0|
y = rand(n, n) |1 |0|4|
for ii = 1:10,
|10|0|0|
y = sqrt(y)
|10 |0|3|
end,
|1 |0|0|
endfunction
|1 |0|0|

Tambin es posible hacer un grfico del profile: plotprofile.


Intente: plotprofile(funct).
Aparece un grfico como el de la siguiente figura.

Aparte de estas funciones, tambin se puede usar otras para controlar de manera ms
exacta o hasta microscpica el funcionamiento de un programa. Investigue el uso de las
funciones: tic, toc, timer, etime.

Los comandos tic y toc generalmente se usan como un par que se complementan
mutuamente. Tienen la misma funcionalidad que el comando timer(). Ellos miden el tiempo
requerido para una o ms instrucciones.
Para probar estos comandos ejecute la secuencia de comandos en la consola de Scilab:
-->clear a;
-->tic; a=rand(1000,1000);toc
Escriba el valor que se obtuvo de ans =
Ahora use la flecha direccional hacia arriba para repetir el comando sin tener que digitarlo y
ejecute nuevamente la secuencia de comandos. Repita el proceso varias veces, trate de
hacerlo de la manera ms rpida posible y consistentemente igual. Nota diferencia?
Escriba el valor que se obtuvo de ans =
--> clear a;
-->timer();a=rand(1000,1000);timer()
Escriba el valor que se obtuvo para ans =
Repita al igual que el caso anterior, usando la flecha hacia arriba. Repita el proceso varias
veces, trate de hacerlo de la manera ms rpida posible. Nota diferencia?
Escriba el valor que se obtuvo de ans =

Diferencias encontradas:
Tic/Toc
Muestra el nmero de segundos
entre los dos comandos.
Mide el tiempo como en un
cronmetro.
Despliega hasta las milsimas de
segundo.

Timer()
Retorna el tiempo de CPU entre las dos
llamadas de la funcin.
Tiene
una
precisin
de
100
nanosegundos.
El CPU Time: es el nmero de ciclos que
el procesador usa para realizar un
clculo. No es igual al tiempo real.

Verifique si hay alguna diferencia al usar la secuencia:


-->tic;clear a;a=rand(1000,1000);toc
-->timer();clear a;a=rand(1000,1000);timer()
El comando etime se usa para encontrar en tiempo transcurrido entre dos tiempos dados
As: t=etime(t2,t1) muestra el nmero de segundos transcurridos entre t2 y t1.
Intente aplicar este comando y vea su funcionamiento. Si necesita ayuda puede acceder a
ella usando el comando -->help etime
3.

Mtodos de solucin de Ecuaciones No Lineales


La siguiente funcin usa el mtodo de biseccin para encontrar races de ecuaciones. Se le
provee como un ejemplo. Trate de digitarlo, entenderlo y luego selo para realizar el ejercico
que se pide al final en los ejercicios propuestos.
function [x]=half(a,b,f)
//Mtodo de Biseccin
N = 100; eps = 1.e-5; // define max. no. iteraciones y error
if (f(a)*f(b) > 0) then
error('no es posible hallar la raz f(a)*f(b) > 0')
abort;
end;
if(abs(f(a)) < eps) then
error('solucin en a')
abort;
end;
if(abs(f(b)) < eps) then
error('solucin en b')
abort;
end;
while (N > 0)
c = (a+b)/2;
if(abs(f(c)) < eps) then
x = c;
x
return;
end;

if(f(a)*f(c) < 0)then


b = c;
else
a = c;
end;
N = N - 1;
end;
error('No hay convergencia')
abort;
//Fin de la funcin
4.

EJERCICIOS PROPUESTOS.
1. Escriba un script que cuente e imprima el nmero de subdivisiones que se hacen a
un intervalo [a,b] hasta llegar al epsiln de la mquina, los valores de a y b son
entrada del usuario.
2. Escriba una funcin que aplique el mtodo de biseccin y la secante
simultneamente.
3. Para las siguientes ecuaciones, aplique los mtodos de Newton, Secante y Biseccin,
para encontrar todas las races en los intervalos dados:

x5 3x 4 10 x 8 0 en 0.5,3
e x x3 8 0 en 3,5

x2 x
x 0 en 2, 2
Cos x 1 2
a. Identifique intervalos dnde la grfica de la funcin corta al eje x, y
b. Encuentre todas las soluciones usando fsolve.
c. Encuentre el error absoluto y relativo en cada caso donde se considera como valor
verdadero el encontrado con fsolve y como valor aproximado el encontrado con los
siguientes Mtodos:
Biseccin.
Newton
Newton Modificado
Regula Falsi
Regula Falsi Modificado
Secante
Punto Fijo
Punto Fijo Modificado
d. Aplique el profile para cada caso y haga el grfico del profile respectivo.
e. Intente reproducir los datos del profile usando los comandos tic y toc.
Deber subir todo lo que se le pide que UD. Practique en esta gua, como muestra de su
trabajo en una carpeta encriptada en formato .rar (NO .ZIP) identificada por su nmero de
carnet y Grupo de Laboratorio. (Recuerde Gpo 01=Mircoles, Gpo 02=Jueves Lcomp3, Gpo
03=Jueves Lcomp2, Gpo 04=Viernes 6:20; Gpo 05=Viernes 8:05 y Gpo 06=Viernes 9:50).
Por ejemplo si Ud. Tiene nmero de carnet MD12003 y est el grupo 03 su nombre del
archivo .rar a subir ser: MD12003_03.RAR Habr un enlace para subir este archivo en la
pgina de la asignatura dentro del Aula Virtual, habilitado hasta el 07/04/2015.

También podría gustarte