Documentos de Académico
Documentos de Profesional
Documentos de Cultura
COORDINACIÓN EDITORIAL
VICERRECTORADO ACADÉMICO
Este libro está dedicado a mis padres Hugo y Gloria, por el apoyo
incondicional tanto económico como emocional, quienes a lo largo de
nuestra vida han velado por nuestro bienestar y educación siendo
nuestro pilar fundamental.
A mis hermanos Jimmy y Nahomi, por el apoyo y motivación que
me han dado para nunca rendirme en el proceso de alcanzar mis metas.
A mis amigas y compañeras Rosita, Ninoska y Miriam, quienes me
han apoyado dedicándome un poco de su tiempo, su paciencia y su
comprensión.
Dennys San Martin
Primera edición 2015
ISBN: 978-9978-316-80-1
Portada:
Concepto editorial: Jorge Maza Córdova
Samanta Cabezas (est. Comunicación Social)
Fotografía: Dir. de Comunicación UTMACH
Introducción .............................................................................. 13
Algoritmos de Programación
Lenguaje de programación....................................................... 15
Generaciones de los Lenguajes de Programación...................... 16
Etapas de Desarrollo de un Programa...................................... 18
Variables.................................................................................. 19
Propiedades de las Variables.................................................... 20
Nombres de Variables.............................................................. 21
Vocabulario.............................................................................. 22
Jerarquía de Variables............................................................. 22
Ejercicios sobre Operaciones con Variables.............................. 23
Algoritmo................................................................................. 24
Desarrollo de Algoritmos.......................................................... 25
Diagrama de Flujo.................................................................... 26
Comandos básicos en MATLAB................................................ 28
Ejercicios sobre Algoritmos y Comandos Básicos en MATLAB... 30
Estructuras condicionales
Estructuras de Control Condicionales...................................... 33
Estructura Condicional Simple IF/END.................................... 33
Estructura Condicional Doble IF/ELSE/END........................... 35
Estructura Condicional Múltiple IF/ELSEIF/ELSE/END.......... 36
Estructura Condicional Múltiple SWITCH/CASE...................... 38
Ejercicios sobre Estructuras Condicionales.............................. 40
Estructuras Repetitivas
Estructuras de Control Repetitivas........................................... 43
Estructura Repetitiva FOR....................................................... 43
Estructura Repetitiva WHILE................................................... 45
Interrupción con BREAK.......................................................... 46
Interrupción con CONTINUE.................................................... 47
Ejercicios sobre Estructuras Repetitivas................................... 49
Arreglos en MATLAB
Arreglo Unidimensional............................................................ 53
Manipulación de vectores......................................................... 53
Creación de vectores................................................................ 56
Comandos................................................................................ 57
Operaciones entre vector.......................................................... 60
Ejercicios sobre Vectores.......................................................... 61
Arreglo Multidimensional......................................................... 62
Manipulación de matrices........................................................ 62
Manipulación filas y columnas................................................. 65
Matrices Especiales.................................................................. 66
Operaciones entre matrices...................................................... 68
Comandos Especiales............................................................... 69
Ejercicios sobre Matrices.......................................................... 71
Graficación en MATLAB
Gráficos Bidimensionales 2D.................................................... 73
Comando plot(x,y).................................................................... 73
Comando grid on...................................................................... 74
Comando plot(x,y,’r*’)............................................................... 75
Comandos de etiqueta.............................................................. 75
Comandos para curvas paramétricas....................................... 77
Comando para curvas polares.................................................. 79
Ejercicios sobre Graficación 2D................................................ 80
Gráficos Tridimensionales 3D................................................... 80
Comando plot3(x,y,z)................................................................ 81
Comando quiver3..................................................................... 82
Comandos meshgrid y plot3..................................................... 83
Comandos meshgrid y mesh.................................................... 83
Comandos meshgrid y surf....................................................... 84
Comando subplot..................................................................... 85
Comando colorbar.................................................................... 86
Comandos para curvas de nivel................................................ 87
Comando SPHERE (Esfera)...................................................... 89
Comando CYLINDER (Cilindro)................................................. 90
Ejercicios sobre Graficación 3D................................................ 91
Funciones
Definición................................................................................ 93
Funciones en línea................................................................... 94
Funciones definidas mediante script........................................ 96
Declaracion de una función...................................................... 96
Ejercicios sobre Funciones....................................................... 100
Bibliografía................................................................................. 103
Biografía..................................................................................... 107
Introducción
[13]
En los capítulos 2 y 3, se presentan las estructuras de control
condicionales y repetitivas, respectivamente. Entre las estructuras
condicionales se destacan las condicionales simples, dobles y múltiples.
Mientras que las estructuras repetitivas destacan aquellas que son
controladas por índice y las que son controladas por condición.
En el capítulo 4 se presentan los arreglos unidimensionales
representados por vectores y los arreglos bidimensionales representados
por matrices. Se hace una amplia descripción sobre la manipulación de
la información que estas estructuras almacenan.
En el capítulo 5 se propone un conjunto de estrategias para el
desarrollo de gráficos en 2 y 3 dimensiones. Ésto permite fundamental-
mente la visualización de la información para un apropiado análisis de
los fenómenos presentes en la naturaleza.
Finalmente, el capítulo 6 explica la construcción de funciones que
serán herramientas importantes en la programación modular. Se hace
una diferenciación en la manera que se hace programación secuencial
mediante ficheros, y las ventajas que posee el uso de funciones.
Los autores de este libro expresan su profunda expectativa
de que esta obra se constituya en una referencia que despierte en
los estudiantes de ciencias e ingeniería, la pasión y el interés en la
resolución de problemas mediante el uso de programas computacio-
nales. De igual manera, esperamos que el lector encuentre en cada
problema planteado en este libro, como una oportunidad para atreverse
a aprender: Sapere aude.
Algoritmos de programación
Lenguaje de programación
[15]
16 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
- Incrementa el vocabulario.
- Permite elegir mejor el lenguaje a utilizar para cada tarea.
- Hace más fácil aprender nuevos lenguajes de programación.
Editor Disco
Procesadores Disco
Compilador Disco
Vinculador Disco
Disco
Memoria principal
CPU
Variables
a=S
20 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
Una variable debe ser nombrada para representar todos los valores
posibles que puede contener, por ejemplo; Nota_mediosemestre,
notas_mediosemestre, dato_puntos, nombre_curso. La información
en la variable representa el último valor almacenado, desapareciendo
el contenido que estaba previamente guardado. Las variables se usan
para obtener una copia de la información preservando el contenido
original.
Nombre
Tipo
Valor
Tiempo de vida
Ubicación
Nombres de Variables
Vocabulario
Jerarquía de Variables
1. Los paréntesis ()
2. Exponenciación
3. La multiplicación y división, *, /, de izquierda a derecha.
4. Más y menos, +, −, de izquierda a derecha.
Ejemplo:
3 + 5/2 * 4 − 2 ^ 3 + (5 * 2) = 3 + 5/2 * 4 − 2 ^ 3 + 10
3 + 5/2 * 4 − 2 ^ 3 + (5 * 2) = 3 + 5/2 * 4 − 8 + 10
3 + 5/2 * 4 − 2 ^ 3 + (5 * 2) = 3 + 2,5 * 4 − 8 + 10
3 + 5/2 * 4 − 2 ^ 3 + (5 * 2) = 3 + 10 − 8 + 10
3 + 5/2 * 4 − 2 ^ 3 + (5 * 2) = 15
>> x = 5+2 ^ 2
>> y = 2*x
>> z=x^2+y^2
>> 3 * (5/3 − 4/3) − 1
>> pi
>> (−1) ^ (0,5)
>> log(0)
>> 0/0
>> S=2>4
>> S |~ S
>> (2 < 3) * 3
>> true * 3
>> false | −4,03
>> w ='Goodmorning'
>> w
24 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
Algoritmo
Ejemplos de Algoritmos
- +@¡;¡¡;;¡.¡,¡;•
l.
2.
Verter el agua
caliente en la
taza.
Agregar café en
-
1
el agua caliente
3. Agregar azúcar
al gusto.
4. Agitar el agua
I
con el azúcar y
el café.
Algoritmos de Programación 25
-a=S
• INiii[ii[.],jfi
1. Sumar el
primer número
con el segundo
• -
número.
c=ll
b=6 c=a+b
Desarrollo de Algoritmos
Ejemplo
Describa un algoritmo para calcular el área de un triángulo dados
sus tres lados (suponer que son 5, 6, 8).
Datos: a, b, c: Lados del triángulo.
Resultado: s: Área del triángulo.
Fórmula geométrica: s = t(t − a)(t − b)(t − c), siendo t = a+b+c
2
26 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
Resolución:
1. Objetivo: Calcular el área de un triángulo dado sus tres lados.
2. Componentes o variables:
a=5
b=6
c=8
s =área del triangulo
3. Instrucciones necesarias:
Fórmula geométrica para calcular el área de un triángulo
s = t(t − a)(t − b)(t − c)
Donde primero debemos calcular el valor de t dada la siguiente
fórmula t = a+b+c
2
Una vez calculado t se procede a reemplazar en la fórmula para el
área de un triángulo
4. Prueba de validacion:
S a b c t
14.9812 5 6 8 9,5
Diagrama de Flujo
Desarrollo
•
Figura 8: Componentes de un diagrama de flujo
Inicio/ Fin
Entrada de datos
V
Ingreso de datos
>>variable= input('mensaje');
Salida de datos
» disp('variable');
Ejemplo
- (a+b+c)/2
Bloque de cálculos
s - Jt(t - a)(r - b)(t - e)
Command Window
>> c = fix (20/6)
c =
2
ƒx
Command Window
>> c = mod(20,6)
c =
2
ƒx
[33]
34 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
9 no
9
a, b
no
suma - a+ b
Estructuras Condicionales 35
9 no
instrucciones 1 instrucciones 2
9
a, b
resta- a- b
suma resta
9
instrucciones 1
instrucciones 2
o
1 % Estructura Condicional Multiple
2
3 if condicion1
4 instrucciones1;
5 elseif condicion2
6 instrucciones2;
7 else
8 instrucciones3;
9 end
suma- a+b
resta -a-b
resta
38 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
o
Estructuras Condicionales 39
si
d f- a+ b+ e-a
a, b, e, d
d f- a+ b +c*a
a, b, e, d
o
Los siguientes ejercicios han sido propuestos por el Profesor Luis
Rodríguez en [6].
3. Dados el radio y la altura de un cilindro, si la altura es mayor al
radio, calcule y muestre el volumen del cilindro, caso contrario muestre
el mensaje: Error.
42 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
[43]
44 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
no
Para i f- l:n
si
1 % Estructura Repetitiva FOR
instrucciones 2
3 for i=1:n
4 instrucciones;
5 end
9
suma - O
Para i~ 1:n
nímpar -2* i -1
no
suma - O
i - 1
nimpar - O
Gp
o
46 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
no
no
y f:- y-3*j
Xf:- X -y
y f:- 28
o
j f:- j+l j f:- o
50 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
no
i,j, X, y
xf-x+y
y f- 10
o
j f- o
1 x =3;
2 while x < 14
3 disp(‘listo!’)
4 x = x + 3.5;
5 end
La respuesta es
4. Reescriba una forma alternativa del mismo programa que se
presenta a continuación, conservando su funcionamiento. Debería ser
capaz únicamente de cambiar la síntaxis de la estructura for por una
estructura while.
1 n = 10;
2 x = 0;
3 y = 0;
4 for i=1:n
5 x = x + 5;
6 y = x + 3;
7 end
Estructuras Repetitivas 51
Arreglo Unidimensional
Manipulación de vectores
Sintaxis de un vector
nombre = [componentes]
[53]
54 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
Command Window
>> x = [5 , 7, 4];
>> x
x =
5 7 4
ƒx
Command Window
>> t = [6; 9;3];
>> t
t =
5 7 4
ƒx
Command Window
>> x = [x, 8];
>> x
x =
5 7 4 8
ƒx
Command Window
>> x = [6 , x] ;
>> x
x =
6 5 7 4 8
ƒx
Arreglos en MATLAB 55
Command Window
>> x (3) = [ ] ;
>> x
x =
6 5 4 8
ƒx
Command Window
>> x = [ ] ;
>> x
x =
[ ]
ƒx
Command Window
>> x (1) = 5;
>> x (2) = 7;
>> x (3) = 4;
>> x
x =
5 7 4
ƒx
Command Window
>> x = [6 , 7, 4, 8, 3];
>> x
x =
6 7 4 8 3
ƒx
56 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
Command Window
>> x (3) ;
ans =
4
ƒx
Command Window
>> x (4) = 9;
x =
6 7 4 9 3
ƒx
Command Window
>> x (2:4) ;
ans =
7 4 9
ƒx
Command Window
>> x = [x(1:2) , 8, x(3:5) ] ;
>> x
x =
6 7 8 4 9 3
ƒx
Creación de vectores
Command Window
>> y = input ( ‘ ingrese un vector : ‘ ) ;
Command Window
>> y = 10:2:20
y =
10 12 14 16 18 20
ƒx
Command Window
>> y = 10:20
y =
10 11 12 13 14 15 16 17 18 19 20
ƒx
Command Window
y =
10 12 14 16 18 20
ƒx
Comandos
Command Window
>> v = [2 4 7 3 5 8 6];
>> n = length (v) ;
n =
8
ƒx
58 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
Command Window
>> s = sum(v) ;
s =
42
ƒx
Command Window
>> m = max(v) ;
m =
8
ƒx
Command Window
>> [m, p ] = max(v) ;
m =
8
p =
7
ƒx
Command Window
>> p = mean(v) ;
p =
3 5.2500
ƒx
Command Window
>> v = [2 4 7 3 5 8 6];
>> e = ismember(8,v) ;
e =
1
>> e =ismember(9,v) ;
e =
0
ƒx
Arreglos en MATLAB 59
Command Window
Command Window
>> a = [ 1 3 2];
>> b = [ -2 2 -2];
>> c = cross (a , b)
c =
-10 -2 8
ƒx
Command Window
>> a = [ 1 3 2];
>> b = [ -2 2 -2];
>> c = dot (a , b)
c =
0
ƒx
La raiz de un vector.
Command Window
z =
0 1 2 3 4 5
ƒx
60 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
Command Window
>> x = a + b ;
ƒx
Resta de vectores
Command Window
>> x = a - b ;
ƒx
Multplicación de vectores
Command Window
>> x = a ∗ b ;
ƒx
Command Window
>> x = a .∗ b ;
ƒx
Command Window
>> x = a ./ b ;
ƒx
Arreglos en MATLAB 61
Command Window
>> x = a .ˆ2 ;
ƒx
Arreglo Multidimensional
Manipulación de matrices
Command Window
10 20 30 40
5 7 9 11
13 15 17 19
2 4 6 8
ƒx
Command Window
>> a = [10;20;30;40]
>> b = [5;7;9;11]
>> c = [13;15;17;19]
>> d = [2;4;6;8]
>> x = [a,b,c ,d]
x =
10 5 13 2
20 7 15 4
30 9 17 6
40 11 19 8
ƒx
Arreglos en MATLAB 63
Command Window
>> a = [2 5 7; 4 6 2;8 9 3]
a =
2 5 7
4 6 2
8 9 3
ƒx
Command Window
>> a = (3 ,2)
ans =
9
ƒx
Command Window
>> a (3 ,2) = 10
ans =
2 5 7
4 6 2
8 10 3
ƒx
Acceder a la fila 2.
Command Window
>> d = a(2,:)
d =
4 6 2
ƒx
Acceder a la columna 2.
Command Window
>> d = a(:,2)
d =
5
6
9
ƒx
64 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
Command Window
5 7
6 2
ƒx
Command Window
Command Window
Command Window
>> a = [2 4 5; 6 0 7; -2 8 3]
3 a =
2 4 5
6 0 7
-2 8 3
>> a=[a ; a ( 3 , : ) ] ;
a =
2 4 5
6 0 7
-2 8 3
-2 8 3
ƒx
Command Window
a =
2 4 5
6 0 7
-2 8 3
-2 8 3
>> a=[a , a ( : , 2 ) ] ;
a =
2 4 5 4
6 0 7 0
-2 8 3 8
-2 8 3 8
ƒx
66 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
Command Window
a =
2 4 5 4
6 0 7 0
-2 8 3 8
-2 8 3 8
>> a (1 , : )= [ ] ;
a =
6 0 7 0
-2 8 3 8
-2 8 3 8
ƒx
Command Window
a =
6 0 7 0
-2 8 3 8
-2 8 3 8
>> a ( : , 3 )= [ ] ;
a =
6 0 0
-2 8 8
-2 8 8
ƒx
Matrices Especiales
Command Window
>> a = zeros (3 , 4 )
a =
0 0 0 0
0 0 0 0
0 0 0 0
ƒx
Arreglos en MATLAB 67
Command Window
>> b = ones (4 ,3)
b =
1 1 1
1 1 1
1 1 1
1 1 1
ƒx
Matriz identidad de 4 x 4.
Command Window
>> c = eye (4 , 4 )
c =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
ƒx
Command Window
>> d =rand (5 , 6 )
d =
0.8147 0.0975 0.1576 0.1419 0.6557 0.7577
0.9058 0.2785 0.9706 0.4218 0.0357 0.7431
0.1270 0.5469 0.9572 0.9157 0.8491 0.3922
0.9134 0.9575 0.4854 0.7922 0.9340 0.6555
0.6324 0.9649 0.8003 0.9595 0.6787 0.1712
ƒx
Command Window
>> d =10∗rand (5 , 6 )
d =
7.0605 8.2346 4.3874 4.8976 2.7603 4.9836
0.3183 6.9483 3.8156 4.4559 6.7970 9.5974
2.7692 3.1710 7.6552 6.4631 6.5510 3.4039
0.4617 9.5022 7.9520 7.0936 1.6261 5.8527
0.9713 0.3445 1.8687 7.5469 1.1900 2.2381
ƒx
68 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
Command Window
>> d =fix (10∗ rand (5 , 6 ) )
d =
7 9 8 3 3 2
2 5 2 1 8 7
5 1 8 2 5 7
6 1 2 6 5 3
8 2 9 4 9 5
ƒx
Command Window
>> x = a + b ;
ƒx
Resta de matrices.
Command Window
>> x = a - b ;
ƒx
Command Window
>> x = a ∗ b ;
ƒx
Command Window
>> x = a .∗ b ;
ƒx
Arreglos en MATLAB 69
Command Window
>> x = a ./ b ;
ƒx
Comandos Especiales
Command Window
>> a = [2 4 5; 6 0 7; -2 8 3];
a =
2 4 5
6 0 7
-2 8 3
>> [ n ,m]=size ( a ) ;
n =
3
m =
3
ƒx
Command Window
>> c = sum( a ) ;
c =
6 12 15
ƒx
Command Window
‘
>> f = sum(a ) ;
f =
11
13
9
ƒx
70 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
Command Window
>> s = sum(sum( a ) ) ;
s =
33
ƒx
Command Window
>> max( a )
ans =
6 8 7
ƒx
Command Window
>> a = [2 4 5; 6 0 7; -2 8 3]
a =
2 4 5
6 0 7
-2 8 3
>> d =diag ( a )
d =
2
0
3
ƒx
Command Window
Command Window
>> a = [2 4 5; 6 0 7; -2 8 3]
a =
2 4 5
6 0 7
-2 8 3
>> det ( a )
ans =
2.1316 e -14
ƒx
Command Window
>> a = [2 4 5; 6 0 7; -2 8 3]
a =
2 4 5
6 0 7
-2 8 3
>> inv ( a )
ans =
1 .0 e+15 ∗
) )
1 2 3
−3 −4 4
3 7 2
72 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
{
x1 − 2x2 + x3 + x4 = 1
3x1 + 2x3 − 2x4 = 0
4x2 − x3 − x4 = 0
5x1+ 3x3 − x4 = 2
{ x1 + x2 − x3 = 15
4x1 − 2x2 + 7x3 = 5
{ x1 + x2 − x3 = 6
3x1 − 3x2 + 2x3 = 3
−x1 − 11x2 + 6x3 = 12
Graficación en MATLAB
Gráficos Bidimensionales 2D
Comando plot(x,y)
Este comando dibuja los pares de puntos (x, y) unidos por segmentos (x
e y representan las componentes de los vectores x e y respectivamente).
Ejemplo: Dibujar y = sen(x). Primero creamos un vector de valores
para x de la siguiente manera x=0:0.1:2*π.
Ahora calculamos los valores de y como se observa en la Figura 32.
[73]
74 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
1 x = 0:0.1:2*pi
2 y = sin(x);
3 figure(1);
4 plot(x,y);ƒx
0.8
0.6
04
0.2
-0.2
-0.4
-0_6
-0.8
-1~~~~~~~~~~~~~~~~~~~
o
Comando grid on
1 x = 0:0.1:2*pi
2 y = sin(x);
3 figure(1);
4 plot(x,y);
5 grid on:
Comando plot(x,y,’r*’)
1 x = 0:0.1:2*pi
2 y = sin(x);
3 figure(1);
4 plot(x,y’r*’);
5 grid on;
0.8 ..
+'+ *+
....
..
i •··
+
0.6
+
+
+·· +
..+ .. ;.
04
•
02 +
+
,., *·..··
.. '+·'+ +
,
.
-O 2 ................ ; ., +
: t
-0.4 .... . ,
-06
-0.8
·1
.. ...
+
\.
• *+..
.
· ..
.~· :
T
+
o 2 5 6
Comandos de etiqueta
1 x = 0:0.1:2*pi
2 y = sin(x);
3 figure(1);
4 plot(x,y,’r*’);
5 grid on;
6 title(‘Grafica de funcion y = f(x)’);
7 xlabel(‘Eje de abcisas’);
8 ylabel(‘Eje de coordenadas’);
9 legend(‘y = sen(x)’);
76 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
.JL...-~~-'-~~-'-~~--'~~~L--·~·~"*1~~~'-~~J
o 3 4 5 6
••• ·'·~··
8Jt de abc1sas
~= distinto
& y
I o
~ no
Ejemplo:
{ x2
−1
si x < 0
si x ≥ 0
Graficación en MATLAB 77
1 x = -4:0.1:4;
2 y = (x.ˆ2).*(x<0)+(-1).*(x>=0);
3 figure(4);
4 plot(x,y);
5 grid on;
6 title(‘funciones de la forma y = f(x)’);
7 xlabel(‘Eje de abcisas’);
8 ylabel(‘Eje de coordenadas’);
9 legend(‘xˆ2 si x<0 , 1 si x>=0);
14
12
10
"'
~ 8
~o
"'"
-c
6
'"
·w
4
o
-2
-4 -3 -2 -1 o 2 3
eje de abcisas
t2 - 1 , t2 - 1
r(t) = ,−5 ≤ t ≤ 5
t2 + 1 t2 + 1
t = −5 : 0,1 : 5;
1 t = -5:(0.1):5;
2 x = t.*(t.ˆ2 -1)./(t.ˆ2 +1);
3 y = 2.*(t.ˆ2 -1)./(t.ˆ2 +1);
4 figure(5);
5 plot(x,y);
6 grid on;
7
8 title(‘Curvas parametricas’)
9 xlabel(‘Eje de abcisas’)
10 ylabel(‘Eje de coordenadas’)
Curvas paremetricas
1.5
i -o s "!"
·1
·1 5 •• ¡
.4 ·1 2 3 5
eje de abcrsas
Graficación en MATLAB 79
r = 2− 4cos(θ);− ≤ θ ≤
1 teta = -pi:0.1:pi,
2 r =2 - 4 * cos(teta),
3 figure(6);
4 polar(teta,r,’yellow’);
5 title(‘Curvas en coordenadas polares’)
6 xlabel(‘ eje de abcisas’)
7 ylabel(‘ eje de coordenadas’)
270
eje de abcisae
80 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
x(x−2)
1. ƒ(x) =
(x+1) (x+2)
2. ƒ(x) = sen(1/x)
x
3. ƒ(x) =
e|x-1|
{ x-1 si x < 0
2
4. ƒ(x) =
si x ≥ 0
{
1-x si x < -1
5. ƒ(x) =
1-x2 si - 1 < x < 1
x-1 si x < 1
Curvas Paramétricas
1. →
r (t) = (2cos3(t), 2sen3(t)), - ≤ t ≤
2. →
r (t) = ( 32 cos(t)(cos(t) + 1), 2sen(2t)), − ≤ t ≤
3. →
r (t) = (sen(2t) + sen(t), − cos(2t) − cos(t)), − ≤ t ≤
4. → t t
r (t) = ( e sen(2t), e cos(2t)), − ≤ t ≤
4 4
5. →
r (t) = ( t − 11 sen(3t),− 22 cos(3t)), − ≤ t ≤
10 10
Curvas Polares
1. r = 7 sen(θ), - ≤ θ ≤
2. r = 3 -6sen(θ), - ≤ θ ≤
3. r = sen(6θ), - ≤ θ ≤
4. r = cos(8θ), - ≤ θ ≤
5. r = 5cos(2θ), - ≤ θ ≤
Gráficos Tridimensionales 3D
Comando plot3(x,y,z)
Para usar este comando, se debe generar un vector para los valores de
t en el intervalo señalado en el problema. Luego, se utiliza el comando
plot3 como se muestra en la Figura 39.
1 t = 0:0.01:8*pi;
2 plot3(cos(t),sin(t),t),grid on;
:JJ
25
20
15
10
.1 .1
comet3(sin(t), cos(t), t)
82 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
Comando quiver3
Para usar este comando, se debe generar un vector para los valores
de t en el intervalo señalado en el problema. Luego, se utiliza el comando
quiver3 como se muestra en la Figura 40.
1 t = 0:0.3:8*pi;
2 x = cos(t);
3 y = sin(t);
4 z = t;
5 dx = -sin(t);
6 dy = cos(t);
7 dz = ones(1,length(t));
8 plot3(x,y,z),hold on, grid on; %sirve para mantener la grafica
9 quiver3(x,y,z,dx,dy,dz);
1 [x,y]=meshgrid(-2:0.1:2);
2 z = exp(-x.ˆ2 - y.ˆ2);
3 plot3(x,y,z),grid on;
1 [x,y]=meshgrid(-2:0.1:2);
2 z = exp(-x.ˆ2 - y.ˆ2);
3 mesh (x,y,z);
-2 -2
1 [x,y]=meshgrid(-2:0.1:2);
2 z = exp(-x.ˆ2 - y.ˆ2);
3 surf (x,y,z);
-2 -2
Graficación en MATLAB 85
1 [x,y]=meshgrid(-2:0.1:2);
2 z = exp(-x.ˆ2 - y.ˆ2);
3 surf (x,y,z), shading flat;
....
08
06
04
02
o
2
-2 -2
Comando subplot
1 [x,y]=meshgrid(-2:0.2:2);
2 z = exp(-x.ˆ2 - y.ˆ2);
3 subplot(2,2,1), plot3(x,y,z), title('plot3');
4 subplot(2,2,2), mesh(x,y,z), title('mesh');
5 subplot(2,2,3), surf(x,y,z), title('surf');
6 subplot(2,2,4), surf(x,y,z), shading flat, title('shading flat');
86 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
Figura 45: Representación de las cuatro figuras en una sola ventana mediante el comando subplot.
plot3 mesh
1 .. ·········:···
o
2
2
o
·2 ·2
0.5
o
2
Comando colorbar
cos (xy)
z=
x2 + y2 + 1
1 [x,y]=meshgrid(-1:0.1:1, -2:0.1:2);
2 z = cos((x.*y)./(x.ˆ2 + y.ˆ2 + 1));
3 surf(x,y,z), colorbar;
Graficación en MATLAB 87
Figura 46: Relación de los valores del relieve de los puntos con el color mediante el uso del comando
colorbar
1 ...
:····· .....
0.98 0.98
···~
0.96
0.97
0.94
0.96
0.92
2
·2 ·1
Dada una función z = f(x, y), las curvas sobre el plano XY, determinadas
por la ecuación f(x, y) = k, donde k es una constante se llaman curvas
de nivel. Hay varias formas de obtenerlas usando MATLAB.
Ejemplo: Representar la gráfica de la función que se presenta a
continuación, dibujando algunas curvas de nivel.
z = x2 + y2
1 [x,y]=meshgrid(-2:0.1:2);
2 z = x.ˆ2 + y.ˆ2;
3 contour(x,y,z,10);
88 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
1 [x,y]=meshgrid(-2:0.1:2);
2 z = x.ˆ2 + y.ˆ2;
3 contour3(x,y,z,10);
8
I
.I;r
UI
· .. : 1
6
~~!~'"'"'>~;
2
( ~·.
o
2
-2 -2
Graficación en MATLAB 89
1 [x,y]=meshgrid(-2:0.1:2);
2 z = x.ˆ2 + y.ˆ2;
3 pcolor(x,y,z), colorbar;
0.5
-1.5----
-0.5
-1ilmw
1 [x,y,z] = sphere();
2 surf(x,y,z);
90 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
05
-05
·• 1
.1 ·I
1 [x,y,z] = cylinder(10,100);
2 surf(x,y,10*z);
10
o
10
10
·10 ·10
Graficación en MATLAB 91
1. →
r (t) = (2cos3(t), 2sen3(t),t), -4 ≤ t ≤ 3
2. →
r (t) = (cos(t), cos3(t), 14 sen(t)), − ≤ t ≤
3. →
r (t) = ( t6 cos(t), t6 sen(t) 36 t ), −12 ≤ t ≤ 19
4. → t t
r (t) = ( e sen(2t), e cos(2t), t4 ), − 10 ≤ t ≤ 4,8
4 4
5. →
r (t) = (sen(2t) + sen(t), − cos(2t) − cos(t), t6 ), − 9 ≤ t ≤ 10
Vectores de curvas en el espacio
Por cada curva del ejercicio anterior, utilice el comando quiver3
para generar algunos vectores de velocidad de las curvas. Utilice la
resolución adecuada. Recuerde que el comando quiver3 posee la
siguiente sintaxis
dx (t) , dy (t) , dz (t) )
quiver3 = (x (t), y (t), z (t),
dt dt dt
1
1. z =
9 + x2 + y2
2. z = – | xy |
x2 + y2
cos ( )
3. z = 4
3 + x2 + y2
y2
4. z = – 3|x|
5
5. z = e -(x +y )
2 2
92 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
Definición
[93]
94 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
Funciones en línea
sen (x)
ƒ(x) = x
Command Window
>> f=inline ('sin(x)/x' )
f =
Inline function :
f(x) = sin(x)/x
ƒx
Command Window
>> f(2)
ans =
0.4546
>> f (15)
ans =
0.0434
ƒx
Command Window
>> g=inline('exp(-(xˆ2)/2)')
g =
>> fplot(g,[-5 5] )
ƒx
2
x
Figura 52: Gráfica de la función g(x) = e 2 generada usando el comando fplot()
09
08
07
06
05
04
03
02
o1
o-5 -1 o
-4 -3 -2
Se trabaja sobre las variables en el Workspace. Las variables internas son locales a la función.
Automatiza una serie de pasos que se repiten con Se extiende a diferentes aplicaciones que puedan
bastante frecuencia. ser implementadas en MATLAB.
Command Window
10
-2 -2
Command Window
>> [ raiz1 , raiz2 ] = calcularaices (1 , -1 , -6)
raiz1 =
raiz2 =
-2
ƒx
Figura 54: Gráfica del polinomio p(x) = x2 − x − 6 con las raices x1 = 3 y x2 = −2, representadas mediante
asteriscos.
15
10
1 5
a) y= − − ,x=2
x3 x2 − x − 6
Funciones 101
tan(x) − sen(x)
b) y= , x=
x − sen(x) 6
1 1
b) y= − , x=3
2( 1 − x ) 3( 1 − 3 x )
P0(x) =1
P1(x) =x
P2(x) = 21 (3x2 − 1)
P3(x) = 21 (5x3 − 3x)
P4(x) = 81 (35x4 − 30x2 + 3)
P5(x) = 81 (63x5 − 70x3 − 15x)
P6(x) = 161 (231x6 − 315x4 + 105x2 − 5)
...
[103]
Índices de imágenes y fotografías
[105]
106 Eduardo Alejando Tusa Jumbo / Hugo Dennys San Martín Cuenca
[107]
Fundamentos de programación para
ciencias e ingeniería
Se terminó de imprimir en marzo de 2016 en la
imprenta de la UTMACH, calle Loja y 25 de Junio
(campus Machala)
Esta edición consta de 300 ejemplares.
www.utmachala.edu.ec
ISBN: 978-9978-316-80-1
9 789978 316801
1