Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
2.
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|
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.
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.