Está en la página 1de 18

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA

FACULTAD DE INGENIERÍA MEXICALI

Práctica de Laboratorio

Vigencia a partir del: Semestre 2023-1


Clave de
Plan de
Programa Educativo Unidad de Nombre de la Unidad de Aprendizaje
Estudios
Aprendizaje
Tronco Común 2019-2 33534 Programación y Métodos Numéricos
Duración
Práctica
Laboratorio de: Programación y Métodos Numéricos (Horas)
No.

Nombre de la
5 práctica:
Funciones y arreglos 2

1. Introducción
Una función es un bloque de código que realiza una tarea específica. Una función es

una porción de programa identificable mediante un nombre, que realiza

determinadas tareas bien definidas por un grupo de sentencias sobre un conjunto de

datos.

Existen funciones internas del propio programa Octave, como por ejemplo las de las

funciones trigonométricas que ya están definidas a trabajar como lo que son.

Octave te permite definir funciones propias creadas por el usuario a fin de utilizarlas en

programas posteriores para ayudar a minimizar el código de un programa en que se

requiera ese procedimiento.

ELABORÓ REVISÓ REVISÓ AUTORIZÓ

MC. Natalia Rodríguez LSC. Jonathan Leo Dra. Wendolyn Elizabeth Dra. Araceli Celina Justo
Castellón Sánchez Britton Aguilar Salinas López
MSC. Elvia Cristina Presidente de la Academia
Encargada de Etapa Básica Dirección
Márquez Salgado de Programación
PG-SUB-03-RC02 Rev.0
Vigencia: 7-Ene-20

Página 1 de 18
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
FACULTAD DE INGENIERÍA MEXICALI

Práctica de Laboratorio

Las funciones definidas por el usuario se almacenan como archivos –m y puedes

acceder a ellas si están almacenadas en el directorio actual (Moore, 2007).

En la presente práctica el estudiante realizará y utilizará funciones definidas utilizando el

software OCTAVE.

2. Objetivo (competencia)
Elaborar programas con funciones y arreglos unidimensionales y bidimensionales

utilizando el software Octave para la solución de problemas, con organización y

honestidad.

3. Fundamento
Las operaciones que realiza la función son siempre las mismas, pero los datos

pueden variar cada vez que se llame a la función. Al llamar a una función se ejecutan

las sentencias que la componen y, una vez completada la ejecución de la función, la

ejecución del programa continúa desde el punto en que se hizo la llamada a la

función.

Función sencilla

Las funciones definidas por el usuario consisten en un nombre, una entrada

proporcionada por el usuario y una salida calculada. También existen las funciones

que no regresan valor y no reciben entrada de datos.

Las funciones definidas por el usuario se crean en archivos-m. Cada una debe

comenzar con una línea de definición de función que contenga

✔ la palabra function,

✔ una variable que defina la salida de función,

✔ un nombre de función, y

✔ una variable que se use para el argumento de entrada.

PG-SUB-03-RC02 Rev.0
Vigencia: 7-Ene-20
Página 2 de 18
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
FACULTAD DE INGENIERÍA MEXICALI

Práctica de Laboratorio

Sintaxis
function salida=mi_función(entrada)

Operaciones

endfunction

Ejemplo
function pesos= convertir(dlls)
pesos=dlls*19.20
endfunction

✔ La función se llama pesos,


✔ toma la entrada del usuario
dentro de paréntesis,
✔ calcula un resultado.

En otro script se puede mandar llamar la función creada, por ejemplo:

dlls=input("ingresa cantidad en dólares ");

convertir(dlls)

Desde la línea de comando de Octave se puede ejecutar la función ingresando la

cantidad de dólares que se desea convertir, por ejemplo:

>>convertir(1000)

ans = 19200

Función con entrada y salidas múltiples

Las funciones pueden requerir múltiples entradas y pueden regresar múltiples salidas.

