Practico 1

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 8

COMPUTACIÓN 1

Instituto de Computación
Curso 2018

PRÁCTICO Nº 1

Introducción
El objetivo de este práctico es introducir al estudiante en el manejo del entorno Octave y comparar las
funcionalidades de Octave con las de las planillas de cálculo.

Funcionalidades Básicas

Ejercicio 1
Inicie el Octave haciendo doble click en el icono que se encuentra en el Escritorio con el nombre
Octave (GUI), o sino desde el menú de programas. La ventana que aparece la llamaremos Ventana de
Comandos (Command Window) y permite a los usuarios introducir comandos sencillos. Probaremos
algunos sencillos. Tecleé en la línea de comandos:
 s=1+2 (Pulse Enter)
 fun=sin(pi/4) (Pulse Enter)
 a=log(s^-1) (Pulse Enter)
Los resultados que Ud. ha tecleado fueron guardados en variables, puede observar la lista de variables
que tiene definidas en el ambiente con el comando who o en el menú Workspace. Puede obtener sus
valores solamente tecleando su nombre y pulsando Enter.

Ejercicio 2
Ahora trabajaremos con vectores. Para Octave todas las variables son matrices, los escalares matrices
de 1x1, los vectores tipo fila son matrices de 1xN y los del tipo columna son matrices de Nx1.
Tecleé en la línea de comandos:
 a=[2 3 4]
 b=[2,3,4]
 c=[2;3;4]
Utilice el comando size para observar las dimensiones de las variables A, B y C. Observe que al igual
que la notación matemática habitual las dimensiones son expresadas en la forma [fila, columna]. Para
conocer la sintaxis del comando size utilice el help haciendo help size.

Ejercicio 3
Pasemos a trabajar con matrices. Introduzca las siguientes matrices:
4 7 6
2 4  0  1
A  B   C   1 9 6 
8 7   1 0 
 3 2 3 
Calcule:
 D=A+B
 A' es la transpuesta conjugada de A, el ’ (apóstrofe) se encuentra en la tecla ? (a la derecha
del 0)
 A^-1 esto también se puede realizar mediante la función inv, ingresando inv(A)
 A*B
 A.*B
Observe que las dos últimas operaciones dan resultado diferente, esto se debe a que ingresar un punto
(.) antes del operador le indica a Octave que la operación a realizar se realizará elemento a elemento.
Esto es aplicable a las operaciones ’ , * , / , ^ y \
Por ej.: (A+i*B)' es distinto a (A+i*B).'Verifíquelo.

Versión 1.4.0 1/8


COMPUTACIÓN 1
Instituto de Computación
Curso 2018
Ejercicio 4
Aplicaciones del operador: (Ver help colon)
Este operador es útil para hacer referencias en forma implícita a los índices de matrices o vectores, o
también para crear vectores. Si tecleamos:
 A=[1:5] creamos un vector tipo fila de 5 elementos que son el 1, 2, … 5
 B=[1:.2:2 ; -3:-1:-8]
 B(2,2) nos devuelve el elemento 2,2 de la matriz que es –4
 B(:,3) nos devuelve el vector correspondiente a la columna 3 de la matriz B, es [ 1.4 ; -5]
 B(1,:) devuelve la primer fila de la matriz.
 B(2,2:5) devuelve un vector tipo fila de 4 elementos, igual a [-4 -5 -6 -7]
Podemos además concatenar porciones de vectores o matrices:
 C=[A 3 6] al final del vector tipo fila le agregamos los elementos 3 y 6. Observe que da lo
mismo teclear C=[A,3,6] pero no es lo mismo que teclear C=[A;3;6] que además da
error pues se intenta concatenar vectores de distintas dimensiones.
 A(1,4)=10 reemplaza el 4to elemento del vector por un 10
 B(2,3:5)=[0,1,0] reemplaza un subvector de la matriz por otro
 B(:,1)=[4;4] reemplaza todo el vector de la matriz B correspondiente a la columna 1
 B=B([2 1],:) intercambia toda la fila 1 con la fila 2
 B(:,2)=[] borra toda la columna 2. El [] indica vector vacío.
 B=[B(:,1) [2 5]’ B(:,2:5)] inserta una nueva columna 2 en la matriz B

Partiendo de la matriz M=[0 1 1 1 0;0 0 0 0 0;0 0 0 0 0;0 0 1 0 0; 0 1 1 1 0]


y utilizando las operaciones con filas vistas en los párrafos anteriores, obtener la matriz:
0 0 0 0 0
0 1 1 1 0 

0 1 0 1 0
 
