Unidad I Enero 2021

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

UNIDAD I

Herramientas de programación
para la solución de problema
con computadoras.

Algoritmos
Diagramas de Flujo y
Pseudocódigo

1
Herramientas
Para implementar la solución de un problema mediante el uso de una
computadora es necesario establecer una serie de pasos que permitan
resolver el problema, a este conjunto de pasos se le denomina algoritmo,
el cual debe tener como característica final la posibilidad de transcribirlo
fácilmente a un lenguaje de programación.

2
Algoritmo:
Un algoritmo, aparte de tener la facilidad para transcribirlo, debe ser:

1. Preciso. Debe indicar el orden en el cual debe realizarse cada uno de los pasos que
conducen a la solución del problema.
2. Definido. Esto implica que el resultado nunca debe cambiar bajo las mismas
condiciones del problema, éste siempre debe ser el mismo.
3. Finito. No se debe caer en repeticiones de procesos de manera innecesaria; deberá
terminar en algún momento.

Además de esto, se debe considerar que el algoritmo, que posteriormente se


transformará en un programa de computadora, debe considerar las siguientes partes:
 Una descripción de los datos que serán manipulados.
 Una descripción de acciones que deben ser ejecutadas para manipular los datos.
 Los resultados que se obtendrán por la manipulación de los datos.

Las herramientas o técnicas de programación que más se utilizan y que se emplean para
la representación de algoritmos son:
1. Pseudocódigo.
2. Diagramas de flujo.
3. Diagramas Nassi-Schneiderman (N/S).

3
Pseudocódigo
Sin duda, en el mundo de la programación el pseudocódigo es una de las herramientas
más conocidas para el diseño de solución de problemas por computadora.

Esta herramienta permite pasar casi de manera directa la solución del problema a un
lenguaje de programación específico.

El pseudocódigo es una serie de pasos bien detallados y claros que conducen a la


resolución de un problema.

Por ejemplo:
El pseudocódigo para determinar el volumen de una caja de dimensiones A, B y C se puede
establecer de la siguiente forma:
Pseudocódigo
1. Inicio.
2. Leer las medidas A, B y C.
3. Realizar el producto de A * B * C y guardarlo en V
V=A*B*C
4. Escribir el resultado V.
5. Fin.

Como se puede ver, se establece de forma precisa la secuencia de los pasos por realizar;
además, si se le proporcionan valores a las variables A, B y C, se obtendrá siempre un
resultado del volumen y, por consiguiente, se cuenta con un final.
4
Diagramas de Flujo Símbolo Significado
Terminal. Indica comienzo o final de un
Los diagramas de flujo son una herramienta programa, subprograma o módulo.
que permite representar visualmente qué
operaciones se requieren y en qué secuencia Captura y emisión de datos. Entrada o
salida de información desde o hacia la
se deben efectuar para solucionar un problema computadora
dado. Proceso. Cualquier proceso interno
realizado por la computadora
como asignación de valor a variables,
Por consiguiente, un diagrama de flujo es la operaciones matemáticas, etc.
representación gráfica mediante símbolos Decisión. Compara 2 datos y dependiendo
especiales, de los pasos o procedimientos de del resultado lógico (true o false) se toma la
decisión de seguir un camino u otro.
manera secuencial y lógica que se deben
Iteración. Indica que una instrucción o
realizar para solucionar un problema dado. grupo de instrucciones deben ejecutarse
varias veces.

Los diagramas de flujo desempeñan un papel Conector. Indica el enlace de 2 partes de un


diagrama dentro de la misma pagina.
vital en la programación de un problema, ya
que facilitan la comprensión de problemas Conector. Indica el enlace de 2 partes de un
diagrama en paginas diferentes.
complicados y sobre todo aquellos en que sus
procesos son muy largos; generalmente, los Salida impresa. Indica la presentación de
diagramas de flujo se dibujan antes de uno o varios resultados en forma impresa

comenzar a programar el código fuente, que


se ingresará posteriormente a la computadora. Flujo de datos. Indica el sentido de
ejecución de las operaciones

5
Solución de problemas

Estructuras - Estructuras Secuenciales


de - Estructuras Selectivas
Control - Estructuras Repetitivas

6
Estructuras de Control
Sin importar qué herramienta o técnica se utilice para la solución de un problema
dado, ésta tendrá una estructura, que se refiere a la secuencia en que se realizan
las operaciones o acciones para resolver el problema; esas estructuras pueden ser:

 Secuenciales
 Selectivas (decisión)
 Repetitivas (ciclos)

Debe tenerse presente que la solución de un problema dado mediante el uso de


una computadora es un sistema, el cual debe tener una entrada de datos, los
cuales serán procesados para obtener una salida, que es la solución o información
que se busca.

7
Estructuras Secuenciales
En este tipo de estructura las instrucciones se realizan o se ejecutan una después de
la otra y, por lo general, se espera que se proporcione uno o varios datos, los cuales
son asignados a variables para que con ellos se produzcan los resultados que
representen la solución del problema que se planteó.

Los algoritmos tienen como fin actuar sobre los datos proporcionados por el usuario, a
los que se les aplican procesos con el fin de generar la información o un resultado.

El algoritmo es realmente la representación funcional de un sistema.

Para resolver un problema mediante la utilización de cualquier herramienta es


necesario entender y establecer con qué datos se cuenta, los procesos que se deben
realizar y la secuencia apropiada para obtener la solución que se desea.

8
Ejemplo 1
Se desea implementar un algoritmo para obtener la suma de dos números cualesquiera.
Para poder obtener la suma es necesario contar con dos números, el proceso a realizar es
precisamente la suma de éstos, la cual se asigna a una variable que es el resultado del
proceso.

