Está en la página 1de 32

INSTITUTO POLITÉCNICO NACIONAL

Escuela Superior de Ingeniería en Mecánica y


Electrica
Unidad Zacatenco

Ingeniería en Control y Automatización.

PRÁCTICA 1:
Programación en MATLAB

Teoría del Control II


Profesor: Dr. Francisco Villanueva

Grupo: 6AV1
Integrantes del Equipo:

 Bernardino Durán Efrén


 Estrada Rosales Aydee Biyu
 Godinez Pereda Daniel
 Hernández Guerrero Rolando
 Oviedo Ángeles Carlos Herón

03 de septiembre de 2016
1
TABLA DE CONTENIDO
I. OBJETIVO ........................................................................................................................ 2
II. JUSTIFICACIÓN ............................................................................................................... 2
III. MARCO TEÓRICO ........................................................................................................... 3

3.1. Funciones Para Introducir Datos Desde Teclado ................................................. 3


3.2. Captura De Arreglos Multidimensionales ............................................................. 3
3.3. Graficación De Datos........................................................................................... 5
3.4. Instrucciones, For (Simple Y Anidado), If-Else (Simple Y Anidado), While, Switch,
Break 5
3.5. Uso De Archivos “M” ............................................................................................ 7
3.6. Scripts Y Funciones ............................................................................................. 8
3.7. Sistemas Lineales.............................................................................................. 10
3.8. Función De Transferencia, Espacio De Estado, Señales De Prueba, Etc. ......... 10
IV. DESARROLLO................................................................................................................ 13
V. RESULTADOS ................................................................................................................ 17
VI. ÁNALISIS DE RESULTADOS ........................................................................................ 25
VII. CONCLUSIONES ........................................................................................................... 28
VIII. REFERENCIAS Y BIBLIOGRAFÍA ................................................................................. 31
2
I. OBJETIVO
 Adquirir conocimientos sobre los siguientes temas de programación en
MATLAB:
o Funciones para introducir datos desde teclado (con formato y sin
formato).
o Captura de arreglos multidimensionales.
o Graficación de datos.
o Instrucciones, for (simple y anidado), if-else (simple y anidado),
while, switch, break.
o Uso de archivos “m”.
o Uso de funciones.
o Uso básico de simulink (sistemas lineales).

II. JUSTIFICACIÓN
La necesidad del ingeniero de encontrar solución rápida y efectiva a los problemas
que se le presentan ha llevado a utilizar herramientas como la programación, la
cual da solución a dichos problemas atreves de la codificación de algoritmos. En
el curso de Teoría de Control II surge la necesidad de utilizar a la programación
puesto que la gran mayoría de los procesos matemáticos que son hechos a mano
para resolver un problema toman bastante tiempo y llegan a ser inexactos, para
esto uno de los programas o lenguajes que ofrece un entorno amplio de
herramientas basado en matrices para dar solución a esto es MatLab.

Con la realización de esta práctica se pretende reforzar al alumno el conocimiento


de las sentencias y operaciones básicas que son utilizadas para programar, las
cuales fueron vistas en cursos pasados, también la realización de esta ayudara al
alumno a adaptarse y reconocer el entorno matemático de simulación con el que
cuenta MatLab y que será de gran utilidad para la simulación de sistemas de
control. Para esto se propone en primera instancia que el alumno investigue la
teoría necesaria para después pasar a la elaboración de programas en los cuales
pueda aplicar todas las funciones que analizo y que investigo en la parte teórica.
3
III. MARCO TEÓRICO
3.1. Funciones Para Introducir Datos Desde Teclado

En Matlab, la salida de datos más simple es a través del comando disp.


Ejemplo 1:
>> disp('Hola, mundo')
Hola, mundo
Sin embargo, para un control mayor, se usa la sentencia fprintf.
Ejemplo 2:
>> fprintf(1,'Hola, mundo')
Hola, mundo
El número 1 indica que la salida será en el command window, pues fprintf es
usado para la escritura de archivos.
El símbolo % es una marca de formato, la letra «f», indica que el número a
representar es flotante (decimal), y los números indican la cantidad de espacios
que «guarda» para el número, y las cifras decimales a mostrar, respectivamente.
En la primera línea, no se indicaron estos números, por lo que se considera la
configuración por defecto, que es mostrar 6 decimales, y guarda la cantidad de
espacios justa para el valor.
Los caracteres \n indican salto de línea; también se encuentra \t, que es un
marcador de tabulación. (wikibooks, 2015)
>> fprintf(1,'%10.3f\n',pi)
3.142

3.2. Captura De Arreglos Multidimensionales

A una matriz que está compuesta por más de dos dimensiones se le denomina
matriz multidimensional en el MATLAB. Las matrices multidimensionales en
MATLAB son una extensión de la matriz de dos dimensiones normales. Las
matrices tienen dos dimensiones: la dimensión de fila y columna de la dimensión.
- Creación de matrices multidimensionales.
Se pueden utilizar las mismas técnicas para crear matrices multidimensionales
que se utilizan para las matrices bidimensionales; además, MATLAB proporciona
una función de concatenación especial que es útil para la construcción de matrices
multidimensionales.
4
- En esta sección se discute:
 Creación y extensión de matrices multidimensionales utilizando la asignación