0 1 1 1 0
 0 0 0 0 0 

Ejercicio 5
Resolución de sistemas de ecuaciones lineales. (Ver help mldivide)
Sea A=[1 2 3;4 5 6;7 8 10] y b=ones(3,1), entonces podemos resolver el sistema lineal
Ax=b tecleando x=A\b (el operador \ recibe el nombre de división izquierda o backslash). Calcule
el error residual de la solución calculada (r = b-Ax).
En el caso de un sistema sobredeterminado, se utiliza el mismo operador pero Octave internamente
utiliza el método de mínimos cuadrados para su solución. Por ejemplo para A=[2 –1;1 10;1 2] y
b el mismo de antes calcule la solución del sistema Ax=b.

Versión 1.4.0 2/8


COMPUTACIÓN 1
Instituto de Computación
Curso 2018
Funcionalidades avanzadas

Ejercicio 6 Creación de gráficos


Parte a: Creación de gráficos en una planilla de cálculo (LibreOffice Calc, Microsoft Excel,
OpenOffice Calc)
1. Ingrese los siguientes valores en una nueva planilla a partir de la celda A1:
X Y
1 0
2 0.25
3 3
4 1.5
5 2
2. En la celda C1 ingrese “Z”.
3. En la celda C2 ingrese la fórmula “=B2*B2”.
4. Expanda la fórmula en C2 hasta la celda C6. Debería obtener lo siguiente:
X Y Z
1 0 0
2 0.25 0.0625
3 0.3 9
4 1.5 2.25
5 2 4

Nota: Excel es dependiente de la “configuración local” de Windows. Por ejemplo, para algunos países se
utiliza la coma como separador decimal, mientras que para otros se utiliza el punto. Si estamos trabajando en
una computadora que utiliza el formato numérico en idioma español es probable que Excel considere que el
separador decimal es la coma “,” y no el “.”.
5. Seleccione las celdas con datos (desde A1 hasta C6) y elija la opción de menú Insertar 
Diagrama (Insert  Chart)
6. En Tipo de gráfico (Chart type), seleccione XY (Dispersión) (XY (Scatter))
7. Para la apariencia de la gráfica seleccione la opción de dispersión con puntos de datos
conectados por líneas sin marcadores de datos (lines only).
8. Haga clic en Finalizar (Finish). Debería obtener un gráfico como el que se muestra a
continuación.
NOTA: Si está utilizando el programa LibreOffice u OpenOffice en vez de Excel en el último paso debe hacer click en
Siguiente (Next), elegir la opción Primer fila como etiqueta (First row as label) y luego Finalizar (Finish).

Parte b: Creación de gráficos en entorno de programación (Matlab, Octave)


1. Ejecute el comando: x = [1 2 3 4 5]
2. Ejecute el comando: y = [0 0.25 3 1.5 2]
3. Ejecute el comando: z = y .^ 2
4. Ejecute el comando: plot(x,y,'b-',x,z,'r-')
5. Ejecute el comando: legend('Y','Z')
6. Debería obtener el gráfico de la página siguiente.

Versión 1.4.0 3/8


COMPUTACIÓN 1
Instituto de Computación
Curso 2018
Investigue las diferentes opciones para personalización de gráficas en LibreOffice Calc y Excel, y
los siguientes comandos en Octave: plot, fplot, legend, hold.

Ejercicio 7 Gráficos de funciones matemáticas


Parte a: Creación de gráficos en una planilla de cálculo (LibreOffice Calc, Microsoft Excel,
OpenOffice.org Calc)
1. En una nueva planilla, ingrese el valor 0 en la celda A1 y 0,1 en la celda A2.
2. Pinte ambas celdas, y arrastre la esquina inferior derecha hacia abajo, de forma que se
autocompleten las celdas siguientes desde la A3 hasta la A62.
3. En la celda B1 ingrese la fórmula ''=seno(A1)'', (para la versión en inglés se usaría
''=sin(A1)'')
4. Copie la fórmula de la celda B1 en todas las celdas desde la B2 hasta la B62.
5. Pintar las celdas de la A1 hasta la B62.
6. Elegir “Insertar  Diagrama…”
7. Seleccione XY (Dispersión) y la opción de dispersión con puntos de datos conectados por
líneas sin marcadores de datos (lines only).
8. Seleccione Finalizar.

Parte b: Creación de gráficos en entorno de programación (Matlab, Octave)