PG-SUB-03-RC02 Rev.0
Vigencia: 7-Ene-20
Página 3 de 18
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
FACULTAD DE INGENIERÍA MEXICALI

Práctica de Laboratorio

Sintaxis

Function [salida 1, salida2]=mi_función(entrada 1, entrada2)


Operaciones

endfunction

Arreglos

Un arreglo se define como un grupo de datos homogéneos, ordenados y finitos.

Homogéneos porque todos los datos almacenados en el arreglo deben ser del mismo

tipo, ordenados porque se encuentran en posiciones consecutivas de memoria y finitos

porque siempre debe ser una cantidad de elementos predefinidos desde un principio.

Por esta última razón estos también se definen como estructuras estáticas.

Los arreglos se dividen en:

arreglos Unidimensionales (también conocidos como vectores)

arreglos Bidimensionales (también conocidos como matrices)

OCTAVE y MATLAB utilizan arreglos como estructura fundamental para el

almacenamiento y manipulación de datos. Los tipos de arreglos que utilizan pueden

ser de diferentes dimensiones según sea la necesidad del usuario y cabe mencionar

que los arreglos pueden contener tanto cadenas como números.

Vectores

>> x=[1 -2 30 56]; es un vector de 1 x 4

>> x=[1; -2; 30; 56;] es un vector de 4 x 1 es como si fuera la transpuesta.

El punto y coma es comenzar una nueva línea dentro del vector, se vuelve una fila

Matrices
PG-SUB-03-RC02 Rev.0
Vigencia: 7-Ene-20
Página 4 de 18
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
FACULTAD DE INGENIERÍA MEXICALI

Práctica de Laboratorio

Las matrices son un arreglo rectangular de elementos ordenados en filas m y

columnas n. Los elementos se representan como y se encuentran en la i-ésima fila y

en la j-ésima columna.

Las matrices se aplican en todas las áreas de conocimiento abarcando muchas

aplicaciones, una de las más importantes es en la solución de sistemas de ecuaciones

lineales.

Los métodos más utilizados para resolver sistemas de ecuaciones lineales son: Suma

y resta, Gauss, Cramer, Gauss-Jordan, entre otros. El programa Octave cuenta con una

función (rref) que facilita la resolución de sistemas de ecuaciones lineales.

Ejemplo de una matriz de 3 x 3

>> A= [1 2 3; -2 -6 9; 0 4 7 ]
A=
1 2 3
-2 -6 9
0 4 7

>> a= A(2,3) Busca el elemento que está en la posición 2, 3(renglón 2 y columna 3)


a= 9

>> a= A(:,3) Imprime la columna 3 de todas las filas


a=
3
9
7

PG-SUB-03-RC02 Rev.0
Vigencia: 7-Ene-20
Página 5 de 18
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
FACULTAD DE INGENIERÍA MEXICALI

Práctica de Laboratorio

a= A(2,: ) Imprime la fila 2 de todas las columnas


a=

-2 -6 9
Función rref
>> rref(A) Resuelve la matriz A
ans =
1 0
0 1
Ejemplo: Se plantea resolver el siguiente sistema de ecuaciones:
5𝑥1 − 9𝑥2 + 8. 6𝑥3 + 45𝑥4 =− 73
− 6. 7𝑥1 + 15𝑥2 + 17𝑥3 + 90𝑥4 = 46
− 105𝑥1 + 32𝑥2 + 45𝑥3 + 66𝑥4 = 21
22𝑥1 − 30𝑥2 + 85𝑥3 − 900𝑥4 =− 1

>>A=[5 -9 8.6 45; -6.7 15 17 90; -105 32 45 66; 22 -30 85 -900]


A=
5.0000 -9.0000 8.6000 45.0000
-6.7000 15.0000 17.0000 90.0000
-105.0000 32.0000 45.0000 66.0000
22.0000 -30.0000 85.0000 -900.0000

>> b=[-73; 46; 21; -1]


b=
-73
46
21
-1

>> C= rref([A b])


C=