de indexado.
Puede crearse una matriz multidimensional mediante la creación de una matriz 2-
D, y se amplía. Crear una matriz de 2-D A y se extienden A a una matriz de 3-D
utilizando la asignación indexada:
A = [5 7 8; 0 1 9; 4 3 6];
A (:,:, 2) = [1 0 4; 3 5 6; 9 8 7]
A (:,:, 1) =
578
019
436
A (:,:, 2) =
104
356
987
Se puede extender una matriz mediante la asignación de un valor único a los
nuevos elementos. MATLAB expande el valor escalar para que coincida con las
dimensiones de los elementos tratados. Esta expansión se llama expansión
escalar.
 Generación de matrices usando las funciones de MATLAB.
Pueden utilizarse las funciones de MATLAB como randn, ones y zeros para
generar matrices multidimensionales de la misma manera que se utilizan para las
matrices bidimensionales. Cada argumento que proporcione representa el tamaño
de la dimensión correspondiente de la matriz resultante.
Por ejemplo, para crear una matriz de 4x3x2 de números aleatorios distribuidos
normalmente:
B = randn (4,3,2)
 La construcción de matrices multidimensionales con la función de gato.
Los cat, la función es una forma sencilla de construir matrices multidimensionales;
concatena una lista de matrices a lo largo de una dimensión especificada:
B = cat (dim, A1, A2 ...)
Donde A1, A2 y así sucesivamente son las matrices para concatenar, y dimes la
dimensión en la que para concatenar los arrays. (Nogueras, 2013, págs. 23-30).
5

3.3. Graficación De Datos


Uno de los puntos fuertes de Matlab son los gráficos, tanto en dos dimensiones
como en 3D.
El comando básico para graficar es plot. Cuando es usado
con un solo vector como argumento, gráfica en el eje X el
índice del componente del vector, y en el eje Y, el valor de
éste. (Nogueras, 2013, pág. 33)
>> x=[1,2,3,2,1]);
>> plot(x) Figura 1.1 Figura generada por el comando
anterior
Si se entregan dos vectores en la función plot (éstos deben ser del mismo
tamaño), el primer vector pasa a ser la lista de coordenadas del eje X, y el
segundo, la lista del eje Y.
- Grafica en 3D
Aquí se usa la función plot3.
>> plot3(x1,x2,x3)
>> grid on
Aclaración: las variables x1, x2 y x3 fueron
generadas de una simulación con Simulink. Figura 1.2 Figura generada por el comando
anterior
El comando plot asigna, por defecto, determinados colores a las gráficas. Estos
colores, así como el tipo de línea a utilizar para dibujar (continua, de puntos, con
marcadores, etc.) se pueden modificar. (Libano, 2010, págs. 38-39)

Figura 1.3 Caracteres para editar graficas

3.4. Instrucciones, For (Simple Y Anidado), If-Else (Simple Y Anidado),


While, Switch, Break
6
Las sentencias MATLAB para implementar las tomas de decisión (bifurcaciones) y
los bucles (repeticiones) son las siguientes:
- Sentencia IF:
En su forma más simple se escribe en la forma siguiente:
if condición
sentencias
end
También se puede utilizar en la forma:
if condicion
sentencias-1
else
sentencias-2
end
Su forma más compleja es:
if condicion-1
sentencias-1
else if condicion-2
sentencias-2
else if condicion-3
sentencias-3
else
sentencias-4
end
En estas instrucciones, la condición es una expresión con valor lógico (true o
false). Si el valor de la expresión es una matriz, sólo se ejecuta el conjunto de
sentencias si todos los elementos son true (o, igualmente, distintos de cero).
- Sentencia SWITCH:
Es análoga a un conjunto de if ... elseif concatenados. Su forma general es:
switch expresion
case caso-1
sentencias-1
case caso-2
sentencias-2
case {caso-3, caso-4,caso-5,...}
sentencias-3
otherwise
sentencias-4
end
- Sentencia FOR:
7
Repite un conjunto de sentencias un numero predeterminado de veces. Su forma
general es la siguiente:
for variable=vector-fila
sentencias
end
Se ejecuta el conjunto de sentencias tantas veces como elementos tenga el
vector-fila, y en cada repetición, la variable toma el valor del elemento
correspondiente. Por ejemplo, se puede usar en la forma:
for i=1:n
sentencias
end
que ejecutará el conjunto de sentencias n veces, para i=1,2,3,...,n. En la forma:
for i=n:-1:1
sentencias
end
Se ejecuta el conjunto de sentencias también n veces, pero en orden inverso:
i=n,n-1,...,1.
- Sentencia WHILE:
Repite la ejecución de un conjunto de sentencias mientras que una determinada
condición se verifique. Su forma general es:
while condicion
sentencias
end
Se ejecutará el bloque de sentencias mientras que condición tome el valor true, o
mientras que condición sea distinta de cero.
- Sentencia CONTINUE:
Detiene la ejecución de la iteración actual en un bucle for o while y pasa el control
a la siguiente iteración.
- Sentencia BREAK:
Detiene completamente la ejecución de un bucle for o while. Si hay bucles
anidados, se detiene la ejecución del más interno.
(Javier García de Jalón, 2015, págs. 63-66)

