Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

UNIDAD I Enero 2022 Alumno

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

UNIDAD I

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

Algoritmos Diagramas de Flujo y Pseudocódigo

Introducción a MatLab:
Arreglos Unidimensionales (Vectores)
y
Multidimensionales (Matrices)
1
Índice
 Algoritmo  Operadores:
 Pseudocódigo  Orden de las operaciones
 Diagramas de Flujo  Arreglos (Array, Matriz)
 Estructuras de Control  Arreglos unidimensionales (Vectores)
 Estructuras Secuenciales  Arreglos bidimensionales (Matrices)
 Estructuras Selectivas  Listas Implícitas, función linspace
 Estructuras Selectivas Anidadas  Operaciones Elementales
 Estructuras Repetitivas o de Ciclo  Operaciones con Funciones Matemáticas
 Introducción a Matlab  Funciones Predefinidas
 Tipos de datos:  Matrices Especiales
 Representación de datos:  Manipulación de Matrices
 Variable:  Sistemas de Ecuaciones Lineales
 Normas para definir una variable  Gráficos 2D

2
Algoritmo
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).

4
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
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
Estructuras Selectivas Anidadas

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
Ejemplo 6
Escriba un algoritmo para calcular las soluciones de una ecuación de la forma Ax2+Bx+C = 0,
donde A, B y C son números reales, con A ≠ 0.
Indicar Si la ecuación tiene una sola solución, o dos soluciones, o soluciones complejas.
Haga uso de la fórmula cuadrática. DIAGRAMA DE FLUJO

PSEUDOCÓDIGO
Entrar:
los valores de A, B y C.
Calcular:
D = B2 - 4AC
Si D= 0 (una sola solución)
x = -B/(2*A)
Mostrar: x
Si D>0 (Soluciones reales)
x1 = (-B+sqrt(D))/(2*A)
x2 = (-B-sqrt(D))/(2*A)
Mostrar:
x1
x2
Si D<0 (soluciones complejas)
x1 = (-B+sqrt(D))/(2*A)
x2 = (-B-sqrt(D))/(2*A)
Mostrar:
x1
x2

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 7
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 8
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 9
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 10
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 8, en un solo archivo de nombre:


Carr_ClaveUnica_U1_A1_A8.pdf
21
Actividad 2
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 3
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.

PSEUDOCÓDIGO

25
Actividad 4
“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
Actividad 5
“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
Actividad 6
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 7
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 8
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

PSEUDOCÓDIGO

1. Inicio
2. Hacer S=0
3. Leer N
4. Mientras S<1000
Hacer S=S+N
Leer N
Fin Mientras
6. Escribir S
7. Fin

31
Introducción a Matlab

Arreglos Unidimensionales (Vectores)


y
Multidimensionales (Matrices)

30
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 Nombre Contenido Dato
Sueldo=2500.25 Edad 22 Entero
Nombre=‘Natasha’
Sueldo 2500.25 Real
Nombre ‘Natasha’ String

33
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

34
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

~= Diferente que X~=Y V


*, /, mod Multiplicación, división
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)
35
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.
36
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

39
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
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
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

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

43
Funciones Predefinidas:
Matlab dispone de numerosas funciones predefinidas, algunas de ellas son las
siguientes:

Comando Función
abs(x) Valor absoluto de x
sqrt(x) Raíz cuadrada de x
nthroot(x,n) Raíz n de x. Si n=3 sería la raíz cúbica de x
exp(x) Calcula ex, Ejemplo e2 se escribe exp(2)
log(x) Calcula ln(x), logaritmo natural
log10(x) Calcula log10x, logaritmo en base 10 de x
sin(x) Calcula el seno de x, en radianes.
sind(x) Calcula el seno de x, en grados.
cos(x) Calcula el coseno de x, en radianes.
cosd(x) Calcula el coseno de x, en grados.
tan(x) Calcula la tangente de x, en radianes.
tand(x) Calcula la tangente de x, en grados.
44
Actividad 9
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

3 3 2733 3Τ 2𝑧 5
D=2 + 7 + + 55 2 L= 𝑥𝑧 − 2
2 3𝑥
37 𝑙𝑜𝑔(76) 3 443𝑧 𝑒 −𝑥𝑧
E= + 910 M= +
73 +546 2𝑥 3 𝑥+𝑧
4
250+23
2
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 𝑐 𝑎𝑏
6 8 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_U1A9
52
Actividad 10
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_U1A10

54
Actividad 11
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_U1A11
55
Actividad 12
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_U1A12

56
Matrices Especiales
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
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
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
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

52
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)
54
Actividad 13
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_U1A13

57
Actividad 14
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_U1A14
58
Actividad 15

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_U1A15

59
Actividad 16
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_U1A16

60
Actividad 17
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_U1A17