1. Ejecute el comando: x = (0:.1:2*pi);
2. Ejecute el comando: plot(x,sin(x)). ver “help plot”, observar que los parámetros de
"plot" son (var, función).
Otra opción es ejecutar únicamente el siguiente comando: fplot(’sin’,[0,2*pi]) o
fplot(@sin,[0 2*pi])
NOTA: Si la función a usar con fplot no está por defecto en Octave se deberá indicar cual es la variable de la función, por
ejemplo, fplot(@(x) log(3*x), [1 100]), fplot(@(t) exp(-t/15), [0 1]).

Parte c: Vea en el help los comandos clc, clear, clf.

Ejercicio 8 Resolución gráfica de ecuaciones


 En el entorno Octave, realice las gráficas de log(1/x) y de exp(cos(2*x*pi/40)) entre 1
y 80.
Con la ayuda del comando hold on (ver help hold) determinar gráficamente la solución de
e cos 2 x / 40    log( 1 / x )

 Realice la gráfica de un círculo de centro (0,0) y radio 10.


Realice la gráfica de la recta con ecuación: 2x + 3y = 5;
Determine gráficamente los dos puntos de intersección entre ambas figuras.
Ver help ginput.

Versión 1.4.0 4/8


COMPUTACIÓN 1
Instituto de Computación
Curso 2018
Ejercicio 9 Creación de scripts
Siga los siguientes pasos:
 Cree un script que contenga las instrucciones (comandos) utilizadas para resolver el ejercicio
4. (Utilice el Editor de Octave).
 Guarde el script en el archivo “ejercicio4.m”.
 Verifique que su archivo (ejercicio4.m) esté en su Directorio de trabajo (Current Directory) de
Octave.
 Desde la consola de Octave, utilice el comando who para verificar qué variables se encuentran
en memoria. En caso de que existan variables, utilice clear para eliminarlas (sugerencia:
consulte la ayuda del comando clear). Puede utilizar nuevamente el comando who para
verificar el funcionamiento de clear.
 Ejecute el script desde la consola de Octave (en la consola, escriba el nombre del archivo sin
la extensión .m).
 Verifique y tome nota del contenido de las variables generadas.

Responda a las siguientes preguntas:

a) ¿Qué beneficios encontró en el uso de un script para resolver el ejercicio 4?


b) ¿De qué forma puede mejorarse la legibilidad del script?
c) ¿De qué forma puede modificarse el script para que no vaya mostrando lo que va haciendo
paso a paso?
d) Luego de ejecutarse, ¿el script modificó la memoria?
e) Modifique el script, borrando (o “comentando”) la instrucción que crea el vector A, guárdelo
y ejecútelo. ¿Nota un cambio con respecto a la primera ejecución? En caso afirmativo, intente
explicar por qué ha ocurrido el cambio. Sugerencia: verifique el contenido del vector C.

Ejercicio 10 Análisis estadístico


El archivo telmex.csv contiene datos de los valores y el volumen de comercialización de las acciones
de TELMEX (empresa de telefonía mexicana) correspondientes al período mayo/2000 a julio/2008.
Nota: El archivo telmex.csv se obtiene en la plataforma EVA. Bajar y guardar el archivo sin abrirlo
en LibreOffice Calc.

Parte a: LibreOffice Calc


i) Abra una planilla LibreOffice Calc, e importe dichos datos. Para ello, la secuencia es:
Archivo -> Abrir -> (elegir archivo: telmex.csv) -> Aceptar
( En Excel: Data  Import External Data  Import Data  (elegir archivo: telmex.csv) 
Open  (seleccionar) delimited  Next  (seleccionar) comma  Finish 
(seleccionar) Existing worksheet  OK )
Automáticamente en las primeras columnas (A a G) se desplegarán los datos y las variables a que
corresponden.

Cuando usamos Excel, tenemos que tener en cuenta el idioma de la instalación. Si está en español, el menú y
los mensajes aparecerán en español, aunque la traducción puede resultar engañosa. Por ejemplo, la versión
en español traduce “Import External Data” como “Obtener Datos Externos”. Por otra parte, lo realmente
llamativo es que Excel también traduce las fórmulas al español.
Otro aspecto a tener en cuenta es que Excel es dependiente de la “configuración local” de Windows. Por
ejemplo, para algunos países se utiliza la coma como separador decimal, mientras que para otros se utiliza el
punto. Dependiendo de esta configuración, puede que los valores numéricos no se carguen correctamente. Si
estamos trabajando en una computadora que utiliza el formato numérico en idioma español es probable que
Excel considere que el separador decimal es la coma “,” y no el “.” que viene por defecto en el archivo
telmex.csv. Si este es el caso, una vez cargado el archivo ejecutar la siguiente secuencia:
Editar -> Buscar y Reemplazar… -> Escribir . en el recuadro Buscar –> Escribir , en el
recuadro Reemplazar por -> Reemplazar todo.
(Edition  Replace  Escribir . en el recuadro Find  Escribir , en el recuadro Replace with
 Replace all)