3.5. Uso De Archivos “M”


8
Los ficheros con extensión (.m) son ficheros de texto sin formato (ficheros ASCII)
que constituyen el centro de la programación en MATLAB. Ya se han utilizado en
varias ocasiones. Estos ficheros se crean y modifican con un editor de textos
cualquiera. En el caso de MATLAB ejecutado en un PC bajo Windows, lo mejor es
utilizar su propio editor de textos, que es también Debugger.
Existen dos tipos de ficheros *.m, los ficheros de comandos (llamados scripts en
inglés) y las funciones. Los primeros contienen simplemente un conjunto de
comandos que se ejecutan sucesivamente cuando se teclea el nombre del fichero
en la línea de comandos de MATLAB o se incluye dicho nombre en otro fichero
*.m. Un fichero de comandos puede llamar a otros ficheros de comandos. Si un
fichero de comandos se llama desde de la línea de comandos de MATLAB, las
variables que crea pertenecen al espacio de trabajo base de MATLAB y
permanecen en él cuando se termina la ejecución de dicho fichero.
Recuérdese que un fichero *.m puede llamar a otros ficheros *.m, e incluso puede
llamarse a sí mismo de forma recursiva. Los ficheros de comandos se pueden
llamar también desde funciones, en cuyo caso las variables que se crean
pertenecen al espacio de trabajo de la función. (Javier García de Jalón, 2015,
págs. 67-72)

3.6. Scripts Y Funciones

Scripts: Un script es un conjunto de instrucciones (de cualquier lenguaje)


guardadas en un fichero (usualmente de texto) que son ejecutadas normalmente
mediante un intérprete. Son útiles para automatizar pequeñas tareas. También
puede hacer las veces de un "programa principal" para ejecutar una aplicación.
Así, para llevar a cabo una tarea, en vez de escribir las instrucciones una por una
en la línea de comandos de MATLAB, se pueden escribir una detrás de otra en un
fichero. Para ello se puede utilizar el Editor integrado: icono “hoja en blanco” del
menú de herramientas, opción “New M-file” del Menú “File” o bien usando la
orden.
>> edit
9
Los scripts de MATLAB deben guardarse en un fichero con sufijo .m para ser
reconocidos.
Para ejecutar un script que esté en el directorio de trabajo, basta escribir su
nombre (sin el sufijo) en la línea de comandos.
Funciones: Una función (habitualmente denominadas M-funciones en MATLAB),
es un programa con una "interfase" de comunicación con el exterior mediante
argumentos de entrada y de salida.
Las funciones MATLAB responden al siguiente formato de escritura (la cláusula
end del final no es obligatoria, excepto en el caso de funciones anidadas, que se
explica más adelante):
function [argumentos de salida] = nombre(argumentos de entrada)
% comentarios
%
....
instrucciones (normalmente terminadas por ; para evitar eco en pantalla)
....
end (opcional salvo en las funciones anidadas)
Las funciones deben guardarse en un fichero con el mismo nombre que la función
y sufijo .m . Se pueden incluir en el mismo fichero otras funciones, denominadas
sub-funciones, a continuación de la primera, pero sólo serán “visibles” para las
funciones del mismo fichero.
También es posible definir funciones anidadas, esto es, funciones “insertadas”
dentro del código de otras funciones. (Se exponen aquí para conocer su

existencia. Su utilización es delicada.)

MATLAB tiene diversos tipos de funciones. A continuación, se enumeran los tipos


de funciones más importantes, clasificadas según su finalidad
10
1.- Funciones matemáticas elementales.
2.- Funciones especiales.
3.- Funciones matriciales elementales.
4.- Funciones matriciales específicas.
5.- Funciones para la descomposición y/o factorización de matrices.
6.- Funciones para análisis estadístico de datos.
7.- Funciones para análisis de polinomios.
8.- Funciones para integración de ecuaciones diferenciales ordinarias.
9.- Resolución de ecuaciones no-lineales y optimización.
10.- Integración numérica.
11.- Funciones para procesamiento de señal.
(Arellano, 2013, págs. 69-70)

3.7. Sistemas Lineales


Representación y tratamiento de polinomios.- Matlab nos brinda una serie de funciones para
trabajar con los polinomios. De manera general los polinomios se representan:
F ( x)  a0 x N  a1 x N 1  a2 x N 2  a3 x N 3  ...  a N 2 x 2  a N 1 x  a N
Elementos básicos:

Variable: x
Coeficiente: ai, i=0 . . N
Grado: N
De ahora en adelante utilizaremos los términos vector y polinomio indistintamente para
referirnos al mismo concepto. Por ejemplo, sea:
p ( x)  8 x 4  5 x 3  x 2  3 x  4
En Matlab debemos ingresar a p de la siguiente manera:

>>p=[8,-5,1,3,4]
>>ans
8 -5 1 3 4

(Nogueras, 2013, págs. 49-51)