Inicio del
Inicio Proceso

Leer
A, B Números
Pseudocódigo AyB

Sumar números y
S=A+B asignar resultado
a la variable S

Mostrar Resultado
S
de la suma S

Fin del
Fin Proceso

9
Ejemplo 2
Una empresa constructora vende terrenos con la forma A de la figura.
Realice un algoritmo y represéntelo mediante un diagrama de flujo y el pseudocódigo para
obtener el área respectiva de un terreno de medidas de cualquier valor.
Para resolver este problema se debe identificar que la forma A
está compuesta por dos figuras: un triángulo de base B y de altura
(A - C); y por otro lado, un rectángulo que tiene base B y altura C.
Con estas consideraciones se pueden establecer las variables que
se requieren para implementar el algoritmo de solución.
Diagrama de Flujo

Inicio Inicio del proceso

A,B,C Leer alturas y base

AT=(B*(A-C)/2 Calcular área del


triángulo
Pseudocódigo AR=B*C Calcular área del
1. Inicio rectángulo
2. Leer A,B,C Área=AT+AR Obtener área total
3. Hacer AT=(B*(A-C)/2
4. Hacer AR=B*C
5. Hacer Area=AT+AR Área mostrar área total
6. Escribir Area
7. Fin Fin fin del proceso
10
Estructuras Selectivas
En los algoritmos para la solución de problemas donde se utilizan estructuras selectivas se
emplean frases que están estructuradas de forma adecuada dentro del pseudocódigo. En el
caso del diagrama de flujo, también se estructura de una forma semejante.

 Sentencia if-end
Cuando la condición se cumple tomara el camino del SI o verdadero y ejecuta el bloque
asignado en este camino, si la condición no se cumple se ira por el camino NO o falso y se
ejecuta el bloque de dicho camino, después de ejecutar las instrucciones que se
encuentren en el camino, saldrá de la estructura e ira a ejecutar las instrucciones que se
encuentren por fuera y a continuación de ella.

Estructura if simple Estructura if con doble opción

11
Ejemplo 3
Se desea implementar un algoritmo para determinar cuál de dos valores proporcionados
es el mayor. Representarlo con pseudocódigo y diagrama de flujo.

DIAGRAMA DE FLUJO

Inicio

PSEUDOCÓDIGO Leer los


A, B valores A y B

V F Comparar si valor
A>B de A es Mayor que B

Si es Verdad, Si es Falso,
Asignar el valor M=A M=B Asignar el valor
de A en M de B en M

Mostrar el valor
mayor guardado en M
M

Fin

12
Estructura selectiva anidada

13
Ejemplo 4
Se requiere determinar cuál de tres cantidades proporcionadas es la mayor. Realizar su
respectivo algoritmo y representarlo mediante un diagrama de flujo, y un pseudocódigo.

DIAGRAMA DE FLUJO

PSEUDOCÓDIGO

14
Ejemplo 5
Una compañía de viajes cuenta con tres tipos de autobuses (A, B y C), cada uno tiene un
precio por kilómetro recorrido por persona, los costos respectivos son $2.0, $2.5 y $3.0. Se
requiere determinar el costo total y por persona del viaje considerando que cuando éste se
presupuesta debe haber un mínimo de 20 personas, de lo contrario el cobro se realiza con
base en este número límite. DIAGRAMA DE FLUJO

PSEUDOCÓDIGO

15
Estructuras repetitivas o de ciclo
Cuando se requiere que un proceso se efectúe de manera cíclica, se emplean estructuras que
permiten el control de ciclos, esas estructuras se emplean con base en las condiciones
propias de cada problema

Sentencia for-end for contador=inicio : final


Desde V=Vi : Vf bloque
Es aquella en el que el numero de end
iteraciones de bucle o ciclo es for contador=inicio : incremento : final
bloque
determinado directamente, por lo tanto Bloque end
se sabe en que valor debe comenzar y en for contador=Vector Valores
que valor debe terminar el contador. bloque
end

Sentencia while-end
Se inicia y continua mientras la condición
se cumple (sea verdadera) y finaliza
cuando la condición no se cumple (sea
falsa). Se acostumbra a colocar antes del
ciclo la inicialización de la variable de la
condición, para que esta se cumpla al
menos la primera vez.

16
Ejemplo 6
Se requiere un algoritmo para obtener la suma de diez cantidades mediante la utilización
de un ciclo “Desde”. Realice el diagrama de flujo y el Pseudocódigo .

DIAGRAMA DE FLUJO

Inicio Se inicia el proceso

Se inicializa en
SU=0 cero el acumulador

PSEUDOCÓDIGO Se repite el ciclo desde


C=1:10 C=1, hasta C=10, en
incrementos de 1
1. Inicio
2. Hacer SU=0 Se Lee el valor
3. Desde C=1:10 VA por sumar
Leer VA
Hacer SU=SU+VA Se acumula el
Fin Desde SU=SU+VA valor leído
4. Escribir SU
5. fin
Se imprime la
SU suma

Fin Fin del proceso

17
Ejemplo 7
Se requiere un algoritmo para obtener la edad promedio de un grupo de N alumnos.
Realice el diagrama de flujo y el pseudocódigo.

DIAGRAMA DE FLUJO

Se inicia el proceso
Inicio

Se inicializa en
SU=0 cero el acumulador

PSEUDOCÓDIGO
Se lee el numero de
NU alumnos a contabilizar
1. Inicio
Se repite el ciclo desde
2. Hacer SU=0 C=1, hasta C=NU, en
3. Leer NU incrementos de 1 C=1:NU Se obtiene la
edad promedio
4. Desde C=1:NU
Leer ED PR=SU/NU
Se Lee la edad
Hacer SU=SU+ED del alumno C
ED
Fin Desde
5. Hacer PR=SU/NU Se acumula la PR
Se imprime
la edad
6. Escribir PR edad leída SU=SU+ED promedio
7. fin
Fin Fin del
proceso

18
Ejemplo 8
Se requiere un algoritmo que pida de entrada números positivos al usuario, y los vaya
sumando y contando, y al final muestre de salida:
- La cantidad de números introducidos.
- La suma de todos ellos.
- El promedio de los mismos.
(La captura de ellos terminará cuando se teclea un número negativo o cero).

DIAGRAMA DE FLUJO
PSEUDOCÓDIGO

1. Inicio
2. Hacer S=0
3. Hacer C=0
4. Leer N
5. Mientras N>0
Hacer S=S+N
Hacer C=C+1
Leer N
Fin Mientras
5. Hacer P=S/C
6. Escribir C
7. Escribir S
8. Escribir P
7. Fin

19
Ejemplo 9
Elabore un algoritmo que dado un entero n > 1, calcule e imprima los elementos
correspondientes a la conjetura de Ullman, que consiste en lo siguiente:
Empiece con cualquier entero positivo.
Si es par, divídalo entre 2; si es impar multiplíquelo por 3 y agréguele 1.
Obtenga enteros sucesivamente repitiendo el proceso.
Al final se obtendrá el número 1, independientemente del entero inicial. Por ejemplo,
cuando el entero inicial es 26, la secuencia será:
26,13,40,20,10,5,16,8,4,2,1
PSEUDOCÓDIGO DIAGRAMA DE FLUJO

1. Inicio
2.Leer N
3.Si N es Entero
Mientras N>1
Si N es par
Hacer N=N/2
Escribir N
Si N es Impar
Hacer N=N*3+1
Escribir N
Fin si
Fin Mientras
4.Fin si
5. Fin

20
Actividad 1
Se requiere conocer el área de un rectángulo. Realice un algoritmo para tal fin y
represéntelo mediante un diagrama de flujo y el pseudocódigo para realizar este proceso.

PSEUDOCÓDIGO:
1. Inicio
2. Leer A,B
3. Hacer Area=B*A
4. Escribir Area
5. Fin

Guardar de la actividad 1, a la actividad 11, en un solo archivo de


nombre:
Carr_ClaveUnica_U1_A1_A11.pdf

21
Actividad 2
Un productor de leche lleva el registro de lo que produce en litros, pero cuando Entrega le
pagan el equivalente en galones. Realice un algoritmo, que ayude al productor a saber
cuánto recibirá por la entrega de su producción de un día. (1 galón = 3.785 litros).
Y represéntelo mediante un diagrama de flujo y el pseudocódigo,

PSEUDOCÓDIGO:
1. Inicio
2. Leer L,PG
3. Hacer TG=(L/3.785)
4. Hacer GA=PG*TG
5. Escribir GA
6. Fin

22
Actividad 3
Se requiere obtener la distancia entre dos puntos en el plano cartesiano, tal y como se muestra
en la figura. Realice algoritmo y represéntelo mediante un diagrama de flujo y pseudocódigo
𝐷= 𝑋2 − 𝑋1 2 + 𝑌2 − 𝑌1 2

PSEUDOCÓDIGO:
1. Inicio
2. Leer X1,Y1
3. Leer X2,Y2
4. Hacer X=X2-X1
5. Hacer Y=Y2-Y1
6. Hacer D=sqrt(X^2+Y^2)
7. Escribir D
8. Fin

23
Actividad 4
Realice un algoritmo para determinar si un número es positivo o negativo.
Represéntelo en pseudocódigo y diagrama de flujo.

PSEUDOCÓDIGO

24
Actividad 5
Realice un algoritmo para determinar cuánto se debe pagar por X cantidad de lápices
considerando que si son 1000 o más el precio es de 85¢; de lo contrario, el precio es de
90¢. Represéntelo con el pseudocódigo y el diagrama de flujo.

25
Actividad 6
“La langosta ahumada” es una empresa dedicada a ofrecer banquetes; sus tarifas son las
siguientes: el costo de platillo por persona es de $95.00, pero si el número de personas es
mayor a 200 pero menor o igual a 300, el costo es de $85.00. Para más de 300 personas el costo
por platillo es de $75.00. Se requiere un algoritmo que ayude a determinar el presupuesto que
se debe presentar a los clientes que deseen realizar un evento. Mediante pseudocódigo y
diagrama de flujo

PSEUDOCÓDIGO

26
Actividad 7
“El náufrago satisfecho” ofrece hamburguesas sencillas, dobles y triples, las cuales tienen un costo de
$20.00, $25.00 y $28.00 respectivamente. La empresa acepta tarjetas de crédito con un cargo de 5 % sobre
la compra.
Suponiendo que los clientes adquieren sólo un tipo de hamburguesa, realice un algoritmo para determinar
cuánto debe pagar una persona por N hamburguesas.

PSEUDOCÓDIGO

27
Actividad 8
Realice un algoritmo para generar e imprimir los números pares que se encuentran
entre 0 y 100.
Realice el diagrama de flujo y el pseudocódigo

PSEUDOCÓDIGO

1. Inicio
2. Desde N=2:2:100
Escribir N
Fin Desde
3. fin

28
Actividad 9
Realice un algoritmo que pida un número del 1 al 10 y nos muestre la “tabla de multiplicar”
correspondiente.
Realice el diagrama de flujo y el pseudocódigo

PSEUDOCÓDIGO

1. Inicio
2. Leer N
3. Desde C=1:10
Hacer T=C*N
Escribir T
Fin Desde
3. Fin

29
Actividad 10
Un rey persa, al conocer el juego de ajedrez quiso pagarle a su creador por tan fantástico
juego. Después de mucha insistencia, el creador del juego pidió como recompensa el total
de granos de arroz, si en cada casilla del tablero, se pone el doble de granos de la casilla
anterior, empezando en 1. Es decir, en la primera casilla se pone 1 grano, en la segunda 2
granos, en la tercera 4 granos, en la cuarta 8 granos, y así las 64 casillas del tablero.
Calcule el total de granos necesarios para pagarle al creador del juego.
Realice el diagrama de flujo, el pseudocódigo

30
Actividad 11
Realice un algoritmo que pida al usuario introduzca un número cada vez, hasta que la
suma de los números introducidos sea mayor o igual a 1000. Y muestre la suma final.
Realice el diagrama de flujo y el pseudocódigo

31
Introducción a Matlab

Arreglos Unidimensionales (Vectores)


y
Multidimensionales (Matrices)

32
Tipos de datos:
Datos numéricos:
Contienen números únicamente. Pueden ser datos enteros o datos reales

 Entero: Tienen solo parte entera y pueden ser positivos o negativos. (100,10,-10,100)

 Real : Tienen parte decimal y parte entera. pueden ser positivos o negativos.(2.5, -2.8)

Datos String o Alfanuméricos:


Su contenido puede ser un carácter o una cadena (sucesión) de caracteres.

 Caracter : Cualquier letra (de la A a la Z o a a la z), numero (0 al 9) o el signo underline (_)

 Cadena de caracteres : Una sucesión de varios caracteres. (‘Natasha Díaz’)

Datos lógicos o booleanos:


Son datos que solo pueden tomar dos valores: verdadero (true o 1) o falso (false o 0).

Datos Imaginarios o complejos:


En muchos cálculos matriciales los datos y/o los resultados no son reales sino complejos, con
parte real y parte imaginaria. MATLAB trabaja sin ninguna dificultad con números complejos.
sqrt(-4) % Respuesta compleja >> 3 + 4j % Variable compleja definida
ans =0 + 2.0000i ans =3.0000 + 4.0000i
33
Representación de datos:
Los datos se representan con un nombre, el tamaño y la forma de escribir el nombre depende
del lenguaje. El nombre que representa el dato comúnmente se clasifica como una variable o
como una constante.

Constante:
Es el nombre que se le da a un campo cuyo contenido no cambia o varia a través del proceso.
MATLAB tiene definidas por defecto algunas constantes útiles en ciertos cálculos.

pi 3.141592653589793…
i la unidad imaginaria, −1.
j lo mismo que i.
eps precisión relativa de los números en coma flotante, 2^−52 = 2.2204e − 16. Es
decir distancia de 1.0 al siguiente número más próximo en coma flotante.
realmin numero en coma flotante mas pequeño, 2^−1022=2.2251e-308
realmax numero en coma flotante mas grande, (2 − eps)2^1023=1.7977e+308
inf infinito. Se produce al dividir un numero distinto de cero por cero.
nan “Not-A-Number”. Se produce al evaluar expresiones como 0/0 o inf-inf.

34
Variable:
Una variable es el nombre que se le asigna a un campo, cuyo contenido puede cambiar o
variar a través de un proceso. El nombre y el contenido son las partes de una variable.

El nombre de una variable es el conjunto de caracteres (letras, números y caracteres


especiales) aceptados, con los cuales se identifica el contenido de un campo en un
momento determinado.

El contenido de una variable es el dato que una variables representa o tiene asociada
en un determinado momento.

Variable
Edad=22
Sueldo=2500.25 Nombre Contenido Dato
Nombre=‘Natasha’ Edad 22 Entero
Sueldo 2500.25 Real
Nombre ‘Natasha’ String

35
Normas para definir una variable :
1. El nombre debe comenzar por una letra y no por un número
2. No deben existir espacios entre las letras del nombre.
3. No deben poseer caracteres especiales, excepto el underline (_).
4. Matlab distingue entre mayúsculas y minúsculas en los nombres de variables.
5. El nombre debe ser mnemotécnico, es decir que tenga relación con su contenido.
6. Se sugiere que el nombre no exceda 8 caracteres pero puede contener hasta 21.
7. No se deben utilizar palabras o funciones reservadas del programa, por ejemplo, si usa
pi = 8, el nuevo valor de la constante pi seria 8 y no el definido por el programa.

Las reglas de la 1 a la 4 son obligatorias

36
Operadores:
El operador es un símbolo o palabra que permite formular operaciones, establecer relaciones
y hacer comparaciones de tipo lógico matemático entre datos.

Los operadores se dividen principalmente en tres tipos:


1. Operadores Aritméticos
2. Operadores Relacionales
3. Operadores Lógicos

1. Operadores Aritméticos 2. Operadores Relacionales


Operador Jerarquía Operación Operador Descripción Ejemplo Resultado

^ Mayor Potencia == Igual que ‘lalo’==’lola’ F

*, /, mod Multiplicación, división ~= Diferente que X~=Y V


modulo < Menor que 14<25 V
+, - Menor Suma, resta
> Mayor que 35>10 V

<= Menor o igual que 5<=6 V


3. Operadores lógicos
>= Mayor o igual que 15>=7 V
Operador Descripción
~ Negación (no)

& Conjunción (and)

| Disyunción (or)
37
Orden de las operaciones
Al realizar cálculos, es necesario tener en cuenta el orden en que la computadora
realiza las operaciones, pues esto influye directamente en el resultado obtenido.

 Operaciones de Izquierda a derecha


Cuando en una expresión aritmética se utilizan varios datos y operadores, estas se
realizan de izquierda a derecha:

 Jerarquía de las operaciones


Los operadores aritméticos poseen una jerarquía, y esta modifica el orden en que se
realizan las operaciones. La jerarquía natural de los operadores aritméticos es la
siguiente: Operador Jerarquía
^ Alta
*, /, mod Media
-, + Baja

 Uso del paréntesis


Cuando una expresión aritmética posee paréntesis:
La computadora ejecuta primero las operaciones que estén dentro del paréntesis ( ).
Si existen varios pares de paréntesis, comienza a realizar el mas interno hasta llegar al
externo.
Dentro del paréntesis se sigue le jerarquía normal de operaciones.
38
Arreglos (Array, Matriz)
Un arreglo es una estructura en la que se almacena una colección de datos del mismo
tipo (ejemplo: las calificaciones de los alumnos de un grupo, sus edades, sus estaturas,
etcétera).

Los arreglos se caracterizan por:

1) Almacenar sus elementos en una posición de memoria continua.


2) Tener un único nombre de variable.
3) Tener acceso directo o aleatorio a los elementos individuales del arreglo.
4) Tener homogéneos sus elementos.