1.0000 0 0 0 1.1410
0 1.0000 0 0 6.3895
0 0 1.0000 0 -1.0055
0 0 0 1.0000 -0.2789

PG-SUB-03-RC02 Rev.0
Vigencia: 7-Ene-20
Página 6 de 18
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
FACULTAD DE INGENIERÍA MEXICALI

Práctica de Laboratorio

>> ones (5) Genera una matriz de 5 x 5 con 1’s


ans =
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1

>> ans.*5 multiplica la respuesta anterior por 5


ans =
5 5 5 5 5
5 5 5 5 5
5 5 5 5 5
5 5 5 5 5
5 5 5 5 5
Operaciones con matrices
>> A= [1,0; 2 -1]
A=
1 0
2 -1
>> B=[-1 2;3 1]
B=
-1 2
3 1

>> A.*B Así es como lo hacemos comúnmente


ans =
-1 0
6 -1

>> A*B Hace la multiplicación matricial como en álgebra


ans =
-1 2
-5 3

PG-SUB-03-RC02 Rev.0
Vigencia: 7-Ene-20
Página 7 de 18
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
FACULTAD DE INGENIERÍA MEXICALI

Práctica de Laboratorio

Transposición

La matriz transpuesta de una matriz A de dimensión m × n es una matriz de n × m en

la que el elemento (i, j) ha pasado a la posición (j, i), es decir se intercambian las filas y

columnas de A. Por ejemplo, la matriz transpuesta de:

1 2 3 4 es 1 5
5 6 7 8 2 6
3 7
4 8

En Octave para obtener la transposición se agrega el apóstrofe (’) al nombre de la


matriz.
>> A=[1 2 3 4; 5 6 7 8]
A=
1 2 3 4
5 6 7 8

>> B= A'
B=
1 5
2 6
3 7
4 8

find
El comando find busca una matriz e identifica cuáles elementos en dicha matriz

satisfacen un criterio dado.

Ejemplo:

El control de calidad requiere que cierto material tenga 70 cm de ancho por lo

menos.

material=[69 81 70 56 77];
aceptar=find(material>=70) % te arrojará la posición de los elementos.
PG-SUB-03-RC02 Rev.0
Vigencia: 7-Ene-20
Página 8 de 18
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
FACULTAD DE INGENIERÍA MEXICALI

Práctica de Laboratorio

material(aceptar) % para saber los elementos de la matriz.

aceptar =

2 3 5
ans =

81 70 77

>>eye(3) forma la matriz unidad de tamaño (3x3)


Diagonal Matrix
1 0 0
0 1 0
0 0 1

[m,n]=size(A) devuelve el número de filas y de columnas de la matriz A. Si la matriz es


cuadrada basta recoger el primer valor de retorno

>> a=[1 2 1;3 2 5;6 7 5];


>> [m,n]=size(a)
m=3
n=3

n=length(x) calcula el número de elementos de un vector x


>> b=[1;2;3;4;5;]
b=
1
2
3
4
5
>> n=length(x)
n=5
A=diag(x) forma una matriz diagonal A cuyos elementos diagonales son los elementos
de un vector ya existente x.

PG-SUB-03-RC02 Rev.0
Vigencia: 7-Ene-20
Página 9 de 18
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
FACULTAD DE INGENIERÍA MEXICALI

Práctica de Laboratorio

>> x=[1;2;5]

x=
1
2
5

>> A=diag(x)
A=

Diagonal Matrix
1 0 0
0 2 0
0 0 5

x=diag(A) forma un vector x a partir de los elementos de la diagonal de una matriz ya


existente A.

>> A=[3 4 5;7 8 9; 2 6 1]


A=

3 4 5
7 8 9
2 6 1

>> x=diag(A)
x=
3
8
1

Para ver el último elemento de una matriz podemos usar el direccionamiento end:
A=
3 4 5
7 8 9
2 6 1