61
Actividad 18
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_U1A18

62
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

63
Actividad 19

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_U1A19

69
Gráficos 2D
La gráfica más útil para los ingenieros e investigadores es la gráfica x-y. Los valores de x y y se pueden medir o calcular.
Una vez definidos los vectores de valores x y valores de y, MATLAB hace fácil la creación de gráficas.
Usando el comando plot, con x y y como argumentos: plot(x,y)
Automáticamente se abre una ventana de gráficas llamada figure 1. En ella se observa la gráfica y se puede incluir en ella
título, etiquetas de ejes y retícula de fondo.

Funciones de graficación básicas


Comando Función
plot(x,y) Crea una gráfica x , y
title (‘Texto de encabezado’) Agrega un título a una gráfica
xlabel (‘Texto’) Agrega una etiqueta al eje x
ylabel (‘Texto’) Agrega una etiqueta al eje y
grid on Agrega retícula de fondo (líneas de referencia)
Pause Detiene la ejecución del programa, lo que permite al usuario ver la gráfica
Figure Agrega otra gráfica a parte de la ya existente
hold on Congela la gráfica actual, de modo que se puede recubrir una gráfica adicional
hold off
plot(y) Toma como abscisas los números naturales 1,2,…,n.
Escalamiento de ejes y anotaciones en las gráficas
Comando Función
Axis Cuando la función axis se usa sin entradas, congela al eje en la configuración
actual. Ejecutar la función una segunda vez regresa el control de eje a Matlab
axis (v) La entrada al comando axis debe ser un vector de cuatro elementos que
especifique los valores mínimo y máximo para los ejes x y y, por ejemplo [xmin,
xmax, ymin, ymax]
Legend(‘string 1’, ‘string 2’, etc) Le permite agregar una leyenda a su gráfica. La leyenda muestra un modelo de la
línea y menciona la cadena que se especificó
Text(x_coordinate, y_coordinate, ‘string’) Le permite agregar un recuadro de texto a la gráfica. El recuadro se coloca en las
coordenadas x y y especificadas y contiene el valor de cadena especificado

64
Gráficos 2D
Opciones de línea
Tipo de línea Indicador Opciones de marca
Sólida - Tipo de punto Indicador
Punteada : Punto .
raya-punto -. Círculo O
Rayada -- marca x X
Más +
Opciones de color Estrella *
Color Indicador Cuadrado S
Azul b Diamante D
Verde g triángulo abajo V
Rojo r triángulo arriba ^
Cian c triángulo izquierda <
Magenta m triángulo derecha >
Amarillo y Pentagrama P
Negro k Hexagrama H

64
Gráficos 2D
Propiedades y Valores
Son opcionales, y se utilizan para concretar el grueso de la línea, el tamaño de los marcadores, así
como los colores de relleno y del borde del marcador.
propiedad Descripción Posible valor de la propiedad
linewidth Especifica el grosor de la línea Un número representado en unidades de
puntos (por defecto 0.5)
markersize Especifica el tamaño de las Un número representado en unidades de
marcas puntos
markeredgecolor Especifica el color del marcador, o Especificadores de color, introducidos en
el color del borde de la línea para forma de cadena
marcadores con relleno
markerfacecolor Especifica el color de relleno de Especificadores de color, introducidos en
los marcadores forma de cadena

Ejemplo:
Plot(x,y, ‘-mo’, ‘linewidth ‘,2,’markersize’,12,’markeredgecolor’,’g’,’markerfacecolor’,’y’)
Crea un gráfico en el cual una línea sólida de color magenta une puntos que se representan
mediante marcadores en forma círculo. El grosor de línea es de 2 puntos, y el tamaño de los círculos
utilizados como marcadores es de 12 puntos. Los marcadores (círculos) tienen bordes de color verde,
y amarillo como color relleno.

Especificador propiedad Posible valor para la propiedad


Estilo de línea Linestyle Especificador de estilo de línea, introducidos en forma de cadena
Color de línea Color Especificador de color, introducidos en forma de cadena
Marcador marker Especificador de marcador, introducido en forma de cadena

64
Ejemplo 11
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]. Con incrementos de 0.2

64
Ejemplo 12
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

65
Ejemplo 13
La representación de varias funciones se puede realizar de varias formas diferentes.
Una de ellas consiste en utilizar el comando plot, otra forma es utilizar los comandos
plot, hold on y hold off.

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.

66
Ejemplo 14
Utilizando los comandos plot, hold on y hold off
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.

69
Ejemplo 15 (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, ...

70
Actividad 20
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_U1A20

70
Actividad 21
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_U1A21


71
Actividad 22
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_U1A22


72
Actividad 23
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_U1A23 73
Actividad 24
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_U1A24


75

También podría gustarte