Los datos que se calcularán en las siguientes secciones corresponden a realizar estadística descriptiva
de la variable “volumen de acciones comercializadas” en el período tratado.

Versión 1.4.0 5/8


COMPUTACIÓN 1
Instituto de Computación
Curso 2018
Para ser aplicadas las funciones estadísticas previstas en Excel, es necesario insertar la función deseada
y definir el rango de datos sobre el cual será calculada. Para obtener la fórmula de cálculo, sintaxis y
observaciones de la función seleccionada, es necesario hacer clic en Help on this function, que
aparece en la izquierda de la ventana abierta.

ii) Calcule el valor máximo del volumen de acciones comercializadas:


 Sitúe el cursor en una celda vacía (I2)
 Ingrese Insertar -> Funcion -> MÁX
(Insert -> Function -> Maximum)
 Elija el rango desde la celda F2 hasta F432
 Clic en Aceptar.
 Sitúe el cursor en la celda superior a la actual y escriba el título “Volumen máximo”
iii) Calcule el valor mínimo del volumen de acciones comercializadas. Para eso siga el mismo
procedimiento que en el caso del máximo, pero elija la función MÍN. Ubique el mínimo en la celda
I4 y escriba el título “Volumen mínimo” en la celda I3.
iv) Calcule el valor promedio y la desviación estándar de los datos de volumen de acciones
comercializadas. Para eso siga el mismo procedimiento que en los casos anteriores, pero eligiendo
las funciones PROMEDIO y DESVEST. Ubique el promedio en J2 y el título “Valor medio” en J1.
Ubique la desviación estándar en J4 y el título “Desviación estándar” en J3.
v) Construcción de un histograma para el volumen de acciones comercializadas. Se creará un
histograma con 15 buckets de igual tamaño. Como nuestro volumen máximo calculado es de 58600,
resulta razonable tomar 15 buckets de un espacio de 4000 cada uno. Notar que para que sean
equiespaciados lo ideal es tomar intervalos de (Máximo – Mínimo)/15, pero en este caso
podremos obtener una aproximación aceptable.
 Sitúe el cursor en una celda vacía (K1), y escriba en esta celda será el límite superior del primer
bucket: 4000.
 En la celda inferior (K2) escriba el límite superior del segundo bucket: 8000.
 Pinte las dos celdas (K1 y K2), notará que en la región inferior derecha de las celdas
seleccionadas aparece un cuadradito negro resaltado.
 Arrastre este cuadradito hacia abajo y verá que se irán pintando nuevas celdas con valores
equiespaciados: 12000, 16000, … Genere todos los valores hasta 60000.
 En las celdas L1 hasta L15 se guardará la cantidad de elementos de la columna de volúmenes
que son menores o iguales al límite del bucket. Para esto ingrese en L1 la fórmula
=CONTAR.SI(F$2:F$432;"<"&K1)
 Copie la fórmula de la celda L1 a las celdas L2 hasta L15, se actualizará el índice
correspondiente para cada bucket.
 En las celdas M1 hasta M15 se guardará la cantidad de elementos de la columna de volúmenes
que realmente pertenece a cada bucket. Para esto comenzamos indicando que la cantidad de
elementos en el primer bucket es igual a la cantidad calculada en el paso anterior. O sea: en la
celda M1 ingresar la fórmula =L1
 Para el resto de los buckets, la cantidad se calcula como la resta entre los elementos que
pertenecen al límite superior menos los que pertenecen al límite inferior. O sea: en la celda M2
ingresar la fórmula =L2-L1
 En las celdas de M3 hasta M15 copiar la fórmula de M2, se actualizará el índice correspondiente
para cada bucket.
 Ingrese Insertar  Diagrama  Columna  Siguiente  Elija el rango M1 a M15
 Series  Clic en la selección de rótulos para el eje X  Elija el rango K1 a K15 
Terminar

Versión 1.4.0 6/8


COMPUTACIÓN 1
Instituto de Computación
Curso 2018
Parte b: Octave
i) Abra Octave e importe el archivo mediante la función csvread (para tener los datos completos
sobre la función ver help csvread). En este caso nos interesa cargar los datos de la segunda
fila y segunda columna en adelante, por lo que invocaremos el comando:
M = csvread('telmex.csv', 1, 1)
Los datos quedarán cargados en una matriz M, cuyo tamaño es de 431 filas y 6 columnas.
ii) Calcule el valor máximo del volumen de acciones comercializadas. Para eso debemos
considerar solamente los datos de la columna 5 de la matriz M. La función de Octave que nos
permite obtener el máximo es max(X), donde X es un vector o matriz.
 Obtenemos la columna 5 de la matriz M y la guardamos en una variable con V = M(:,5).
 Obtenemos el máximo de la columna con max(V).