PG-SUB-03-RC02 Rev.0
Vigencia: 7-Ene-20
Página 10 de 18
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
FACULTAD DE INGENIERÍA MEXICALI

Práctica de Laboratorio

>> A(end,end)
ans = 1

max(x) En vectores regresa el valor mayor en x. En matrices regresa un Vector con el


elemento máximo de cada columna.
>> x=[9;18;2]
x=
9
18
2

>> max(x)
ans = 18

>> n=[7 8 9; 1 29 3]
n=

7 8 9
1 29 3

>> max(n)
ans =

7 29 9

min(x) En vectores regresa el valor menor en x. En matrices regresa un Vector con el


elemento menor de cada columna.
>> x=[9;18;2]
x=
9
18
2

>> min(x)

PG-SUB-03-RC02 Rev.0
Vigencia: 7-Ene-20
Página 11 de 18
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
FACULTAD DE INGENIERÍA MEXICALI

Práctica de Laboratorio

ans = 2

>> n=[7 8 9; 1 29 3]
n=
7 8 9
1 29 3

>> min(n)
ans =

1 8 3
sum(x) En vectores regresa la suma de los valores en x. En matrices regresa un vector
con la suma de los elementos de cada columna.
>> x=[9;18;2]
x=
9
18
2

>> sum(x)
ans = 29

>> n=[7 8 9; 1 29 3]
n=
7 8 9
1 29 3

>> sum(n)
ans =

8 37 12

prod(x) En vectores regresa el producto de los valores en x. En matrices regresa un


vector con el producto de los elementos de cada columna.

>> x=[9;18;2]

PG-SUB-03-RC02 Rev.0
Vigencia: 7-Ene-20
Página 12 de 18
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
FACULTAD DE INGENIERÍA MEXICALI

Práctica de Laboratorio

x=
9
18
2

>> prod(x)
ans = 324

>> n=[7 8 9; 1 29 3]
n=

7 8 9
1 29 3

>> prod(n)
ans =
7 232 27
mean(x) En vectores regresa la media de los valores en x. En matrices regresa un vector
con la media de los elementos de cada columna.

>> x=[9;18;2]
x=

9
18
2

>> mean(x)
ans = 9.6667

>> n=[7 8 9; 1 29 3]
n=

7 8 9
1 29 3

PG-SUB-03-RC02 Rev.0
Vigencia: 7-Ene-20
Página 13 de 18
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
FACULTAD DE INGENIERÍA MEXICALI

Práctica de Laboratorio

>> mean(n)
ans =
4.0000 18.5000 6.0000

sort(x) Ordena el vector en forma ascendente. Devuelve una matriz con los elementos
de cada columna ordenados de forma ascendente.

>> x=[9;18;2]
x=

9
18
2

>> sort(x)
ans =

2
9
18

>> n=[7 8 9; 1 29 3]
n=

7 8 9
1 29 3

>> sort(n)
ans =
1 8 3
7 29 9

4. Procedimiento (descripción)
A) Equipo necesario Material de apoyo
Computadora Práctica en su dispositivo electrónico

PG-SUB-03-RC02 Rev.0
Vigencia: 7-Ene-20
Página 14 de 18
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
FACULTAD DE INGENIERÍA MEXICALI

Práctica de Laboratorio

Software Octave

b) Desarrollo de la práctica
Resuelva los siguientes ejercicios desarrollando su programación en un editor del

software Octave:

Arreglos (uso de matrices, ciclos, etc)

1) Guardar en un vector las calificaciones de 15 alumnos, calcule la calificación

promedio del grupo, además cuente los estudiantes que obtuvieron

calificaciones arriba del promedio del grupo. Imprima cuál fue la calificación

mayor y cuál fue la calificación menor. Utilice las funciones min, max, mean.

2) En una matriz se tienen registradas las ventas de cinco empleados durante cinco

días de la semana. Se requiere determinar cuál fue la venta mayor realizada.

Deberá imprimir la suma de todas las ventas almacenadas en la matriz.