En los diferentes lenguajes de programación, al momento de declarar las variables tipo


arreglo, se deben establecer el tamaño y tipo de estas variables, o lo que es lo mismo, se
debe determinar cuántos elementos y de qué tipo podrán almacenarse con el mismo
nombre del dato. En Matlab no es necesario

A los arreglos, cuando son unidimensionales, se les denomina vectores o listas; cuando
son multidimensionales, se les da el nombre de matrices o tablas.

39
Arreglos unidimensionales (Vectores)
Los vectores son arreglos que contienen un solo índice que indica la posición que guarda
el dato dentro del arreglo.
Ejemplo:
Suponga que tiene las edades de cuatro alumnos; si no cuenta con un arreglo o
estructura de datos tipo vector, al trabajar con estos valores al mismo tiempo, tendría
que definir cuatro variables para almacenar cada una de las edades en la memoria de
la máquina, sin embargo, con un vector es posible guardar estas edades en una misma
variable, y tener acceso a ella en cualquier momento.
Edad= 17 18 22 21
Edad=[17,18,22,21]

Donde: la variable Edad es el nombre del arreglo y cada una de las edades están
contenidas en su respectivo subíndice (posición del dato dentro del arreglo)

Edad(1)=17 Edad(2)=18 Edad(3)=22 Edad(4)=21