iii) Calcule el valor mínimo del volumen de acciones comercializadas. La función de Octave que
nos permite obtener el mínimo es min(X), donde X es un vector o matriz.
iv) Calcule el valor promedio y la desviación estándar de los datos de volumen de acciones
comercializadas. La función de Octave que nos permite obtener el valor medio es mean(X), y la
función que nos permite obtener la desviación estándar es std(X), donde X es un vector o
matriz.
v) Construcción de un histograma para el volumen de acciones comercializadas. Se creará un
histograma con 15 buckets de igual tamaño. Octave nos provee una función que calcula los
buckets y la cantidad de valores que caen en cada uno (help hist muestra la forma de ejecutar
esta función). En este caso utilizaremos: hist(V,15).

Se sugiere investigue otros comandos, de uso en análisis descriptivo-estadístico de datos, como el


mean, median, std, cov, hist, histc, line, cdf, randn, sprand, sprandn, randperm,
etc.
Ejercicio 11

Las siguientes funciones se utilizan frecuentemente a lo largo del curso: round, fix, ceil, floor, mod,
rem. El objetivo de este ejercicio y el siguiente es conocerlas a través de su uso práctico.
round(n): Redondea el número al entero más cercano. Ejemplo: round(1.5) = 2
ceil(n) : Devuelve el techo del número (redondea hacia más infinito). Ejemplo: ceil(1.5) = 2
fix(n) : Se queda con la parte entera del número (redondea hacia cero). Ejemplo: fix(1.5) = 1
floor(n) : Devuelve el piso del número (redondea hacia menos infinito). Ejemplo: floor(1.5) = 1
1. Complete la tabla con el resultado de aplicar las funciones round, fix, ceil y floor en
Octave.

n round(n) ceil(n) fix(n) floor(n)


0,3
-0,3
1,5
0,98
-0,98
2,4 + 3,6i

2. Tomando en cuenta esos resultados, infiera para qué conjunto de números fix y ceil se
comportan de idéntica forma, y para qué conjunto se comportan de manera distinta.
3. Haga lo mismo para fix y floor.
4. Explique qué hacen esas funciones con los números complejos.
5. Utilizando Octave, encuentre una forma de armar la tabla sin tener que ejecutar estas
funciones para cada número. Pista: teniendo los números en memoria se puede hacer en un
único paso.

Versión 1.4.0 7/8


COMPUTACIÓN 1
Instituto de Computación
Curso 2018
Ejercicio 12

Procediendo de forma análoga al ejercicio 11, aplique las funciones rem y mod sobre las siguientes
parejas de valores de a y d, y explique su comportamiento:
mod(a,d) : Devuelve el resto r de dividir a entre d, calculado como: a – d .* floor(a ./ d)
rem(a,d) : Devuelve el resto r de dividir a entre d, calculado como: a – d .* fix(a ./ d)

a 6 5 5 -5 -5
d 2 2 -2 2 -2

Ejercicio 13

Otras dos funciones útiles y muy utilizadas son size y length. Si M es una matriz y v un vector:

size(M) Devuelve dos elementos, el primero contiene la cantidad de filas de M, y el segundo


contiene el número de columnas. (Para otras formas de uso de size ver help size en Octave)
length(v) Devuelve el largo del vector v.

a. Dada la matriz M=[1:3; 4:6; 7:9; 10:12] y los vectores v1=[1:4] y


v2=[1;2;3;4], ejecutar en Octave las siguientes instrucciones:
>> [n,m]=size(M)
>> tamano=size(M)
>> fil=length(M)
>> filas=size(M,1)
>> columnas=size(M,2)
>> l1=length(v1)
>> l2=length(v2)

b. A partir de la matriz M=[4 0 2 1; 5 3 1 9; 1 0 0 1], sin utilizar Octave intente


determinar el resultado de aplicar las siguientes instrucciones (verifique los resultados
hallados con Octave):

>> size(M,2)
>> size(M',2)
>> size(M(2,2:3))
>> length(M(1:3,2))
>> length(M(1:3,2:2))
>> size(M(:,1:2:4))
>> size([])
>> length(M(1:3,2:1))

Versión 1.4.0 8/8

También podría gustarte