3.8. Función De Transferencia, Espacio De Estado, Señales De
Prueba, Etc.
Representación y tratamiento de polinomios: MATLAB brinda una serie de
funciones para trabajar con los polinomios. De manera general los polinomios se
representan:
F ( x)  a0 x N  a1 x N 1  a2 x N 2  a3 x N 3  ...  a N 2 x 2  a N 1 x  a N

Elementos básicos:
Variable: x
Coeficiente: ai, i=0 . . N
11
Grado: N
De ahora en adelante se utilizarán los términos vector y polinomio indistintamente
para referirnos al mismo concepto. Por ejemplo, sea:
p ( x)  8 x 4  5 x 3  x 2  3 x  4
En Matlab debemos ingresar a p de la siguiente manera:
>>p=[8,-5,1,3,4]
>>ans
8 -5 1 3 4
(Nogueras, 2013, págs. 49-51)

Para la introducción de funciones de transferencia polinómicas se utiliza la función


“sys=tf(num,den)” del modo que a continuación se indica:
Ejemplo 1:

Introducir en Matlab la función de transferencia polinómica siguiente: (MATLAB)


% Introducir una función de transferencia polinómica
» num=[1,2,3];
» den=[1,3,3,1];
» sys=tf(num,den)
Transfer function:
s^2 + 2 s + 3
---------------------------
s^3 + 3 s^2 + 3 s + 1
Respuesta transitoria a una entrada escalón e impulso.
Para visualizar gráficamente la respuesta transitoria a una entrada escalón e
impulso se procede como a continuación se indica:
Escalón: La función a utilizar es la función: “step(sys)”
IMPULSO: La función a utilizar es la función: “impulse(sys)”

Aplicación de las instrucciones vistas al caso de las funciones de transferencia de


segundo orden.
La Función de Transferencia de lazo cerrado de sistemas de Segundo Orden
adopta la forma siguiente:
12
Conversión de modelos.
Matlab permite que los distintos modelos puedan ser convertidos entre sí, de
modo que, por ejemplo, se pueda obtener la forma factorizada de la función de
transferencia cero-polo-ganancia, partiendo de la forma de cociente de polinomios.
A continuación, se analizarán las funciones de conversión que resultan
comprendidas en los alcances de la presente clase.
Función : residue

La función residue convierte la función de transferencia polinómica:

[r,p,k] = residue (B,A)


Esta instrucción determina los vectores r, p, y k de los valores de residuo (r1, r2,...,
rn), los polos (p1, p2,..., pn) y los términos directos de la expansión de fracciones
parciales.
Las entradas son los coeficientes de los polinomios B (b0, b1,..., bn-1), numerador
de la expresión polinómica y A (a0, a1,..., am-1), denominador de la expresión
polinómica.
Función : tf2zp
La función tf2zp convierte la función de transferencia polinómica:

en la función transferencia cero-polo-ganancia:

[z,p,k] = tf2zp (num,den)


13
Esta instrucción determina los ceros (z1, z2, … , zn), los polos (p1, p2,..., pn) y la
ganancia correspondiente (k) de la función de transferencia del tipo cero-polo-
ganancia.
Las entradas son los coeficientes en orden descendente de potencias de s del
numerador y denominador de la función de transferencia polinómica a convertir.
(Javier García de Jalón, 2015, págs. 5-30)

IV. DESARROLLO
¿Cómo se ha hecho la práctica?

Para esta práctica fue necesario usar el programa MATLAB con el cual se
pudieron programar los ejercicios pedidos para obtener las respuestas, por la
misma razón fue necesario hacer una investigación que permitiera conocer y
aplicar las funciones y comandos del mismo.