Si en lugar de tener sólo cuatro edades se tuvieran todas las edades de los alumnos de
una escuela o, se tratara de las edades de los habitantes de una ciudad, utilizar
variables simples resultaría bastante complejo para manipular las N variables por utilizar
para guardar los datos correspondientes; no obstante, con un vector se pueden
almacenar estos datos en una misma variable, en la que sólo se hace referencia a la
posición que ocupa dentro del arreglo: 40
Arreglos bidimensionales (Matrices)
En Matlab las matrices y vectores son variables a las que se les puede dar nombres.

Para definir una matriz no hace falta establecer de antemano su tamaño (de hecho, se
puede definir un tamaño y cambiarlo posteriormente).

Matlab determina el número de filas y de columnas en función del número de


elementos que se introducen (o se utilizan).

Las matrices se definen con los elementos entre corchetes y por filas; los elementos de
una misma fila están separados por blancos o comas, mientras que las filas están
separadas por pulsaciones intro o por caracteres punto y coma (;).

Ejemplo:
El siguiente comando define una matriz A de dimensión (3x3):
>> A=[1 2 3; 4 5 6; 7 8 9]

La respuesta del programa es: Donde:


123 A(1,1)=1 A(1,2)=2 A(1,3)=3
456 A(2,1)=4 A(2,2)=5 A(2,3)=6
789 A(3,1)=7 A(3,2)=8 A(3,3)=9