3) Una compañía de transporte cuenta con cinco choferes de los cuales se

conoce: nombre, horas trabajadas cada día de la semana (6 días) y sueldo por

hora. Realice un programa que calcule el total de horas trabajadas a la semana

para cada trabajador. Calcule el sueldo semanal para cada uno de ellos.

Calcule el total que pagará la empresa. Imprima el nombre del trabajador que

labora más horas el día lunes. Imprima un reporte con todos los datos anteriores.

Funciones (function)

4) Una empresa dedicada a ofrecer banquetes tiene las siguientes tarifas: el costo

de platillo por persona es de $95, pero si el número de personas es mayor a 200

pero menor o igual a 300, el costo es de $85. Para más de 300 personas el costo

por platillo es de $75. Hacer un programa que mande a una función la cantidad

PG-SUB-03-RC02 Rev.0
Vigencia: 7-Ene-20
Página 15 de 18
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
FACULTAD DE INGENIERÍA MEXICALI

Práctica de Laboratorio

de personas y determine el presupuesto que se debe presentar a los clientes que

deseen realizar un evento.

5) La secretaría de salud requiere un programa que permita determinar que tipo de

vacuna (A, B o C) debe aplicar a una persona, considerando que si es mayor de

70 años se le aplica la tipo C, si tiene entre 16 y 69 años se le aplica la B; si es

menor de 16 años se le aplica la tipo A. Deberá enviar la edad de la persona a

una función y determinar el tipo de vacuna que se le aplicará.

6) Elaborar una función que reciba las horas trabajadas y el pago por hora y

permita determinar el sueldo semanal de un trabajador, considerando que a

partir de la hora número 41 y hasta la 45, cada hora se le paga el doble, de la

hora 46 a la 50, el triple, y que trabajar más de 50 horas no está permitido.

c) Cálculos (si aplica) y reporte

El formato del reporte deberá incluir lo siguiente: nombre del alumno y matrícula, fecha

de entrega del reporte. (Valor 5 puntos).

1. Objetivo: (Competencia) de la práctica. (Valor 5 puntos).

2. Portada: Nombre de la institución, semestre, número y nombre de la práctica,

Explicación de su código: Colocarán el código de su programa con la

explicación de funcionamiento.(Valor 30 puntos).

3. Resultados: Colocarán las capturas de pantalla de cada ejercicio solicitado en

la práctica corroborando que su programa se ejecutó correctamente. Nota: Las

capturas de pantallas serán tanto de la codificación como de la ejecución y

también se tiene que anexar el archivo.m. (Valor 40 puntos).

PG-SUB-03-RC02 Rev.0
Vigencia: 7-Ene-20
Página 16 de 18
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
FACULTAD DE INGENIERÍA MEXICALI

Práctica de Laboratorio

4. Conclusiones: Es una explicación breve de análisis de los resultados obtenidos.

Señala las observaciones más importantes y las comparaciones que pudiera

tener respecto a otros métodos. No se trata de la opinión personal. (Valor 10

puntos).

5. Correcta ortografía y redacción. (Valor 10 puntos).

5. Resultados y conclusiones

Leer el punto anterior; 3. Resultados y 4. Conclusiones.

6. Anexos

Procedimiento para ejecutar el programa


1. Abrir el programa OCTAVE.

2. Abrir un New Script, donde se encuentra indicado.

PG-SUB-03-RC02 Rev.0
Vigencia: 7-Ene-20
Página 17 de 18
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
FACULTAD DE INGENIERÍA MEXICALI

Práctica de Laboratorio
Escribir todo lo que se le pidió en el procedimiento de su práctica y guardar el script con el
nombre deseado sin espacios (con terminación .m).

7. Referencias

Moore, H. (2007). MATLAB para ingenieros (primera edición). Pearson Educación.

PG-SUB-03-RC02 Rev.0
Vigencia: 7-Ene-20
Página 18 de 18

También podría gustarte