Guia 1
Guia 1
Guia 1
INTEGRANTES:
Andres Loor
SANGOLQUÍ, 2019
Departamento de Eléctrica, Electrónica y Telecomunicaciones
Índice
Índice ................................................................................................................................................... 2
Lista de Figuras: ................................................................................................................................... 3
Lista de Tablas ..................................................................................................................................... 4
1 Tema de la práctica ..................................................................................................................... 5
2 Objetivos ..................................................................................................................................... 5
2.1 Objetivo General ................................................................................................................. 5
2.2 Objetivos Específicos ........................................................................................................... 5
3 Marco Teórico ............................................................................................................................. 5
4 Desarrollo .................................................................................................................................. 16
4.1 Desarrollo en Matlab......................................................................................................... 16
4.1.1 Ejemplo 1.1................................................................................................................ 16
4.1.2 Ejemplo 1.2................................................................................................................ 19
4.1.3 Ejemplo 1.3................................................................................................................ 22
5 Comandos Utilizados ................................................................................................................. 24
6 Ejercicios Propuestos: ............................................................................................................... 25
6.1 Ejercicio 1 .......................................................................................................................... 25
6.2 Ejercicio 2 .......................................................................................................................... 25
7 Conclusiones: ............................................................................................................................ 25
8 Anexos ....................................................................................................................................... 25
9 Bibliografía ................................................................................................................................ 25
2
Departamento de Eléctrica, Electrónica y Telecomunicaciones
3
Departamento de Eléctrica, Electrónica y Telecomunicaciones
4
Departamento de Eléctrica, Electrónica y Telecomunicaciones
1 Tema de la práctica:
Introducción a Matlab, Python y R, comandos básicos, uso de vectores, matrices y diagramas.
2 Objetivos:
2.1 Objetivo General:
Aprender a utilizar comandos básicos para poder utilizar vectores y matrices en los diferentes
lenguajes de programación matemáticos.
3 Marco Teórico:
R Studio
5
Departamento de Eléctrica, Electrónica y Telecomunicaciones
6
Departamento de Eléctrica, Electrónica y Telecomunicaciones
Figura 4: Comandos de R.
Matlab
Directorio actual de trabajo (Current Directory). - Donde se guardan las funciones creadas. [1]
7
Departamento de Eléctrica, Electrónica y Telecomunicaciones
Espacio de Trabajo ((Workspace). - Aquí aparecen las variables o funciones cargadas. [1]
Ventana de comandos (Command Window). -Consola sobre la que se escriben los comandos. [1]
Historial de comandos (Command History). - Aquí se guardan los comandos escritos en la consola.
[1]
R.
8
Departamento de Eléctrica, Electrónica y Telecomunicaciones
Python
VECTORES Y MATRICES.
Vectores.
Es un arreglo unidimensional de datos, estos pueden ser valores numéricos, letras se los puede
representar en forma de vectores filas (1xn), o en forma de vectores columna (nx1), etc. [4]
Vector fila
𝐴 = [1, 5, 7, 7, 4];
Vector Columna
5
𝐵 = [4]
1
9
Departamento de Eléctrica, Electrónica y Telecomunicaciones
Tipos de vectores
Vector fila. -Es una matriz de orden 1xn, es decir tiene una sola fila y varias columnas.
Vector columna. -Matriz de orden nx1, tiene una sola columna y varias filas. [4]
Matrices
4 5 2
𝐴 = (1 2 2)
2 3 1
Matriz cuadrada. -Es una matriz que tiene el mismo número de filas y columnas.
Matriz rectangular. -Matriz que tiene número de filas y columnas diferentes.
Matriz identidad. -Matriz que en solo tiene elementos en su diagonal principal, ese
elemento es el 1.
Matriz de ceros. -Es una matriz en la cual sus elementos son todos 0, puede ser cuadrada o
rectangular. [4]
Suma y resta.
Para realizar las operaciones de suma y resta entre matrices se tiene que tener en cuenta que estas
matrices deben tener el mismo número de filas y columnas. [5]
Ejemplo
𝑖 = 1/2/3/4/ … 𝑛 ( 1)
𝐶𝑖𝑗 = 𝐴 𝑖𝑗 + 𝐵𝑖𝑗 𝑝𝑎𝑟𝑎
𝑗 = 1/2/3/4/ … 𝑛
10
Departamento de Eléctrica, Electrónica y Telecomunicaciones
Multiplicación.
Para realizar la multiplicación entre dos matrices se tiene que tener en cuenta que el número de
columnas de la primera matriz tiene que ser igual al número de filas de la segunda matriz, y la
dimensión de la matriz resultante es el número de filas de la primera matriz, y el número de
columnas de la segunda matriz. [5]
𝑎11 𝑎12
( 2)
𝐴 = (𝑎 𝑎22)
21
𝑏 𝑏12 ( 3)
𝐵 = (𝑏11 𝑏22 )
21
𝐶=𝐴×𝐵 ( 4)
𝑐11 𝑐12
( 5)
𝐶 = (𝑐 𝑐22)
21
Ejemplos.
Versión Matlab
>>A=[1 2 3;4 5 6;7 8 9];
Versión R
>>A= matrix(1:15,nrow=4,ncol=4)
Versión Python
>>import numpy as np
>>A= [[1, 4, 5],[-5, 8, 9],[7,8,9]];
11
Departamento de Eléctrica, Electrónica y Telecomunicaciones
Versión Matlab
>> B=[1 2 3;5 4 6];
Versión R
>> B=matrix(1:6,nrow=2,ncol=3)
Versión Python
>>import numpy as np
>> B = [[1, 2, 3],[5, 4, 6]];
Versión Matlab
>> C=[1 2 3 4 6 6];
Versión R
>> C=(1,5,3,2)
Versión Python
>>import numpy as np
>> C=[2, 5, 7];
Versión Matlab
>> D=[1; 5; 5];
Versión R
>> D=matrix(x,nrow=5,ncol=1);
Versión Python
>>import numpy as np
>> D=[[1],[5],[5]];
Versión Matlab
>> E=eye(4);
Versión R
>> E=diag(4)
Versión Python
>> E= np.identity(4)
Versión Matlab
>> F=zeros(4);
12
Departamento de Eléctrica, Electrónica y Telecomunicaciones
Versión R
>> F= zeros (4)
Versión Python
>>import numpy as np
>> F= np.zeros(4);
Versión Matlab
>> G=zeros(3,5);
Versión R
>> G= zeros (3,5);
Versión Python
>>import numpy as np
>> G= np.zeros(3,5);
Versión Matlab
>>A=[1 2 3;4 5 6;7 8 9];
>>F=zeros(4);
>>Q=A+F;
Versión R
>> A= matrix(1:15,nrow=4,ncol=4);
>> F= zeros (4);
>> Q=A+F;
Versión Python
>>import numpy as np
>> A= [[1, 4, 5],[-5, 8, 9],[7,8,9]];
>> F= np.zeros(4);
>> Q= A+F;
Versión Matlab
>>A=[1 2 3;4 5 6;7 8 9];
>>F=zeros(4);
>>Q=A-F;
Versión R
>>A= matrix(1:15,nrow=4,ncol=4);
>> F= zeros (4);
>>Q=A-F;
Versión Python
>>import numpy as np
>> A= [[1, 4, 5],[-5, 8, 9],[7,8,9]];
>> F= np.zeros(4);
13
Departamento de Eléctrica, Electrónica y Telecomunicaciones
>> Q= A-F;
Tabla 10. Ejemplo de multiplicación de vectores en los distintos lenguajes de programación.
Versión Matlab
>>A=[1 2 3;4 5 6;7 8 9];
>>F=zeros(4);
>>Q=A*F;
Versión R
>>A= matrix(1:15,nrow=4,ncol=4);
>> F= zeros (4);
>>Q=A*F;
Versión Python
>>import numpy as np
>> A= [[1, 4, 5],[-5, 8, 9],[7,8,9]];
>> F= np.zeros(4);
>> Q= A*F;
GRÁFICAS.
Además de poder ocupar vectores y matrices, es importante estar familiarizados con realizar
gráficos en los diferentes lenguajes de programación, ya que estos van a servir para graficar
funciones. [6]
𝑦 = 2𝑥 ( 10)
Versión Matlab
>>x=-5:0.01:5;
>>y=2*x;
>>plot(x,y);
>>xlabel('t');
>>ylabel('x(t)');
Versión R
>>x=seq(-5,5,length=100)
>>y=2*x;
>>plot(x,y,type="l",col="blue",lwd=3)
Versión Python
>>from pylab import *
>>import matplotlib.pyplot as plt
>>x = np.arange(-5, 5, 0.1)
>>y = 2*x
>>plt.plot(x, y)
>>plt.ylabel("y")
>>plt.xlabel("x")
14
Departamento de Eléctrica, Electrónica y Telecomunicaciones
(a) (b)
(c)
También se pueden realizar gráficos de forma discreta, a continuación, se muestran los comandos.
[6]
Versión Matlab
>>x=-5:0.01:5;
>>y=2*x;
>>stem(x,y);
>>xlabel('t');
>>ylabel('x(t)');
Versión R
>>x=seq(-5,5,length=10)
>>y=2*x;
>>plot(x,y, main="Gráfica 01.1a.: Diagrama de Dispersión")
15
Departamento de Eléctrica, Electrónica y Telecomunicaciones
Versión Python
>>from pylab import *
>>import matplotlib.pyplot as plt
>>x = np.arange(-5, 5, 0.1)
>>y = 2*x
>> plt.stem(x,y)
>>plt.ylabel("y")
>>plt.xlabel("x")
(a) (b)
(c)
También es importante poder realizar gráficos de funciones en 3D, se va a realizar un ejemplo para
mostrar los comandos a utilizar en los diferentes lenguajes de programación. [6]
z = 𝑥2 + 𝑦2 ( 11)
16
Departamento de Eléctrica, Electrónica y Telecomunicaciones
Versión Matlab
>>x=-10:0.01:10;
>>y=-10:0.01:10;
>> [x, y] = meshgrid(x,y);
>>z =x.^2+y.^2;
>>surf(x,y,z);
>>xlabel('X');
>>ylabel('Y');
>>zlabel('Z');
Versión R
>>x=seq(-10,10,length=100)
>>y=seq(-10,10,length=100)
>>parabola=function(x,y) x^2+y^2
>>z=outer(x, y, parabola)
>>persp(x,y,z)
Versión Python
>>from mpl_toolkits.mplot3d import axes3d
>>import matplotlib.pyplot as plt
>>import numpy as np
>>X=np.linspace(-10,10,100)
>>Y=np.linspace(-10,10,100)
>>X,Y=np.meshgrid(X,Y);
>>Z=X**2+Y**2;
>>fig = plt.figure()
>>ax1 = fig.add_subplot(111,projection='3d')
>>ax1.plot_wireframe(X, Y, Z,rstride=2,cstride=2,cmap='Blues')
>>plt.show()
>>ax.set_xlabel(‘X’);
>>ax.set_ylabel(‘Y’);
>>ax.set_zlabel(‘Z’);
>>plt.show();
(a) (b)
17
Departamento de Eléctrica, Electrónica y Telecomunicaciones
(c)
4 Desarrollo:
𝑦=5+𝑡 (13)
Que representa una función parabólica (13) y función lineal (14), requiere de un vector en un rango
de -10 a 10 para generar sus gráficas.
Si tenemos
𝑘 𝑣𝑘−1 − 𝑣𝜆 (14)
𝑥= ∗ 𝑒
𝜆 𝜆
18
Departamento de Eléctrica, Electrónica y Telecomunicaciones
Tabla 14. Código para generar vectores de distintos tamaños en Matlab, R y Python.
Versión Matlab
>>t=-10:1:10;
>>x_t=t.^2;
>>plot(t,x_t)
>>title('Grafico 1: x(t)=t^2');
>>xlabel('t');ylabel('x(t)');
>>grid on; hold on;
>>y_t=5+t;
>>plot(t,y_t,'r')
>>hold off;
>>fv=inline('(k/lambda).*((v/lambda).^(k-1)).*exp(-(v/lambda))');
>>k=2.776;
>>lambda = 4.9;
>>v=0:0.1:10;
>>f=fv(v,lambda,k);
>>plot(v,f);
>>f=fv(v,lambda,2*k);
>>hold on;
>>plot(v,f,'r');
>>f=fv(v,lambda,2*k);
>>hold on;
>>plot(v,f,'g');
>>hold off
Versión R
>> t<-seq(-10,10,by=1);
>> x_t=t^2;
>> y_t<-5+t;
>> df <- data.frame(t,x_t,y_t)
>> require(ggplot2)
>> g <- ggplot(df, aes(t))
>> g <- g + geom_line(aes(y=x_t), colour="red")
>> g <- g + geom_line(aes(y=y_t), colour="green")
>> g
Versión Python
>>t = np.arange(-10, 11, 1)
>>xt = t**2
>>print("Operacion xt^2")
>>print(" ")
>>print(xt)
>>print(" ")
#Grafica ejercicio 1
>>plt.plot(t, xt)
>>plt.title("Grafico 1 x(t)=t^2")
>>plt.ylabel("xt(t)")
>>plt.xlabel("t")
>>plt.hold(True)
>>yt = 5 + t
>>print("Operacion yt=t+5")
>>print(" ")
19
Departamento de Eléctrica, Electrónica y Telecomunicaciones
>>print(yt)
>>print(" ")
>>plt.plot(t, yt, color='r')
>>plt.grid()
>>plt.show()
>>plt.clf()
En la figura 4(a), 5(a) y 6(a) se muestra el resultado del algoritmo en los tres lenguajes de
programación (Matlab, R y Python) respectivamente, en donde se muestra como la ecuación (13) y
ecuación (14) se grafican en un intervalo de -10 a 10. Por otro lado, la figura 4(b), 5(b) y 6(b) muestra
la ecuación (15), misma que toma valores distintos para la variable 𝑘.
20
(c) (d)
(e) (f)
Figura 11. Gráfica de funciones (13), (14) y (15) en: (a) y (b) Matlab, (c) y (d) R, (e) y (f) Python.
1. Tomar los datos de estatura y peso de los alumnos que se encuentren cursando la materia.
2. Ingresar en dos vectores uno para el peso y el otro para la estatura.
3. Graficar el diagrama de dispersión de los datos.
4. Comentar los gráficos resultantes.
Versión Matlab
>>Peso=[51,53,56,52,53,57,56,71,53,57,56];
>>Estatura=[150,144,161,157,155,155,165,175,179,161,153];
>>scatter(Peso,Estatura)
>>xlabel('PESO')
>>ylabel('ESTATURA')
Versión R
Departamento de Eléctrica, Electrónica y Telecomunicaciones
20
Departamento de Eléctrica, Electrónica y Telecomunicaciones
(a)
(b)
(c)
Figura 12. Gráfica de dispersión de peso y estatura en (a) Matlab, (b) R y (c) Python.
21
Departamento de Eléctrica, Electrónica y Telecomunicaciones
Versión Matlab
>>Peso=[51,53,56,52,53,57,56,71,53,57,56];
>>Estatura=[150,144,161,157,155,155,165,175,179,161,153];
>>fprintf(‘Covarizana’)
>>cov([Peso,Estatura])
>>fprintf(‘Matriz de Covarianza’)
>>cov(Peso,Estatura)
Versión R
#Covarianza
>> Peso <- c(51,53,56,52,53,57,56,71,53,57,56);
>> Estatura <- c(150,144,161,157,155,155,165,175,179,161,153);
>> cov(Peso,Estatura)
#Matriz Covarianza
>>M <- cbind(Peso,Estatura,c,d,e)
>>k <- ncol(M) #number of variables
>>n <- nrow(M) #number of subjects
>> M <- cbind(Peso,Estatura)
>> k <- ncol(M) #number of variables
>> n <- nrow(M) #number of subjects
>> M_mean <- matrix(data=1, nrow=n) %*%
>>cbind(mean(Peso),mean(Estatura))
>> D <- M - M_mean
>> C <- (n-1)^-1 * t(D) %*% D #sample covariance [matches cov()]
>> C <- (n)^-1 * t(D) %*% D #population covariance
>> var_vector <- diag(C)^(-1/2)
>> diag(var_vector) %*% C %*% diag(var_vector)
>> cov(M)
Versión Python
# Arreglo de peso del curso
>> peso = [51, 53, 56, 52, 53, 57, 56, 71, 53, 57, 56]
# Arreglo de estatura del curso
>> altura = [150, 144, 161, 157, 155, 155, 165, 175, 179, 161,
153]
>>a = np.cov(peso, altura)
>>print("Covarianza entre el peso y altura")
>>print(" --------------------------------- ")
>>print(a)
>>print(" ---------------------------------- ")
22
Departamento de Eléctrica, Electrónica y Telecomunicaciones
En las Figuras 9, 10 y 11 se puede observar las diferentes formas en la que expresa el resultado del
cálculo de covarianza haciendo uso de los diferentes softwares empleados (Matlab, R, Phyton) ,
observando que la forma de representar los datos es muy similar, a excepción de R en donde para
el cálculo de la matriz de covarianza coloca el nombre de los vectores utilizados en la misma para
una mejor interpretación.
23
Departamento de Eléctrica, Electrónica y Telecomunicaciones
5 Comandos Utilizados:
FUNCION COMANDOS
MATLAB R PYTHON
Vector Fila 10:1:10; t <-seq(-10,10,by=1); t = np.arange(-10, 11,
1)
Vector columna [1; 2; 3; 4] c(1,2,3,4) array([[0],
[2],
[4],
[6]])
24
Departamento de Eléctrica, Electrónica y Telecomunicaciones
6 Ejercicios Propuestos:
6.1 Ejercicio 1
Una empresa electrónica realiza el inventario de sus elementos, se tiene que el siguiente vector
representa el número de resistencias que se han vendido en cada una de las sucursales,
A=[6,7,8,9,10], se pide calcular el total de elementos que se han vendido en toda la empresa.
6.2 Ejercicio 2
Extraer los datos que se encuentren en el intervalo de 1 a 3 de un vector de 10 dígitos que sea
generado aleatoriamente en el intervalo de -1.5 a 4.5
7 Conclusiones:
Para poder realizar los ejercicios propuestos es importante revisar una introducción de los
comandos tanto de Matlab como R Studio.
Se pudo observar que algunos comandos de R Studio son distintos a los de Matlab
Es muy importante tener lógica de programación para poder entender los ejercicios y asi
resolverlos
8 Anexos:
Ejercicio 1
MATLAB
Una empresa electrónica realiza el inventario de sus elementos, se tiene que el siguiente vector
representa el número de resistencias que se han vendido en cada una de las sucursales,
A=[6,7,8,9,10], se pide calcular el total de elementos que se han vendido en toda la empresa.
25
Departamento de Eléctrica, Electrónica y Telecomunicaciones
R STUDIO
Una empresa electrónica realiza el inventario de sus elementos, se tiene que el siguiente vector
representa el número de resistencias que se han vendido en cada una de las sucursales,
A=[6,7,8,9,10], se pide calcular el total de elementos que se han vendido en toda la empresa.
Ejercicio 2
MATLAB
Extraer los datos que se encuentren en el intervalo de 0.5 a 4 de un vector de 10 dígitos que
sea generado aleatoriamente en el intervalo de -1 a 6
26
Departamento de Eléctrica, Electrónica y Telecomunicaciones
R STUDIO
Extraer los datos que se encuentren en el intervalo de 1 a 5 de un vector de 10 dígitos que sea
generado aleatoriamente en el intervalo de -6 a 8
9 Bibliografía
[1] «Learn with MATLAB and Simulink Tutorials,» 06 Febrero 2019. [En línea]. Available:
https://www.mathworks.com/support/learn-with-matlab-tutorials.html.
27
Departamento de Eléctrica, Electrónica y Telecomunicaciones
[4] «https://rpubs.com/MSiguenas/97848,» 19 Julio 2015. [En línea]. Available:
https://rpubs.com/MSiguenas/97848.
[5] N. Rougier, M. Müller y G. Varoquaux, «Matplotlib: Gráficas usando pylab,» 6 Febrero 2019.
[En línea]. Available: https://claudiovz.github.io/scipy-lecture-notes-
ES/intro/matplotlib/matplotlib.html.
28