41
Listas Implícitas, función linspace
Listas implícitas: son
listas de números en las
que se especifica el
primer y ultimo
elementos y el
incremento entre cada
elemento de la lista. El
resultado es siempre un
vector fila.

linspace: Otra forma de generar listas de números equidistantes es utilizando la


función linspace, en la cual hay que especificar como argumentos el primer elemento,
el ultimo elemento y el numero total de elementos de la lista,

42
Operaciones Elementales (1)
Operaciones básicas como suma, producto o trasposición se hacen como se muestra a
continuación, permitiéndose algunas operaciones no definidas matemáticamente:

Operador suma (+) Utilizado entre matrices de iguales dimensiones,


obtiene la suma elemento a elemento. Utilizado entre una matriz y
un escalar, suma el escalar a cada elemento de la matriz.

Operador resta (-) Idéntico a la suma en su utilización.

Operador producto (*) Utilizado entre matrices calcula el producto


matricial. Las dimensiones de las matrices deben ser congruentes.
Utilizado entre una matriz y un escalar, multiplica el escalar por
cada elemento de la matriz.

43
Operaciones Elementales (2)
Para realizar operación algebraicas “elemento a
elemento” entre vectores de las mismas dimensiones,
los operadores que se deben utilizar son los siguientes:
Operadores Operación
entre Elemento a
vectores elemento)
.* Multiplicación
./ División
Izquierda
.\ División
derecha
.^ Potenciación