Los ejercicios se dividieron como esta en el borrador de la práctica (el cual se


descargo de la página http://www.fvillanueva-m.com/) teniendo en total 7
programas.

¿Qué se ocupó?

Las instrucciones utilizadas fueron entre otras: el ciclo for, while, las condicionales
if-else, la instrucción switch, break y funciones para registrar los datos ingresados
por el usuario como input.

¿Qué se hiso?

Como primer punto se dio una lectura a las instrucciones de la practica para
posteriormente comenzar con la realización de los programas que se requerían

Experimentación.

Para plasmar los resultados aquí mencionados, fue necesario experimentar con
las funciones que serian utilizadas, para de esa manera saber cuándo y cómo es
14
que sería conveniente utilizar cada una de ellas, dado que, al ser similares, en
ocasiones, se llego a confundir el uso de las funciones, gracias a esto se pudo
tener una mejor comprensión sobre MATLAB y sobre la programación que esta
práctica requería.

1. Usando MATLAB, desarrollar un programa que realice lo siguiente:


Se pretende un programa que realice la suma de matrices nxm, en el que los
datos sobre las dimensiones de n y m deben ser ingresados por pantalla, y al
mismo tiempo debe ser funcional para matices de cualquier tamaño; se podrán
usar comandos de MATLAB como “n=input(…); m=input(…)” para poder ingresar
el numero de filas y columnas.
El programa debe funcionar para matrices de cualquier tamaño que el usuario
ingrese, y se verificará la condición de la suma de matrices con la ayuda del
comando if, para que de esa forma el programa no termine en error si se diera el
caso de que no se pueda realizar la operación; en esta situación se enviara un
mensaje de error. Todos estos datos deben darse por pantalla.

2. Usando MATLAB, desarrollar un programa que realice lo siguiente:


Se pretende un programa que realice la suma de matrices nxm, en el que los
datos sobre las dimensiones de n y m deben ser ingresados por pantalla, y al
mismo tiempo debe ser funcional para matices de cualquier tamaño; se podrán
usar comandos de MATLAB como “n=input(…); m=input(…)” para poder ingresar
el numero de filas y columnas.
El programa debe funcionar para matrices de cualquier tamaño que el usuario
ingrese, y se verificará la condición de la suma de matrices con la ayuda del
comando if, para que de esa forma el programa no termine en error si se diera el
caso de que no se pueda realizar la operación; en esta situación se enviara un
mensaje de error. Todos estos datos deben darse por pantalla.

Para saber el comportamieno de la sentencia if, ir al marco teorico apartado 3.2 y


3.4

3. Desarrollar un programa para MATLAB que realice lo siguiente:


15
Se debe obtener el mayor y menor número de una lista de N números reales. Esos
dos datos deben darse mediante un archivo “.m” (en el programa), y debe
funcionar para una lista de números de cualquier tamaño. Los resultados deben
darse por la pantalla.

4. Desarrollar un programa para MATLAB que realice lo siguiente:


Se debe obtener la solución de una ecuación de 2° orden, tomando como ayuda
comandos como if, para poder ingresar los coeficientes de la ecuación. Estos
datos serán dados por la pantalla como un vector de los coeficientes de la
ecuación.
Se deberá verificar el discriminante para los distintos tipos de raíces, tal que el
programa no termine en error. Por lo que en el programa “.m” se hará la solución
de la ecuación por medio de operaciones básicas, para posteriormente usar otro if
en el que se determinara si las raíces son complejas conjugadas, reales distintas o
reales iguales. Los resultados se darán por medio de la pantalla, y se enviara un
mensaje que indique el tipo de raíces que tiene la ecuación.

Para saber el comportamieno de las ecuaciones, ir al marco teorico apartado 3.7

5. Desarrollar un programa para MATLAB que realice lo siguiente:


Intercambiar los elementos de una matriz nxm, de la forma siguiente.

Los datos deben darse mediante un archivo “.m” y debe funcionar para una matriz
de cualquier tamaño. Los resultados deben darse por pantalla, (se debe mostrar la
matriz original y la matriz con elementos intercambiados).

Para saber el comportamieno de las matrices, ir al marco teorico apartado 3.4

6. Desarrollar un programa para MATLAB que realice lo siguiente:


Despliegue por pantalla un menú de opciones en donde cada opinión corresponda
a cada una de las operaciones realizadas en los puntos 1 al 5.
16
El programa debe correr en un lazo infinito hasta que se seleccione la opción salir,
la cual debe formar parte de las opciones del menú.
El menú debe hacerse usando if´s anidados, las instrucciones Switch y la función
“menú”, por lo tanto se realizaran tres programas, uno para el uso de “if”, otro para
el uso de “Switch” y otro para el uso de “menú”.

7. Desarrollar un programa para MATLAB que realice lo siguiente:


Generar una lista aleatoria de 50 números, entre el 0 y el 250.
Esta lista creada debe de ser ordenada en forma ascendente, y posteriormente
debe ser ordenada en forma descendente.
Para ello en el programa “.m” ya se definirá el tamaño de la lista (en este caso de
50 números) y también el rango (de 0 a 250), se podrá mostrar los valores de 50
numero distintos que cumplen la condición de ser números entre 0 y 250, e
inmediatamente se observara la lista de numero ya acomodada de menor a mayor
numero y viceversa.
En caso de tener dudas con algún comando, o sentencia, regresar al marco
teorico del apartado 3.1 al 3.8

Análisis y Caracteristicas

Aunque algunos programas fueron similares, todos tuvieron su grado de


complejidad, por lo cual se pudieron utilizar herramientas de los otros programas,
pero cambiando el procedimiento para llegar al resultado deseado, para los
programas con menú prácticamente, fue necesario unir los programas por
separado con una instrucción como while o switch para que se pudieran llamar a
los otros programas cuando se les requería.
17
V. RESULTADOS

Ejercicio 2.1.

Para la realización de este programa se


utilizaron comandos como fprintf, pues el
usuario seria el responsable de ingresar el
número de columnas y de filas de cada una
de las matrices, para posteriormente hacer
la operación de sumar las matrices.

Para poder verificar que el usuario no ingresara un


cero en fila o en columna, se utilizo un comando
while, si se diera el caso de que el usuario ingrese
un cero al momento de pedirle el numero de la o las
columna o de la fila, simplemente el programa
indicará que el diseño de la matriz es incorrecto, y
que los datos se verifiquen.

Una vez que el programa verifico que los valores de


las filas y las columnas son los correctos (en cuanto
a dimensiones) para realizar la suma de las
matrices, se procede al armado de matrices, en el
cual con la ayuda de comandos for e if se le van
asignando los valores que el usuario va
introduciendo. Este paso se repite para el armado
de las dos matrices.

Ya para finalizar se realiza la suma de matrices A y


B, creando una nueva matriz (en este caso llamada
C) en la que se suma cada elemento de la matriz A
con el elemento correspondiente de la matriz B.

El resultado en el ejemplo mostrado fue el que se esperaba


18
Ejercicio 2.2.

Este programa es muy similar al anterior con la


diferencia en la operación a realizar, pues en este
caso se obtiene el resultado de una multiplicación
de matices.

Como primer paso se verifica que el usuario no


introduzca valores cero al momento de pedirle
que ingrese el número de filas y/o columnas.

Una vez que los valores se hayan ingresado y que


estos no cumplas con las características que se
requieran, el programa debe avisarle al usuario
que el diseño de la matriz es incorrecto, para que
se verifiquen los datos, y se continúe con la
ejecución del programa.

Se repiten los paso hasta que se tengan las


características necesarias, lo cual el mismo
programa avisara al usuario si las matrices se
pueden multiplicar, y a su vez pidiéndole que
ingrese los valores que corresponden a cada
matriz.

Para posteriormente indicar como queda la matriz


A y la matriz B, y poder hacer el producto de estas
matrices, el cual una vez calculado, se mostrará al
final.
19
Ejercicio 2.3.

De una lista de “x” cantidad de números al que el usuario da valor, el programa


elige los números al azar a partir de 0 hasta 100 y muestra la lista. Para
posteriormente indicar cuál de los valores que se encuentran en la lista es el
número menor y cual el mayor, esto se logro con el comando min y max.

El programa siempre mostrara el número menor y el mayor, sin importar el tamaño


de la lista, y siempre en el intervalo de 0 a 100.
20
Ejercicio 2.4

Se pretende darle solución a una ecuación de segundo grado, por lo que se


requiere que el usuario ingrese los coeficientes de esta ecuación, e
inmediatamente se realice el acomodo de los mismos.

En el programa se trabaja con el discriminante, porque a demás de saber el valor


de las raíces, se va a obtener el dato sobre qué tipo de raíces son: complejas
conjugadas, reales distintas o reales iguales.

Al ingresar cualquier valor de coeficiente de la ecuación de segundo grado, esta


debe ser resuelta, dando el valor de las raíces e indicando que tipo de raíces son.
21
22
Ejercicio 2.5

Para hacer el cambio de elementos de una matriz a otra se necesita que el usuario
ingrese el tamaño de la matriz, así como los valores que contendrá la misma, y
con el uso de comandos como if, while, for y una copia de la matriz se procede a
jugar con las variables; con los ciclos for, uno que aumente y otro que disminuya
para poder lograr los cambios de elementos.

Ejercicio 2.6.
Para la creación del menú, se deben tener los programas anteriores ya finalizados para que
cuando el usuario indique la opción que desea, no se tenga algún error en la ejecución.

Al ejecutar el programa del menú, de desplegara el menú que se realizo, el cual contiene los
ejercicios anteriores, y otros mas como el de la opción de salir.
Al introducir la opción deseada, el programa nos dirigirá a la opción que el usuario eligió.
23
Ejercicio 2.7

Se muestran 50 elementos de un vector sin ningún tipo de acomodo, para


posteriormente ser ordenados de mayor a menor y de menor a mayor.

Estos 50 elementos son números de entre 0 y 250, que el programa elige al azar.
24
25

VI. ÁNALISIS DE RESULTADOS


Análisis del Ejercicio 2.1

La realización de este programa implico primeramente, recordar las reglas


matemáticas que debemos de seguir para la suma de matrices, todo esto con la
finalidad de plantear un algoritmo que permitirá la realización eficientemente.
Como se puede observar en el desarrollo la primera parte corresponde a la lectura
de datos para dar los tamaños de las matrices que se van a sumar, esta es una
de las partes fundamentales del programa puesto que de acuerdo con la teoría
matemática de los tamaños depende si es posible o no realizar la operación; en
esta primera parte se tuvo un pequeño inconveniente puesto que cuando el
usuario colocaba ceros como valores tanto para las filas y las columnas, el
sistema creaba una matriz de 3x3 asignandole valores automáticos esto era
totalmente ilógico puesto que el valor que el usuario asignaba no correspondia con
lo que se estaba mostrando, esto se corrigio agregando una comparación en un if
para evitar este error y se agrego una alerta para indicarle al usuario que el diseño
de la matriz que trata realizar es incorrecto y vuelva a ingresar valores correctos.
Para el llenado y la asignación de valores a las matrices que se sumarian no se
tuvo ningún inconveniente puesto que se trabajo con bucles que repitieran una
acción en este caso, la asignación de datos a un vecto A y B para después
sumarlas.

Análisis del Ejercicio 2.2

Puesto que la multiplicación de matrices es muy similar a la suma, se hizo una


modificación del algortimo utilizado en el programa 2.1 esto con la finalidad de
agilizar su elaboración. De igual modo la parte más importante de esto es la
formación de las matrices, puesto que deben de ser conformables de acuerdo a
las reglas; en este programa el único unconvenitente que se tuvo fue cuando se
translado a una versión anterior de MatLab respecto en donde fue realizado, es un
punto que el alumno debe considerar al realizar sus programas puesto que si
translada un archivo elaborado en una verisión reciente a una anterior de
momento podría pensar que su programa esta mal hecho, sin embargo esto puede
ser totalmente falso. El alumno tendrá que decidir la versión del software en el
programara para evitar este tipo errores.
26

Análisis del Ejercicio 2.3

El programa realizado ha sido de gran utilidad para practicar el enlace entre


diferentes archivos .m, si bien las funciones para localizar el numero mayor y
menor es bastante sencilla nos lleva a reflexionar a cerca de lo potente que puede
llegar a ser MatLab al contar con este tipo de sentencias que agilizan el trabajo del
ingeniero; en muchas ocasiones por la gran cantidad de información que se utiliza
o simplemente para llevar un orden del algortimo que se esta realizando es de
bastante utilidad generar diferentes archivos .m que contengan alguna función
especifica en este caso la lectura de los datos es pues menester del programador
decidir el camino que más se le facilite para resolver los problemas que se le
presenten.

Análisis del Ejercicio 2.4

La solución de ecuaciones de segundo grado, para un ingeniero suele ser una


tarea básica que realiza día a día para dar solución a problemas aún más
complejos, con este pequeño problema podemos darnos cuenta que la
automatización de tareas simples ayudaran al igeniero a enfocarse totalmente en
la parte más complicada de su problema a resolver. De igual manera el programa
que se realizo nos ha llevado a recordar funciones como sqrt() o roots(), las cuales
son bastante utilizadas en la elaboriación de programas para la solución de
problemas matemáticos.

Análisis del Ejercicio 2.5

Para este programa de cambiar de lugar los números ubicados en una matriz de
nxm siendo llenada por medio de un archivo .m. Lo primero que se pensó fue en el
algoritmo para poder hacer el código adecuado, la primera parte fue sencilla, pedir
los tamaños de n y m al usuario, pero indemiatamente después fue donde
surgieron algunos obstáculos para llevarlo acabo; una de las interrogantes fue que
poner en cada programa (ya que se utilizaron dos) hasta que lo intentamos y en el
primero llenamos la matriz como en los programas anteriores, usando dos ciclos
for para llenar las filas y columas, también se uso la condicional if para dar la
instrucción a los ciclos de llenar los números indicado por el usuario en cuando a
filas y columnas. Todo esto se guardo en una variable, la cual se utilizo en el
27
segundo programa para de esta forma tener los datos en un archivo.m como lo
indicaba la practica, después se volvió a utilizar un ciclo for para poder cambiar el
orden de los números en la matriz.

Análisis del Ejercicio 2.6

En estos programas utilizamos varias herramientas ya que como esta en la


descripción de la práctica se hizo con las instrucciones especificadas, para el
primer caso se dio preferencia a la condicional if; para este ejercicio se decidio
usar un ciclo while para hacerlo infinito, dentro de este de dieron las instrucciones
para que el usuario viera el menú en la pantalla, después se mando una variable
que se igualara al numero indicado por el usuario (opción elegida) y con la
condicional if-else se indicio que si el numero era igual a los establecidos, se
ralizaria el programa indicado, parte de eso esta instrucción se uso para
establecer las reglas matemáticas para las operaciones con matrices, se
realizaron los cilos for para pedir los valores de las mismas.

Para el segundo programa fue hacer los mismo solo que en esta ocacion con la
instrucción switch-case, con la intención de que aparecieran todos los casos
posibles con su respectivo programa, las instrucciones if,for y while se usaron
nuevamente para las relgas de operaciones, llenar las matrices y hacer los ciclos
infinitos.

El ultimo programa fue un poco tardado ya que al principio ninguno de nosotros


conocía la función menú, pero gracias a la investigación del equipo se pudo
encontrar información confiable para resolver el programa después de ver en un
video en el cual se explicaba como se utilizaba la función buscada, se usaron los
anteriores programas y se realizo un nuevo scrip con el nombre de MENU en
sdonde se pusieron las instrucciones para usar los otros programas

Análisis del Ejercicio 2.7

Este programa fue muy sencillo, primero se dio la instrucción para igualar
variables a 50 (numeros que aparecieron en el programa) 0 y 250 (valores
deseados en este ejercicio) despues con la instrucción rand se lleno el vector con
valores aleatorios entre los ultimos dos valores y para finalizar se usaron las
instrucciones sort y flipud para ordenar los numeros del vexctor de menor a mayor
y de mayor a menor respectivamente.
28
VII. CONCLUSIONES
 Bernardino Duran Efrén.
MatLab es un software que ofrece un entrono bastante práctico debido a las
funciones que como lenguaje permite al programador plasmar los
algoritmos de una manera sencilla, también al ser MatLab un lenguaje que
ofrece como característica principal la facilidad de utilizar vectores, esto
permite por consiguiente el manejo de matrices haciendo sin duda que sea
la plataforma correcta para la solución de problemas de ingeniería o
científicos creando una ventaja superior respecto a otros lenguajes de
programación. Esta práctica me lleva a concluir, después de los pequeños
problemas que surgieron en su elaboración, que como alumnos es muy
importante que tengamos iniciativa propia para mantener el conocimiento
del manejo de herramientas computacionales como es el uso de la
programación, puesto que en muchas ocasiones lo llegamos a olvidar y
esto va generando deficiencias o disminuyendo las capacidades que
tendremos al ser profesionistas.
 Estrada Rosales Aydee Biyu.
MATLAB es una de las herramientas tenológicas que permite de una forma
práctica la comprensión de diferentes conceptos y asi mismo la fácil
resolución de problemas, que en forma manual la solución para los mismos
problemas puedieran llegar a ser difícil o tardada. Con la utilización
adeacuada de comandos se pudieron obtener los resultados que se
esperaban y a su vez se pudieron recordar algunas herramientas que
MATLAB ofrece, ya que es un programa para realizar cálculos numéricos
que permite el manejo de vectores y matrices tanto en números reales
como en numeros complejos, asi como hacer operaciones como la suma, la
multiplicación, o el jugar con los valores que contengan las matrices o los
vectores; aunque se presentaron algunas dificultades, estas se pudieron
sobrellevar con la colaboración de los integrantes del equipo, pues fue
necesario investigar algunos de los comandos que se necesitaban para
29
resolver la practica, y que no se tenial tan claros. El investigar y aclara las
dudas que hiban surgiendo, dio como resultado la correcta realización de
cada uno de los programas que se solicitaba, asi como la comprobación de
cada uno de los programas, para poder cerciorar que los procedimientos
que se siguieron y los resultados que se obtenial eran los correctos.
 Godínez Pereda Daniel.
En esta práctica pudimos recordar como usar el programa correctamente,
hay muchas herramientas que son para facilitar las cosas como lo son los
ciclos for, while, las funciones de usuario etc. Las cuales nos permiten
simplificar nuestro trabajo, ya que la maquina hace lo que se le indica,
desde resolver un problema de matrices, hacer graficas e incluso simular
diagramas en lazo cerrado y abierto. Sin duda aprender algo así es muy
importante en la rama de ingeniería.
 Hernández Guerrero Rolando.
Con el desarrollo de esta primera practica, se cumple el objetivo planteado,
el cual es retomar de nuevo los conocimientos en Matlab, desenvolvernos
en la cuetion de la programación de este sistema, ya que, con los diferentes
ejercicios planteados, pudimos retomar, reafirmar y comprender el
funcionaminto de los sistemas matemáticos a la hora de la programación,
de igual manera, reafirmar el manejo de este sistema computacional, que
es de gran ayuda, para la comprensión de cualquier sistema matemático.
Todo esto nos llevo a comprender el funcionamiento de cada comando
utilizado en cada programa, reafirmarlos y reforzarlos para practicas
posteriores.
 Oviedo Ángeles Carlos Herón.
En esta practica, con uso de una herramienta poderosa, la cual es el
software MATLAB se pudo realizar y reafirmar conocimientos previos de
programación y de matrices. Combinados, primero para usar las setencias
mas usuales y universales, como los son el IF, WHILE, FOR, SWITCH, en
las cuales se deben combinar entre si para generar códigos complejos para
hacer soluciones simples, como lo es el ingreso del tamaño de una matriz,
30
la cual si no se especifica que no puede existir una de tamaño 0x2 o 3x0, lo
cual es un error. Incluso muchas veces se presentaron errores, ya que
tenemos fijada la mente en la postura de programador, lo cual, es muy
bueno, pero igual debemos tener la mentalidad de usuario, el cual
desconoce y se le debe guiar de manera muy detallada, precisa y sencilla.
Y sin olvidar que nuestros programas deben llevar una lógica y secuencia
bien definida, con comentarios para que otros programadores puedan
entender fácilmente. Matlab es muy poderoso, ya que nos llega a simplificar
mucho código, como el algoritmo para multiplicar matrices, en donde aquie,
en una línea simple lo podemos declara, siempre y cuando se den las
condiciones necesarias. O incluso, nos permite evitar todo el código del
método de la burbujar al buscar mayor y menor numero en una lista, al
tener un comando propio el cual nos lo da por pantalla. Sin duda este
software es de gran utilidad para la materia de Teoria del Control II, y mas
para el análisis de sistemas, sin olvidar, la didáctica de programación que
debemos dominar.
31
VIII. REFERENCIAS Y BIBLIOGRAFÍA

Arellano, M. A. (2013). Matlab y Simulik . UCH.

Javier García de Jalón, J. I. (2015). Aprende Matlab 7.0 como si estuvieras en


primero. España: Universisdad Politecnica de Madrid.

Libano, R. E. (2010). Apuntes De Matlab Una Introducción Rápida Pero No Trivial.


España: Universidad de Sevilla.

Miranda, R. G. (2006). Introduccion a la programacion en MATLAB. AFPL.

Nogueras, G. B. (2013). Introducción a Matlab y Octave "Notas". Pearson


Educación.

wikibooks. (25 de Abril de 2015). wikibooks. Obtenido de


https://es.wikibooks.org/wiki/Matlab/L%C3%ADnea_de_comandos

También podría gustarte