44
Operaciones con Funciones Matemáticas
En el caso de vectores y matrices estas
funciones actúan sobre cada uno de los
elementos

45
Matrices Especiales (1)
MATLAB contiene un grupo de funciones que generan matrices especiales; a
continuación se muestran algunas de estas funciones.
zeros(m) zeros(m,n) ones(m) ones(m,n)
Crea una matriz m x m Crea una matriz m x n Crea una matriz m x m Crea una matriz m x n
de ceros de ceros de unos de unos

diag(A) diag(A) fliplr (A) flipud(A)


Extrae la diagonal de una Para cualquier vector invierte la matriz en invierte la matriz en
matriz bidimensional A A, crea una matriz la dirección la dirección arriba-
cuadrada con A como izquierda-derecha abajo
la diagonal

46
Matrices Especiales (2)
MATLAB contiene un grupo de funciones que generan matrices especiales; a
continuación se muestran algunas de estas funciones.
rot90(A) tril(A) triu(A) magic(m)
Rota la matriz A, 90 Extrae la parte inferior Extrae la parte triangular Crea una matriz
grados en el sentido de triangular de A superior de A. mágica m x m
las agujas del reloj

rand rand(n) rand(m,n)


Genera números Genera una matriz de números Igual que en el caso anterior
pseudoaleatorios pseudoaleatorios entre 0 y 1, con pero de tamaño (mxn).
distribuidos 0 y 1 distribución uniforme, de tamaño
(nxn).

47
Manipulación de Matrices (1)
Sea la matriz:  Elementos de la matriz: Columna 2 de A
A=[1:5;6:10;11:15;16:20] elemento (1,2) >>A(:,2)
>> A(1,2)
ans = 2 ans = 2
7
elemento (2,5) 12
>> A(2,5) 17
ans = 10
 Dimensiones de la >>A(:,2)‘ % traspuesta
matriz: >> A(2,end) ans = 2 7 12 17
>> size(A) ans = 10
ans = 4 5 Columna 5 de A
 Renglones y Columnas: >>A(:,5)
Numero de renglones: Renglón 1 de A ans = 5
size(A,1) >> A(1,:) 10
ans = 4 ans = 1 2 3 4 5 15
20
Numero de columnas: Renglón 4 de A
size(A,2) >> A(4,:) >>A(:,5)‘ % traspuesta
ans = 5 ans = 16 17 18 19 20 ans = 5 10 15 20

Mayor de las dos dimensiones >> A(end,:) >>A(:,end)‘ % traspuesta


length(A) ans = 16 17 18 19 20 ans = 5 10 15 20
ans = 5

48
Manipulación de Matrices (2)
Sea la matriz: Columnas 1,2,3,5
A=[1:5;6:10;11:15;16:20]

 Permutaciones
 Submatrices: Permute las dos primeras columnas de A
Renglones 1,2,3 y columnas 2,3,4

Renglones 1, 2 y columnas 1,3,5


 Juntando matrices

Renglones 3 y 4

49
Ejemplo 10
Crear 2 matrices, La matriz A de 5x6, la matriz B de 3x5 y un vector V de longitud 9

Código en Matlab:

A=[2:3:17;3:3:18;4:3:19;5:3:20;6:3:21]

B=[5:5:30;30:5:55;55:5:80]

V=[99:-1:91]

50
Ejemplo 10 (Solución)
Manipular la matriz A por pasos:

a) Reemplace las 4 ultimas columnas de la fila 1 y


la fila 3 de A por las 4 primeras columnas de las
primeras 2 filas de la Matriz B.

A([1,3],3:6)=B(1:2,1:4)

b) Reemplace las 4 ultimas columnas de la


cuarta fila de A por los elementos 5 a 8 de V

A(4,3:6)=V(5:8)

c) Reemplace las 4 ultimas columnas de la quinta


fila de A por las columnas 2 a 5 de la tercera fila
de B.
A(5,3:6)=B(3,2:5)
51
Actividad 12
Realice las siguientes operaciones algebraicas haciendo uso del programa Matlab.
Calcule: Defina la variable x=13.5 y calcule:

35.7 64 −73 I=𝑥 3 5𝑥 2 − 26.7𝑥 − 52


A=
45+52
14𝑥 3
5 37 J=
B= 7 (6)2 + 𝑒 3𝑥
4 93 −652
2
K=𝑙𝑜𝑔 𝑥 2 − 𝑥 3
3 273 ൗ3 552
C= 2 + 7 + + Defina las variables x=9.6 y z=8.1 calcule:
2 3

2733 3Τ 2𝑧 5
D=23 + 73 + + 55 2 L= 𝑥𝑧 2 −
2 3𝑥
37 𝑙𝑜𝑔(76) 3 443𝑧 𝑒 −𝑥𝑧
E= + 910 M= +
73 +546 2𝑥 3 𝑥+𝑧
2
4
250+23 Defina las variables a=15.62, b=-7.08, c=62.5 y d=0.5(ab-c),
F= 43 3 y calcule:
𝑒 45−3
𝜋 𝑎𝑏 𝑎+𝑑 2
5𝜋 7𝜋 2 𝑡𝑎𝑛 𝑙𝑛 8 N=𝑎 +
G= 𝑐𝑜𝑠 2 6 𝑠𝑒𝑛 8
+ 6
7
𝑐 𝑎𝑏

𝑎𝑑+𝑐𝑑
𝜋 𝑑 20 30
5𝜋 2 7𝜋 𝑡𝑎𝑛 𝑙𝑛 8 +
H= 𝐶𝑜𝑠 𝑠𝑒𝑛2 + 6
5
O=𝑑𝑒 2 + 𝑎 𝑏
6 8 7 (𝑎+𝑏+𝑐+𝑑
2

Respuestas: A) 27.74, B) 343.4026, C) 1.7584e+03, D) 1.0174e+07, E) 14.3174, F) 4.7658e-04, G) 1.4395, H) 0.2325,


I) 2.2416e+06, J) 4.7823e-16, K) 3.3576, L) 629.1479, M) 2.0279, N) -830.7755, O) -147.4700

Elabora el ejercicio en un archivo de Matlab y guárdalo como Carr_CU_U1A12


52
Actividad 13
Construir los vectores cuyos elementos sean:

A= Los números naturales comprendidos entre el 10 y el 100.

B= Los números naturales comprendidos entre el 10 y el 100, con incrementos de 2

C= (-1, -0,8, -0.6,............, 1.6, 1.8, 2).

D= Desde el 1 hasta el 3 igualmente espaciados y con un total de 15 elementos

Elabora el ejercicio en un archivo de Matlab y guárdalo como Carr_CU_U1A13

53
Actividad 14
Introducir los vectores:
U=[1 2 3 4 5]
V=[6,7,8,9,10]

 Determinar los vectores:


A=3U
B=U+V
C=U-V

 Construir un vector D cuyos elementos sean los de V incrementados 3 unidades.

 Determinar un vector E cuyos elementos sean el resultado de multiplicar cada elemento


de U por el correspondiente de V.

 Calcular un vector F cuyos elementos sean el resultado de elevar los de U al cubo.

 Calcular un vector G cuyos elementos sean el resultado de elevar cada elemento de U


al elemento de V correspondiente.

Elabora el ejercicio en un archivo de Matlab y guárdalo como Carr_CU_U1A14


54
Actividad 15
Introducir las matrices

 Calcular las matrices:


C= A+B
D=A-B
E=A4
 Determinar una matriz F cuyos elementos sean el resultado de multiplicar cada
elemento de A por el correspondiente de B.

 Determinar una matriz G cuyos elementos sean el resultado de dividir cada


elemento de A por el correspondiente de B.

Elabora el ejercicio en un archivo de Matlab y guárdalo como Carr_CU_U1A15

55
Actividad 16
Introducir la matriz

 A=Extraer el elemento A(2,3)


 B=Construir una submatriz formada por las columnas 1, 2 y 3 de las filas 2, 3 y 4
de la matriz A.
 C=Extraer la fila 3 de A.
 D=Extraer la columna 1 de A.
 E=Construir una matriz formada por las filas 1, 2 y 3 de A.
 F=Construir una matriz formada por las filas 1 y 4 de A.
 Sustituir el elemento A(2,2) por 100.

Elabora el ejercicio en un archivo de Matlab y guárdalo como Carr_CU_U1A16

56
Actividad 17
Crear la siguiente matriz:

Utilice la matriz para:


 Crear un vector fila de cinco elementos llamado va, que contenga todos
los elementos de la segunda fila de A.
 Crear un vector fila de seis elementos llamado vb, que contenga todos los
elementos de la cuarta columna de A.
 Crear un vector fila de diez elementos llamado vc, que contenga todos los
elementos de la primera y segunda fila de A.
 Crear un vector fila de seis elementos llamado vd que contenga todos los
elementos de la segunda y la quinta columna de A.

Elabora el ejercicio en un archivo de Matlab y guárdalo como Carr_CU_U1A17

57
Actividad 18

Cree la siguiente matriz

 Crear una matriz B de 3x4, que contenga los elementos de la


intersección de la primera, tercera y cuarta fila, con la primera, tercera,
quinta y séptima columna de la matriz A.

 Crear un vector fila de 15 elementos llamado u, que contenga todos los


elementos de la tercera fila y todos los elementos de la quinta y la
séptima columna de la matriz A.

Elabora el ejercicio en un archivo de Matlab y guárdalo como Carr_CU_U1A18

58
Actividad 19
Utilizando el comando eye, cree un array (matriz) A. a continuación, utilice las
propiedades de los dos puntos (:) para acceder a los elementos en el array,
cambiando el array para que sea como el de la parte derecha.

Elabora el ejercicio en un archivo de Matlab y guárdalo como Carr_CU_U1A19

59
Actividad 20
Cree las siguientes matrices:

 Calcule G=A+B y H=B+A para demostrar que la suma de matrices cumple la


propiedad conmutativa.
 Calcule J=A+(B+C) y K=(A+B)+C para demostrar que la suma de matrices
cumple la propiedad asociativa.
 Calcule L=5(A+C) y M=5A+5C para demostrar que, cuando se multiplica una
matriz por un escalar, la multiplicación cumple la propiedad distributiva.
 Calcule P=A(B+C) y Q=AB+AC para demostrar que la multiplicación de
matrices cumple la propiedad distributiva.

Elabora el ejercicio en un archivo de Matlab y guárdalo como Carr_CU_U1A20

60
Actividad 21
A partir de las matrices A y B:

 Genere una matriz C, que contenga los elementos de la intersección de las


columnas 1, 3 y 5 con la segunda fila de la matriz B y los elementos de la
intersección de las columnas 2, 4 y 6 con las filas 2 a la 4 de la matriz A.

 Genera una matriz D, cuyas primeras 3 columnas contengan los elementos


de la primera, tercera y quinta columna de la matriz A, y la cuarta
columna contenga los elementos de la intersección de las columnas 2 a la
5 con la tercera fila de la matriz B.

Elabora el ejercicio en un archivo de Matlab y guárdalo como Carr_CU_U1A21

61
Sistemas de Ecuaciones Lineales
Resolver el siguiente sistema de ecuaciones lineales.

4x-2y+6z=8
2x+8y+2z=4
6x+10y+3z=0

El sistema anterior se puede representar de forma matricial AX=B

4 −2 6 𝑥 8
2 8 2 𝑦 = 4
6 10 3 𝑧 0

62
Gráficos (1)
En un archivo m de Matlab obtener la representación grafica de la función
f(x) = sen xe-0.4x en el intervalo [0, 10].

63
Gráficos (2)
El comando fplot
Representa gráficamente una función de la forma y=f(x) entre unos límites
especificados por el usuario. El comando tiene la siguiente sintaxis:

fplot (‘función’, limites, especificadores de línea)

Representar una función del tipo 𝑦 = 𝑥 2 + 4𝑠𝑒𝑛 2𝑥 − 1 𝑝𝑎𝑟𝑎 − 3 ≤ 𝑥 ≤ 3

64
Gráfico de varias funciones a la vez(1)
La representación de varias funciones se puede realizar de tres formas diferentes. Una
de ellas consiste en utilizar el comando plot, otra en utilizar los comandos hold on y
hold off, y la tercera consiste en utilizar el comando line.

Utilizando el comando plot


Dibujar la función 𝑦 = 3𝑥 3 − 26𝑥 + 10, así como su primera y segunda derivadas, en
el intervalo −2 ≤ 𝑥 ≤ 4. Todas las funciones deben representarse juntas en el mismo
gráfico.

65
Gráfico de varias funciones a la vez(2)
Utilizando los comandos hold on y hold off

66
Comando subplot
Más de un gráfico en la misma página.
Con la orden subplot podemos representar una matriz con mxn subgráficas en una
sola figura; la sintaxis es:
subplot(m,n,k)
Donde k es un número natural que indica el orden en que aparece la gráfica: la
primera, la segunda, ...
Como ejemplo ejecutamos el siguiente código:

67
Actividad 22

Resolver el sistema utilizando:

a) La matriz inversa de los coeficientes. X=inv(A)*B


b) El operador división izquierda. X=A\B

Elabora el ejercicio en un archivo de Matlab y guárdalo como Carr_CU_U1A22

68
Actividad 23
La profundidad de un pozo, d, en metros
se puede determinar a partir del tiempo
que tarda en caer una piedra a su interior
(vel. inicial cero). Este cálculo viene
determinado por: d=1/2 gt2, donde t es el
tiempo en segundos y g=9.81 m/s2.

Calcular d para t=1, 2, 3, 4, 5, 6, 7, 8, 9,


10 s. Cree un vector t y calcule d
utilizando operaciones elemento a
elemento.

Elabore una grafica en donde se observe el


calculo de la profundidad con respecto del
tiempo, en las unidades correspondientes
e incluyendo las características del
grafico: titulo, ejes, ajustes de ejes de ser
necesario, textos, etc.

Elabora el ejercicio en un archivo de Matlab y guárdalo como Carr_CU_U1A23

69
Actividad 24
Represente la función f(x)=3xsen(x)-2x, y su derivada, ambas en la misma región
gráfica, en el intervalo -2π≤x≤2π.

Represente la función con una línea solida roja, y su derivada con una línea discontinua
verde. Añada una leyenda, titulo, cuadricula y etiquetas para los ejes.

Elabora el ejercicio en un archivo de Matlab y guárdalo como Carr_CU_U1A24


70
Actividad 25
Utilizando el comando subplot
Represente dos gráficos de forma
separada, en una sola figura de la
función :

f(x)=0.6x5-5x3+9x+2

uno de los gráficos debe estar en el


dominio -4≤x≤4

y el otro en el
dominio -2.7≤x≤2.7

Elabora el ejercicio en un archivo de Matlab y guárdalo como Carr_CU_U1A25


71
Actividad 26
Represente la función:
𝒙𝟐 −𝟓𝒙+𝟏𝟎
𝒇 𝒙 =
𝒙𝟐 −𝟐𝒙−𝟑

Asíntotas
Para -10≤x≤10. en incrementos de 0.1,
Establezca el rango del eje y entre -20 y
20.
observe que esta función tiene dos
asíntotas verticales.

Represente la función dividiendo el


dominio de x en tres partes:

Asíntotas(1)
Una que vaya desde -10 hasta aprox. la
asíntota izquierda.

Asíntotas(2)
Otra entre las dos asíntotas.

Asíntotas(3)
Y una tercera desde aproximadamente la
asíntota derecha hasta 10. Presente los 4
gráficos (subplot)en la misma figura.
Elabora el ejercicio en un archivo de Matlab y guárdalo como Carr_CU_U1A26 72
Actividad 27
La posición x en función del
tiempo t de una partícula que
se mueve a lo largo de una
línea recta viene dada por:
x(t)=0.4t3-2t2-5t+13 metros.
La velocidad v(t) de la partícula
se calcula mediante la derivada
de x(t) con respecto al tiempo
t, y la aceleración a(t) se
calcula derivando v(t) con
respecto al tiempo t.
Deduzca las expresiones de la
velocidad y la aceleración de la
partícula y represente su
posición, velocidad y
aceleración en función del
tiempo para 0≤t≤7 s. (incr=0.1)
Utilice el comando subplot para
crear tres graficas en la misma
ventana de gráficos, etiquete
los ejes apropiadamente con
las unidades correctas.

Elabora el ejercicio en un archivo de Matlab y guárdalo como Carr_CU_U1A27


73

También podría gustarte