You are on page 1of 102

UNIVERSIDAD DE VALLADOLID

Escuela Universitaria Politecnica


Departamento de Matematica Aplicada a la Tecnica
Curso de iniciacion a MATLAB
c
Tercera Edicion

Oscar Angulo Torga


Eduardo Cuesta Montero
Cesar Gutierrez Vaquero
Mara del Carmen Martnez Martnez

Indice general
1. Introduccion 6
1.1. Presentacion del curso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2. Entorno Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3. Encuesta inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2. Entorno de trabajo 7
2.1. Matlab Desktop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3. Aritmetica elemental 8
3.1. Edicion en la lnea de comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2. Aritmetica elemental escalar (real y compleja) . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2.1. Operaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2.2. N umeros complejos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.3. Constantes predenidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.4. Inf y NaN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4. Funciones matematicas y formatos de salida 10
4.1. Funciones matematicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.2. Formatos de salida de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5. Aritmetica matricial 12
5.1. Vectores y matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.2. Operaciones matriciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.3. Funciones matriciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.4. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1

Indice general
6. Generacion automatica de datos y asignacion de variables 14
6.1. Generacion automatica de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6.2. Asignacion de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6.3. Seleccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
6.4. Gestion de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
6.5. Entorno de trabajo (Matlab Desktop) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
6.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
7. Operadores logicos 18
7.1. Operadores logicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
8. Editor de texto. Ficheros .m 20
8.1. Editor de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
8.2. Ficheros .m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
8.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
9. Lectura y escritura sin formato en chero 22
9.1. Lectura y escritura sin formato en chero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
9.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
10.Estructura de seleccion 24
10.1. Estructura if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
10.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
11.Estructura iterativa while 27
11.1. Estructura iterativa while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
11.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
12.Estructura iterativa for 28
12.1. Estructura iterativa for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
12.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
13.Funciones 30
13.1. Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
13.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
14.Programacion modular 32
14.1. Programacion modular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 2

Indice general
14.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
15.Escritura con formato en chero 35
15.1. Escritura con formato en chero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
15.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
16.Lectura de chero con formato 38
16.1. Lectura de chero con formato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
16.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
17.Libreras generales 40
17.1. Libreras asociadas con la utilizacion de matrices y funciones . . . . . . . . . . . . . . . . . . 40
17.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
18.Primeros gracos bidimensionales 48
18.1. Comando plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
18.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
19.Dibujo de funciones 50
19.1. Comando fplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
19.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
20.Modicadores de los gracos bidimensionales 51
20.1. Opciones de los comandos plot y fplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
20.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
21.Control de gracos bidimensionales 53
21.1. Control de gracos bidimensionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
21.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
22.Control de la ventana graca bidimensional 57
22.1. Control de la ventana graca bidimensional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
22.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
23.Gracos con n umeros complejos y en escalas logartmicas 59
23.1. Gracos con n umeros complejos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
23.2. Gracos en escalas logartmicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
23.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 3

Indice general
24.Libreras con funciones y gracos estadsticos 62
24.1. Entrada de datos tabulados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
24.2. Descripcion y exploracion graca de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
24.3. Descripcion analtica de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
24.4. Distribuciones de probabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
24.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
25.Primeros gracos tridimensionales 68
25.1. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
26.Dibujo de mallados 69
26.1. Dibujo de mallados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
26.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
27.Control de la ventana y de los gracos tridimensionales 71
27.1. Control de gracos tridimensionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
27.2. Control de la ventana graca tridimensional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
27.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
28.Dibujo de poliedros y de lneas de contorno 73
28.1. Dibujo de poliedros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
28.2. Dibujo de lneas de contorno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
28.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
29.Libreras relacionadas con gracos bidimensionales y tridimensionales 75
29.1. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
30.Copia de la ventana graca y encuesta nal 77
30.1. Copia de la ventana graca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
30.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
31.Estructura de seleccion case 78
31.1. Estructura de seleccion case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
31.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
32.Debugger 80
32.1. Opciones del debugger de MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
32.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 4

Indice general
33.Creacion de libreras 83
33.1. Programacion modular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
33.2. Ejercicio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Nota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
34.Estadstica Descriptiva 85
34.1. Lectura y escritura en formato tabular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
34.2. Tabulacion de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
34.3. Medidas de localizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
34.4. Medidas de orden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
34.5. Medidas de dispersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
34.6. Otras funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
34.7. Representaciones gracas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
34.8. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
35.Modelos de Probabilidad 92
35.1. Modelos de probabilidad implementados en MATLAB . . . . . . . . . . . . . . . . . . . . . . 92
35.2. Funcion de Densidad/Probabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
35.3. Funcion de Distribucion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
35.4. Inversa de la Funcion de Distribucion (percentiles) . . . . . . . . . . . . . . . . . . . . . . . . 93
35.5. N umeros aleatorios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
35.6. Media y varianza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
35.7. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
36.Estimacion de Parametros y Contraste de Hipotesis 95
36.1. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
37.Modelos de Regresion y Analisis de la Varianza 98
37.1. Modelos de regresion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
37.2. Analisis de la varianza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
37.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
38.Encuesta nal 101
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 5
Hora 1
Introduccion
1.1. Presentacion del curso
1.2. Entorno Linux
1.3. Encuesta inicial
6
Hora 2
Entorno de trabajo
2.1. Matlab Desktop
Junto a la barra de menus caracterstica de cualquier aplicacion Windows distinguimos
Command Window
Ventana de comandos.
Command History
Historial de comandos.
Current Directory
Directorio actual.
2.2. Ejercicios
1. Modica el entorno original para que aparezca:

Unicamente la ventana de comandos.


La Ventana de comandos y los comandos ejecutados en sesiones anteriores.
La ventana de comandos y el directorio de trabajo.
Prueba otras posibilidades y escoge la que mas se adec ue a tu forma de trabajo.
2. Crea un directorio de trabajo con tu nombre.
7
Hora 3
Aritmetica elemental
3.1. Edicion en la lnea de comandos

Historial de comandos ejecutados.

Permiten el desplazamiento horizontal en la lnea de comandos.
. . . +[ENTER]
Continuacion de comando en la lnea siguiente.
clc
Borra el contenido de la pantalla y coloca el cursor en la primera lnea.
[Esc]
Borra la lnea.
%
Todo lo que aparece detras del smbolo % y en la misma lnea se considera un comentario.
Ej.: % Esto es un comentario
,
Separa instrucciones. Ej.: 2+3, cos(pi)
;
Evita la salida de resultados por pantalla.
En, en
Notacion cientca. Ej.: E4,E-8,e5
[Ctrl]+[c]
Detiene la ejecucion de cualquier comando o funcion.
3.2. Aritmetica elemental escalar (real y compleja)
3.2.1. Operaciones
+, , , /, \,
Suma, resta, multiplicacion, division, division inversa y potenciacion (real o com-
pleja).
8
3 Aritmetica elemental
3.2.2. N umeros complejos
Asignacion
Ej.: z=2-3i, z=-4+7j, z=2+2*i
3.2.3. Constantes predenidas
pi
N umero .
i, j
Unidad imaginaria.
eps


Epsilon de la maquina.
3.2.4. Inf y NaN
Inf, inf
Representa el innito.
NaN, nan
Not a Number (indeterminacion).
3.3. Ejercicios
Realiza las siguientes operaciones y observa el resultado:
1. 1 + 2
2. % 1 + 2
3. 1 + (2 4);
4. 1 + 2 4
5. (1 + 2) 4
6. (1 + 2)4
7. 1 + (2 4)
8. 4/2
9. 4\2;
10. 3 2\4
11. 3 (2\4)
12. (3 2)\4
13. 1/0
14. 1/inf
15. 5 inf
16. inf/inf
17. inf inf
18. nan 0
19. nan 1
20. nan inf
21. 2
3
22. 2
3
+ 2
23. 2
3
2
24. i
2
, i
3
, i
4
, i
0
25. 1 2 i + 2 + 4 i
26. (1 2 i) (2 + 4 i)
27. 1 2 i 2 + 4 i
28. (1 24 i)/(2 + 4 i)
29. (1 24 i)\(2 + 44 i)
30. (i 2 i)
(2+4i)
31. 2E 2 3E8
32. 2, 34 3
33. 2,34 3
34. eps
35. eps + 1
36. 1/(0 + eps)
37. (0 + eps)/(0 + eps)
38. (pi + eps)/pi
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 9
Hora 4
Funciones matematicas y formatos de
salida
4.1. Funciones matematicas
sin, cos, asin, acos, sqrt, log, . . .
Seno, coseno, arcoseno, arcocoseno, raz cuadrada, logaritmo
neperiano,... Ej.: cos(pi)
iniciales + [TAB]
MATLAB ofrece un sencillo asistente para recordar la sintaxis de sus fun-
ciones. Concretamente, la orden iniciales + [TAB] devuelve todas las funciones disponibles cuyo
nombre comienza con iniciales. Este procedimiento no es sensible a may usculas y min usculas.
Ej.: Conto + [TAB]
4.2. Formatos de salida de datos
format, format short
Formato corto. Ej.: 0.0769
format short e
Formato corto con mantisa y exponente. Ej.: 7.6923e-002
format short g
Mejor formato jo o punto otante con cinco dgitos. Ej.: 0.076923
format long
Formato largo. Ej.: 0.07692307692308
format long e
Formato largo con mantisa y exponente. Ej.: 7.692307692307693e-002
format long g
Mejor formato jo o punto otante con quince dgitos. Ej.: 0.0769230769230769
format rat
Formato racional. Ej.: 1/13
format compact
Salida por pantalla de forma compacta, es decir, ocupando menos espacio.
10
4 Funciones matematicas y formatos de salida
4.3. Ejercicios
1. Utiliza los diferentes formatos de salida presentados para escribir los siguientes n umeros:
1
33
,

3,
2
,
(1 i)
0,5
.
2. Eval ua las siguientes funciones en los puntos indicados (utiliza la ayuda para encontrar la expresion
de cada funcion):
a) f(x) = cos x en x = ,
2
, i, i
b) f(x) = log x en x = 10, i, 1 + i, 0
c) f(x) = log
10
x en x = 10
2
, 0, eps, 1, 1
d) f(x) =

x en x = 16, 1, 1 + i
e) f(x) = sinx en x = , 1 + i, inf
f ) f(x) = csc x en x = /2, , i
g) f(x) = csc x en x = , /2, i
h) f(x) = sinx/x en x = 0, eps, inf
3. Calcula log 3. Comprueba que en formato racional log 3 = 11996/3051. Realiza la diferencia log 3
11996/3051. El resultado es cero? Porque?
4. MATLAB dispone de la funcion rand para generar n umeros aleatoriamente en el intervalo (0,1) abierto.
a) Encuentra el nombre de una funcion que calcule el maximo de un conjunto de datos sabiendo que
empieza por max. Utiliza la ayuda para eliminar candidatos.
b) Combina la funcion rand con la obtenida en el apartado anterior para obtener el maximo de
100000 n umeros previamente generados por ti al azar del intervalo (0,1).
c) Es cierto realmente que los n umeros generados son menores estrictamente que 1?
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 11
Hora 5
Aritmetica matricial
5.1. Vectores y matrices
Vector
Los vectores se introducen entre corchetes y los elementos estan separados por espacios
o comas. Ej.: [1 2 3]
Matriz
Las matrices se introducen por las. Los elementos de una misma la estan separados
por blancos o comas, mientras que las las estan separadas por pulsaciones de [ENTER] o por ;. Ej.:
[1 2 3; 4 5 6; 7 8 9]
5.2. Operaciones matriciales
+, , ,, .

,

, inv(), /, \, det(A)
Suma, resta, producto, potenciacion, traspuesta, traspuesta y
conjugada, inversa, division, division inversa y determinante de una matriz.
., ., ./, .\
Producto, potenciacion, division y division inversa elemento a elemento (se emplean
los anteriores precedidos por un punto).
5.3. Funciones matriciales
sin, cos, asin, acos, sqrt, log, . . .
Seno, coseno, arcoseno, arcocoseno, raz cuadrada, logaritmo
neperiano,.... Ej.: cos([1 2; 3 4])
5.4. Ejercicios
Realiza, si es posible, las siguientes operaciones y observa el resultado:
1.
_
_
_
1 2 1
1 2 1
1 2 1
_
_
_
+
_
_
_
2 1 1
1 1 1
3 1 1
_
_
_
12
5 Aritmetica matricial
2.
_
_
_
1 2 1
1 2 1
1 2 1
_
_
_
+
_
_
_
1 1
1 1
1 1
_
_
_
3.
_
_
_
1 2 1
1 2 1
1 2 1
_
_
_

_
_
_
1 1
2 1
1 1
_
_
_
4.
_
_
_
1 2 1
1 2 1
1 2 1
_
_
_

_
_
_
2 1 1
2 1 1
1 1 1
_
_
_
5.
_
_
_
1 2 1
1 2 1
1 2 1
_
_
_
.
_
_
_
2 1 1
2 1 1
1 1 1
_
_
_
6.
_
_
_
1 2 1
2 1 1
1 1 1
_
_
_
2
7.
_
_
_
1 2 1
2 1 1
1 1 1
_
_
_
.2
8.
_
_
_
1 2
1 1
1 1
_
_
_
2
9.
_
_
_
1 2
1 1
1 1
_
_
_
.2
10.
_
_
_
1 2
1 1
1 1
_
_
_

_
_
_
1 2
1 1
1 1
_
_
_
11.
_
_
_
1 2
1 1
1 1
_
_
_
.
_
_
_
1 2
1 1
1 1
_
_
_
12. sqrt
_
_
_
1 2
1 1
1 1
_
_
_
13.
_
_
_
1 2
1 1
1 1
_
_
_
.(
1
2
)
14.
_
_
_
1 2
1 1
1 1
_
_
_
(2)
15.
_
_
_
1 2
1 1
1 1
_
_
_
.(1)
16. inv
_
_
_
1 2 1
2 1 1
1 1 1
_
_
_
17.
_
_
_
1 2 1
2 1 1
1 1 1
_
_
_
(1)
18. log
_
_
_
0 1
2 1
1 1
_
_
_
19. 1/
_
_
_
2 1
1 1
1 1
_
_
_
20. 1 ./
_
_
_
2 1
1 1
1 1
_
_
_
21. 1 ./
_
1 1
0 1
_
22. sin
_
eps 1
1 eps
_
./
_
eps 1
1 eps
_
23. sin
_
eps 1
1 eps
_
/
_
eps 1
1 eps
_
24. sin
_
eps 1
1 eps
_
\
_
eps 1
1 eps
_
25. sin
_
eps 1
1 eps
_
.\
_
eps 1
1 eps
_
26. sin([1

2
])
27. cos([0

4
; 1])
28. log([1 2 3 ; 4 5 6 ; 7 8 9])
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 13
Hora 6
Generacion automatica de datos y
asignacion de variables
6.1. Generacion automatica de datos
eye(n, m), eye(n)
Matriz unidad de tama no n m (tama no n n respectivamente).
zeros(n, m), zeros(n)
Matriz nula de tama no n m (tama no n n respectivamente).
ones(n, m), ones(n)
Matriz de unos de tama no n m (tama no n n respectivamente).
rand(n, m), rand(n)
Matriz de n umeros aleatorios entre 0 y 1 con distribucion uniforme y
tama no n m (tama no n n respectivamente).
randn(n, m), randn(n)
Matriz de n umeros aleatorios con distribucion N(0, 1) y tama no n m
(tama no n n respectivamente).
magic(n)
Matriz magica de tama no n n.
linspace(x1, x2, n)
Vector con n componentes equiespaciadas entre x1 y x2.
n : h : k
Secuencia de n umeros desde n hasta k con incremento h (el incremento puede ser
negativo).
n : k
Secuencia de n umeros desde n hasta k con incremento 1.
diag(vector)
Matriz diagonal cuyos elementos diagonales son las componentes de vector.
6.2. Asignacion de variables
Para guardar cualquier tipo de dato (n umero, vector, matriz, cadena de caracteres, etc.) es necesario
asignarle a una variable que lo almacena. De esta manera podremos utilizarlo cuantas veces queramos
a lo largo de la sesion de trabajo. Ej.: a=1; v=[1 2 3]; A=[1 2 3; 4 5 6; 7 8 9]; d=Hola
14
6 Generacion automatica de datos y asignacion de variables
input
Permite la introduccion interactiva de datos a traves del teclado.
Ej.: X=input(Introduce una matriz)
6.3. Seleccion
Acceso a sus elementos
Se accede a los elementos de una matriz poniendo los ndices de refe-
rencia entre parentesis, separados por coma. Se accede a los elementos de un vector poniendo el ndice
de referencia entre parentesis. Ej.: A(2,3), v(2), A(1:4,3)
[ ]
Permite seleccionar varias las o columnas. Ej.: A([1 3 5],2), A(3,[3 1])
:
Selecciona las o columnas completas.
Ej.: A(:,3), A(1:4,:), A(:,[2 4]), A(1:3,2:4), A(:)
6.4. Gestion de variables
clear
Elimina las variables residentes en el espacio de trabajo.
who
Visualiza las variables residentes en el espacio de trabajo.
whos
Visualiza las variables residentes en el espacio de trabajo con informacion adicional
(tama no, espacio fsico y tipo).
ans
Almacena el resultado de la ultima operacion.
6.5. Entorno de trabajo (Matlab Desktop)
Workspace
Espacio de variables.
6.6. Ejercicios
1. Teclea las siguientes secuencias de comandos y explica los resultados obtenidos.
x=3;x
y=3+5;y
x=2;y=3;x=y;x,y
x=2;y=3;y=x;x,y
x=y=z
x==y
2. Asigna a las variables v1, v2 y v3 los vectores (1, 2, 3), (1, 0, 3) y (1, 1, 1, 1) ejecutando los siguientes
comandos:
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 15
6 Generacion automatica de datos y asignacion de variables
v1=input(Teclea el vector [1 2 3]\n)
v2=input(Teclea el vector [-1 0 -3]\n)
v3=input(Teclea el vector [1 1 1 1]\n)
Realiza, si es posible, las siguientes operaciones:
1. v1 + 2
2. v1 + v2
3. v1 + v3
4. 2 v1
5. v1 v2
6. v
1
v
t
2
7. v
1
. v
t
2
8. v
t
1
v
2
9. v
t
1
. v
2
10. v1. v2
11. v1 v3
12. v1. v3
13. v1.

v2
14. v1 v2.

15. log(v1), sin(v2)


16. 2.v1
17. v1.2
18. sin(v
2
)/v
2
19. sin(v
2
)./v
2
20. sin(v
2
+ eps)./(v
2
+ eps)
3. Asigna a las variables A1, A2 y A3 las matrices
_
1 2
4 5
_
,
_
1 2
2 1
_
,
_
_
_
1 4
5 1
1 7
_
_
_
.
Realiza, si es posible, las siguientes operaciones:
1. A1 + 2
2. 2 A1
3. A1 + A2
4. A2 A1
5. A1 A3
6. A3 A1
7. A1. A2
8. log(A3)
9. A1
1
10. ones(6) ones(6, 1)
11. ones(6) ones(1, 6)
12. ones(6) eye(6)
13. ones(6). eye(6)
14. rand(5), rand(5), rand(5)
15. A = magic(3)
16. sum(A)
17. sum(A
t
)
18. sum(A(:, 2)), sum(A(:, 3)), sum(A(2, :))
19. Utiliza la ayuda para calcular el determinante y
la traza de la matriz A2.
20. Enumera las variables que residen en el espacio
de trabajo.
21. Vaca el espacio de trabajo.
22. Enumera las variables que residen ahora en el
espacio de trabajo.
4. Declara los vectores v1=[1 2 3 4 5 6 7 8 9 10], v2=[1 3 5 7 9] y v3=[2 4 8 16 32 48] de dis-
tintas maneras. Cual es la mas sencilla?.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 16
6 Generacion automatica de datos y asignacion de variables
5. Realiza las siguientes operaciones sobre la matriz A = magic(10) y observa los resultados obtenidos:
1. A(1, 2 : 3)
2. A(2 : 4, 2)
3. A(1 : 3, 4 : 5)
4. A([1, 3, 5, 7, 9], [1, 3, 5, 7, 9])
5. A(4 : end, 1)
6. A(4 : end, 1 + 2 : 4)
7. A(4 : end, (1 + 2) : 4)
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 17
Hora 7
Operadores logicos
7.1. Operadores logicos
<, >, <=, >=, ==, =
Menor que, mayor que, menor o igual que, mayor o igual que,
igual que, distinto que. Ej.: 0=false, 1=true
&, |, , xor
Operadores logicos y, o, no, o excluyente. Ej.: 0=false, 1=true
7.2. Ejercicios
1. Ejecuta las siguientes operaciones y observa el resultado:
1. 2 < 3
2. 3 < 2
3. 2 > 3
4. 3 > 2
5. 1 == 2
6. [1 2 3] == [3 2 1]
7.
_
1 2
3 4
_
==
_
1 2
3 5
_
8. eye(2)==
_
1 0
0 1
_
9. eye(2)=ones(2)
10. A = 1 : 3; B = 5 : 7;
A >= 4
B >= 4
A >= 4 &B >= 4
A >= 4 | B >= 4
2. Expresa las siguientes condiciones utilizando comandos y operadores de MATLAB.
1. n es un n umero mayor o igual que 4 y menor que 8.
2. n es un n umero mayor o igual que 4 o menor que 8.
3. n es un n umero mayor o igual que 4 y distinto de 10.
4. n es n umero par.
5. n es un n umero par entre 500 y 10
10
(ambos incluidos).
18
7 Operadores logicos
3. Sean A =
_
1 2
1 1
_
, B =
_
0 0
1 1
_
, C =
_
1 0
1 0
_
. Realiza las siguientes operaciones:
1. A + B
2. A + B
3. A. B
4. A. (B)
5. (A <= B) + C
6. A|B
7. xor(A, B)
8. A&B
9. A&B + C
10. A + B&C
11. D = A&B. Que tipo de dato es D?
12. D = A&B +C. Que tipo de dato es
D?
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 19
Hora 8
Editor de texto. Ficheros .m
8.1. Editor de texto
Matlab editor
Crea y edita cheros .m.
Utilidades del editor.
Utilidades del entorno del editor.
Utilidades del entorno de trabajo respecto al editor.
Barras.
8.2. Ficheros .m
.m
Ficheros de texto que contienen codigo MATLAB. Se ejecutan:
desde la ventana Command Window escribiendo el nombre del chero (sin extension), o bien
desde la ventana Current Directory eligiendo la opcion Run que aparece al hacer click con el boton
derecho del raton sobre el chero.
8.3. Ejercicios
1. Ejecuta el chero Entorno01.m y corrige el error abriendole desde el mensaje de error rese nado en la
ventana de comandos.
2. Ejecuta la siguiente serie de comandos
x=rand(3,1);
y=rand(3,1);
z=x+y.^2;
hist(z);
A continuacion ejecuta x=randn(3,1); y
Ejecuta de nuevo el resto de comandos.
Copialos y pegalos en un nuevo chero de texto.
20
8 Editor de texto. Ficheros .m
Grabalos en un chero .m .
3. Ejecuta Entorno03.m Busca los distintos espacios de variables en un problema con distintas funciones.
4. Abre el chero Entorno01.m
Evalua una seleccion
Pon comentarios en las lneas.
Edita en el chero
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 21
Hora 9
Lectura y escritura sin formato en chero
9.1. Lectura y escritura sin formato en chero
disp(A)
Muestra tablas de caracteres por pantalla. Ej.:
A=[hola ,adios];
disp(A)
input
Lectura de datos desde el teclado. Ej.:
z=input(El valor de la variable z es:\n)
save
Copia variables del espacio de trabajo en un chero. Ej.:
save % Copia en el fichero matlab.mat todas las variables del espacio de trabajo.
save datos % Copia en el fichero datos.mat todas las variables del espacio de trabajo.
save datos X Y % Copia en el fichero datos.mat las variables X e Y del espacio de
% trabajo.
save datos U V -append % Incorpora al fichero datos.mat las variables U y V del
% espacio de trabajo. NOTA: sobreescribe.
save data.txt -ascii % Copia con formato ascii en el fichero data.txt todas las
% variables del espacio de trabajo.
save data.txt X Y -ascii % Copia con formato ascii en el fichero data.txt las
% variables X e Y del espacio de trabajo.
load
Copia en el espacio de trabajo las variables o datos contenidos en un chero. Ej.:
load % Copia en el espacio de trabajo las variables contenidas en el fichero
% matlab.mat
load datos % Copia en el espacio de trabajo las variables contenidas
% en el fichero datos.mat
22
9 Lectura y escritura sin formato en chero
load datos X Y % Copia en el espacio de trabajo las variables X e Y contenidas en
% en el fichero datos.mat
load data.txt % Copia en el espacio de trabajo los datos contenidos en el
% fichero con formato ascii data.txt y en la variable data.
diary
Guarda en un chero de texto la secuencia de comandos ejecutados a los largo de la sesion.
Ej.:
diary nombre.txt
.
.
.
diary off
9.2. Ejercicios
Realiza las siguientes operaciones:
1. Guarda en el chero de texto sesion.txt toda la secuencia de comandos que realices para resolver
este ejercicio.
2. Genera un vector v con los n primeros n umeros m ultiplos de tres (n debe introducirse por teclado).
3. Graba el vector v en un chero prueba.mat.
4. Borra el espacio de trabajo. Comprueba que lo has hecho.
5. Calcula v*8.
6. Calcula la matriz magica A de tama no 5.
7. A nade en el chero prueba.mat la matriz A.
8. Borra el espacio de trabajo. Comprueba que lo has hecho.
9. Calcula el determinante de la matriz A.
10. A nade el vector v = (1, 2, 3) en el chero prueba.mat.
11. Borra el espacio de trabajo. Comprueba que lo has hecho.
12. Carga el chero prueba.mat y comprueba cuales son sus variables.
13. Observa la secuencia de comandos que has realizado durante la resolucion de este ejercicio.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 23
Hora 10
Estructura de seleccion
10.1. Estructura if
if condicion logica
.
.
. % secuencia de comandos
end
Ej.:
if n>0 & n<2 % si n>0 y n<2 entonces haz...
disp(Estas en el intervalo)
end
if condicion logica
.
.
. % secuencia de comandos
else
.
.
. % secuencia de comandos por defecto
end
Ej.:
if n>0 & n<2 % si n>0 y n<2 entonces haz...
disp(Estas en el intervalo)
else % en caso contrario haz...
disp(No estas en el intervalo)
end
24
10 Estructura de seleccion
if primera condicion logica
.
.
. % secuencia de comandos (bloque I)
elseif segunda condicion logica
.
.
. % secuencia de comandos (bloque II)
elseif tercera condicion logica
.
.
. % secuencia de comandos (bloque III)
else
.
.
. % secuencia de comandos por defecto (bloque IV)
end
Ej.:
if abs(x)<2 % Si el valor absoluto de x es menor que 2 haz
disp(La variable x esta acotada)
elseif x>-3 % Si no es asi y si x>-3 haz
disp(La variable no esta acotada)
end
10.2. Ejercicios
1. Edita un chero de comandos que te permita calcular la media de un conjunto de datos almacenados
dentro de una matriz A.
2. Escribe un chero de comandos que transforme pesetas en euros (1 euro =166.386 pesetas).
3. Escribe un chero de comandos que calcule una matriz aleatoria n n con n umeros naturales entre 1
y 10.
4. Edita un chero de comandos que permita seleccionar de un n umero natural de dos dgitos la cifra de
las unidades y la cifra de las decenas.
5. Escribe un chero de comandos que te permita averiguar si un n umero n es divisible por 13.
6. Edita un chero de comandos que elimine la primera columna de una matriz A cuando todos los
elementos de dicha columna sean cero.
7. Escribe un chero de comandos para evaluar la siguiente funcion:
f(x, y) =
_

_
x + y si x 0, y 0,
x + y
2
si x 0, y < 0,
x
2
+ y si x < 0, y 0,
x
2
+ y
2
si x < 0, y < 0.
Utiliza el comando input para la lectura de datos.
8. Escribe un chero de comandos que permita obtener el valor absoluto de un n umero almacenado en
la variable x.
9. Escribe un chero de comandos para calcular los valores mnimo y maximo de tres n umeros almace-
nados en un vector de dimension tres llamado datos e introducidos con el comando input.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 25
10 Estructura de seleccion
10. Construye un chero de comandos que simule la extraccion al azar de una carta en una baraja espa nola.
Ejecuta dicho chero dos veces. Que cartas obtienes?
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 26
Hora 11
Estructura iterativa while
11.1. Estructura iterativa while
while condicion logica
.
.
. % secuencia de comandos
end
n=1;
while prod(1:n)<1e100
n=n+1;
disp(Nos llegamos en),n
end
11.2. Ejercicios
1. Escribe un chero de comandos para encontrar el menor entero no negativo n tal que 2
n
> 100

sin
utilizar la funcion logartmica.
2. Edita un chero de comandos que permita calcular el factorial de un n umero leido mediante el comando
input y guardado en la variable n.
3. Escribe un chero de comandos que simule el experimento aleatorio consistente en extraer al azar
cartas de una baraja espa nola hasta la aparicion del primer as. Ejecuta el chero de comandos una
vez y escribe la secuencia de resultados obtenidos.
4. Escribe un chero de comandos que simule el juego de las 7 y media.
5. Edita un chero de comandos que simule un juego de dados entre dos jugadores en el que gana quien
primero llega a sumar 21 en sucesivas tiradas alternas entre ambos jugadores.
6. Modica el chero anterior para conocer si gana el jugador que comienza el juego. Repite 1000 veces
el juego y, a partir de los resultados obtenidos, decide si es mejor empezar el juego, o por el contrario,
es mejor que empiece el adversario.
7. Edita un chero de comandos que simule el experimento aleatorio consistente en lanzar sucesivamente
un dado hasta obtener 10 doses. Ejecuta el chero anterior e indica cuantas tiradas has necesitado y
en cuales has obtenido un dos.
27
Hora 12
Estructura iterativa for
12.1. Estructura iterativa for
for contador
.
.
. % secuencia de comandos
end
El contador puede ser n = 1 : 1 : 10 o n = [1 6 3,2 8]
Ej.:
for n=1:1:10 % Cuenta desde 1 hasta 10 de 1 en 1.
y(n)=n^2; % Declara un vector cuyas componentes son de la forma n^2.
x(n)=2*y(n); % Declara un vector cuyas componentes son de la forma 2*y_n.
end % Fin del bucle.
y,x % Muestra por pantalla los vectores declarados.
12.2. Ejercicios
1. Edita un chero de comandos que permita calcular el factorial de un n umero guardado en la variable
n.
2. Escribe la tabla de multiplicar de un n umero entero positivo ledo a traves del teclado.
3. Escribe un chero de comandos que calcule la suma de los n primeros n umeros naturales.
4. Se denen los n umeros triangulares como los obtenidos de sumar los n umeros naturales sucesivos:
1, 2, 3, . . ., es decir, los primeros n umeros triangulares son: 1, 3, 6, . . .. Escribir un programa que muestre
por pantalla los n primeros n umeros triangulares.
5. Escribe un chero de comandos que permita introducir a traves del teclado un n umero natural n y
que muestre los n primeros n umeros pares.
6. Escribe un chero de comandos que permita introducir a traves del teclado un n umero natural n y
que muestre los n primeros n umeros impares.
7. Edita un chero de comandos para averiguar si un n umero almacenado en la variable n e introducido
a traves del teclado es primo.
28
12 Estructura iterativa for
8. Escribe un chero de comandos que compruebe si una matriz es magica.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 29
Hora 13
Funciones
13.1. Funciones
function [salida1,. . . ,salidaN]=nombre(entrada1,. . . ,entradaM)
Primera lnea de la funcion nom-
bre.m
1. Se guarda como un chero de texto nombre.m cuyo nombre suele coincidir con el de la funcion.
2. Desde la propia funcion se puede hacer llamadas a otras funciones o incluso a ella misma (lo que se
conoce como recursividad).
3. Las variables usadas en cada funcion toman un valor local. Por tanto, una variable con el mismo
nombre en una funcion y en el programa principal mantiene el valor que tome en cada uno de los
contextos.
Ej.:
% Calcula una aproximacion al numero e utilizando el polinomio de Taylor.
m=input(Da el numero de sumandos \n);
x=0;
for n=1:1:m
x=x+1/mifactorial(n); % Llamada a nuestra funcion mifactorial
end
x
donde la funcion mifactorial viene denida por
function [k]=mifactorial(n)
if (floor(n)==n)&(n>0)
k=1;
for m=2:1:n
k=k*m;
end
end
30
13 Funciones
13.2. Ejercicios
1. Programa una funcion llamada stat1 que calcule sobre un conjunto de datos almacenados en un vector
llamado datos su media y el n umero de datos.
2. Programa una funcion que calcule el maximo y el mnimo de dos n umeros y utilzala para obtener el
maximo y el mnimo de tres n umeros.
3. a) Programa una funcion que simule el lanzamiento de un dado. Utiliza el comando
rand(state,sum(100*clok)).
b) Programa una funcion que simule el resultado de n tiradas aleatorias de un dado.
c) Ejecuta el programa anterior para n = 1000 y cuenta el n umero de veces que aparece cada
resultado mediante un programa.
d) Crea una funcion que simule el resultado de sumar la tirada de tres dados.
e) Crea un programa que devuelva el maximo valor que se obtiene al repetir el experimento anterior
dos veces.
4. Crea una funcion con los programas realizados en los ejercicios 3, 4 y 10 de la hora estructura de
seleccion que simule el resultado obtenido al extraer n cartas de una baraja espa nola. El argumento
de entrada es n y la salida debe ser un vector de la siguiente forma (As de copas, Sota de bastos,....).
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 31
Hora 14
Programacion modular
14.1. Programacion modular
La programacion modular responde a la idea divide y venceras. En efecto, la implementacion de
cualquier tarea, por muy compleja que esta sea, es abordable si la fraccionamos en otras mas simples y
faciles de programar. Con esta forma de actuar se consiguen ademas varios objetivos fundamentales de la
programacion:
Disponer de un catalogo de funciones preparadas para su utilizacion sobre cualquier otro programa.
Elaborar codigos sencillos, faciles de entender y modicar posteriormente.
Simplicar la escritura del programa y, por ende, evitar errores sintacticos.
Desarrollar programas incrementalmente. De esta forma siempre se construye sobre algo que ya ha
sido comprobado y que funciona. Si aparece alg un error, lo mas probable es que se deba a lo ultimo
que se ha a nadido, y su b usqueda esta acotada y es mucho mas sencilla.
Como recomendaciones generales para la programacion sobre cualquier lenguaje debemos se nalar:
1. Crear un programa principal que act ue como distribuidor del conjunto de funciones utilizadas.
2. Pensar bien las cosas (sobre una hoja de papel en blanco mejor que sobre la pantalla del PC) siempre
es rentable, porque disminuye el tiempo de depuracion y eliminacion de errores.
3. Escribir el codigo de un modo claro y ordenado, introduciendo comentarios, utilizando lneas en blanco
para separar distintas partes del programa, sangrando las lneas para ver claramente el rango de las
bifurcaciones y bucles, utilizando nombres de variables que recuerden el signicado de la magnitud
que almacenan, etc.
Particularmente, para la programacion con MATLAB, cabe se nalar la importancia de vectorizar los
algoritmos de calculo, es decir, de realizarlos con vectores y matrices y no con variables escalares dentro de
bucles.
14.2. Ejercicios
1. Elabora un programa que simule la hora de salida y la hora de llegada de un autob us de lnea de 40
plazas. El viaje sigue las siguientes pautas:
32
14.2 Programacion modular
El autob us siempre llega a la estacion de origen a las 15.00 horas.
El autob us no sale hasta que este completo.
Todos los viajeros se encuentran en la parada antes de la llegada del autob us.
El autob us solo tiene una puerta de subida.
Cada viajero tarda en subir un tiempo aleatorio entre 20 sg. y 2 minutos.
El tiempo que emplea el autob us en recorrer el trayecto entre el origen y el destino es aleatorio
entre 2 horas 24 minutos y 3 horas.
Se pide encontrar la hora de salida y la hora de llegada en 100 viajes. Cual es la hora media de llegada
del autob us en esos 100 viajes?
Indicaciones:
a) Construir una funcion n=numeroaleatorio(a,b) que devuelva un n umero aleatorio (no necesa-
riamente entero), n, entre a y b. Utiliza la funcion rand.
b) Construir una funcion t=subidaviajero que devuelva el tiempo que tarda en subir un viajero.
Utiliza la funcion numeroaleatorio.
c) Construir una funcion t=duracionviaje que devuelva el tiempo que el autob us tarda en recorrer
el trayecto. Utiliza la funcion numeroaleatorio.
2. Considera que el autob us del ejercicio anterior realiza cinco paradas intermedias. Ademas de las pautas
anteriores se a naden las siguientes:
El tiempo que el autob us emplea en recorrer el trayecto entre dos paradas consecutivas es un
n umero aleatorio entre 25 y 37 minutos.
En cada una de ellas se pueden bajar un n umero aleatorio de viajeros entre 0 y el n umero total
de los que permanecen en el autob us.
El tiempo de bajada de cada viajero del autob us es identico al de subida.
El autob us solo tiene una puerta de bajada. De esta forma, el tiempo de bajada de cada viajero
es la suma del tiempo que tardan el y todos lo viajeros que bajan antes que el.
Aparece un tiempo adicional para recoger el equipaje, que es un n umero aleatorio inferior a 2
minutos 30 sg. para cada viajero.
El autob us sale de la parada cuando todos los viajeros han recogido su equipaje.
Se pide encontrar la hora de salida y la hora de llegada en 100 viajes. Cual es la hora media de llegada
del autob us en esos 100 viajes? Cual es el n umero medio de viajeros que se bajan en la segunda parada
en esos 100 viajes?
Indicaciones:
a) Modica la funcion t=duracionviaje para que devuelva el tiempo que el autob us tarda en
recorrer cada tramo.
b) Construir una funcion t=numeroviajero(a) que devuelva el n umero de viajeros que bajan en
cada parada. Modica la funcion numeroaleatorio para que devuelva un n umero natural entre 0
y a. Se debe tener en cuenta que el n umero de viajeros en el autob us disminuye en cada parada.
c) Construir una funcion t=bajadaviajero que devuelva el tiempo que tarda en bajar un viajero.
Utiliza la funcion numeroaleatorio.
d) Construir una funcion t=recogidaequipaje que devuelva el tiempo que un viajero tarda en
recoger el equipaje. Utiliza la funcion numeroaleatorio.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 33
14.2 Programacion modular
e) Para contabilizar el tiempo de salida utiliza un vector de dimension el n umero de viajeros que
abandonan el autob us que almacenara el tiempo que tarda cada uno de ellos en abandonar la
parada (bajar del autob us + recoger el equipaje). El tiempo de salida es el maximo de estos
valores.
3. Considera que en el viaje del ejercicio anterior los viajeros no se encuentran en la parada a la hora de
salida. Ademas de las pautas anteriores se a naden las siguientes:
Cada viajero sube al autob us en orden de llegada a la parada.
El n umero de viajeros que llegan tarde es aleatorio.
El retraso de cada uno de ellos es aleatorio entre 1 sg. y 30 minutos.
Hay que tener en cuenta que los viajeros con retraso pueden subir directamente o, en caso con-
trario, deben esperar su turno.
Se pide encontrar la hora de salida y la hora de llegada en 100 viajes. Cual es la hora media de llegada
del autob us en esos 100 viajes? Cual es el n umero medio de viajeros que se bajan en la segunda parada
en esos 100 viajes? Cual es el n umero medio de viajeros impuntuales en esos 100 viajes?
Indicaciones:
a) Utiliza la funcion n=numeroviajero para determinar la cantidad de viajeros impuntuales.
b) Construir una funcion t=tiemporetrasos(n) que devuelva un vector t de n componentes con los
tiempos de retraso de los viajeros impuntuales (n). Para ello modica adecuadamente la funcion
t=bajadaviajero.
c) Para contabilizar el tiempo de subida de los viajeros impuntuales hay comparar su retraso con el
tiempo que tardan en subir los viajeros anteriores. Es conveniente (necesario) ordenar el vector
de tiempos de retraso.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 34
Hora 15
Escritura con formato en chero
15.1. Escritura con formato en chero
nombre=fopen(nombre-chero,permisos)
Abre el chero en el que vamos a guardar los datos.
nombre Es el identicador que MATLAB utilizara posteriormente para reconocer el chero.
nombre-fichero Es el nombre que tiene el chero en nuestro directorio.
permisos Es un cadena de caracteres que indica la operacion que se va a realizar con el chero:
r Lectura.
w Escritura (se crea si es necesario).
a A nadir a un chero ya existente (se crea si es necesario).
r+ Lectura y escritura.
w+ Trunca el chero o lo crea para lectura o escritura.
a+ Lectura y a nadir a un chero ya existente (se crea si es necesario).
fclose(nombre)
Cierra el chero abierto cuyo identicador es nombre. En caso de que se produzca
alg un error al cerrar el chero MATLAB devolvera el valor 1 y si no es as devolvera 0.
fprintf(nombre,format,datos)
Escribe el valor de una o varias variables en el chero con el iden-
ticador nombre abierto previamente. El chero debe cerrarse al nalizar esta operacion. El formato
de escritura de los datos se indica en el campo format utilizando parametros como:
% para formatos numericos. Sus opciones son: d entero, f real, e exponencial, s cadena de carac-
teres, etc.
\n provoca un salto de lnea.
Ej.:
t=0:1:10 % Crea un vector con los datos 0,1,2,3,...,10.
y=t.^2 % Crea un vector con los datos 0,1,4,9,...,100.
nombre=fopen(parabola.dat,w) % Abre el fichero llamado parabola.dat para escribir
% en el (w)
x=[t;y]; % Crea la matriz de datos que vamos a escribir en
35
15 Escritura con formato en chero
% el fichero.
fprintf(nombre,%1.1f % 2.6e,x) % Escribe en el fichero los datos con el
% siguiente formato:
% La primera columna [un entero].[un decimal]
% La segunda [dos enteros].[6 decimales en
% modo exponencial].
fclose(nombre) % Manda los datos al fichero nombre.
15.2. Ejercicios
1. Ejecuta el comando fid=fopen(noexiste.txt,r) y explica el resultado que obtienes.
2. Utiliza fprintf para escribir en el chero noexiste.txt (sin crearlo previamente) la cadena de ca-
racteres Prueba de escritura en el chero noexiste.txt sin crearlo previamente. Una vez nalizada esta
operacion observa el contenido de dicho chero.
3. Escribe el n umero con 25 cifras decimales en el chero de texto pi.txt.
4. Utiliza fprintf para escribir en la primera lnea del chero sucesion.txt (sin crearlo previamente)
la secuencia 1:1:10 (usa el formato %1d\t). Una vez nalizada esta operacion observa el contenido
de dicho chero.
5. Utiliza fprintf para a nadir al chero sucesion.txt (sin borrar su contenido previo) la secuencia
11:1:20, de forma que cada uno de los n umeros que la compone ocupe un renglon distinto (para ello
modica el formato %1d\n). Una vez nalizada esta operacion observa el contenido de dicho chero.
6. Utiliza fprintf para escribir en el chero sucesion.txt (borrando su contenido previo) la matriz
rand(3,10). Los datos escritos deben conservar su estructura original (usa para ello el formato
%1.4f %1.4f %1.4f\n. Una vez nalizada esta operacion observa el contenido de dicho chero.
7. Genera una matriz magica de tama no 6 y escribe su contenido en un chero de texto llamado
salida.txt.
8. Genera una matriz con 10 las y 4 columnas formada por n umeros aleatorios y escribe su contenido en
un chero de texto llamado salida.txt. Utiliza para ello una cifra decimal en las columnas impares
y 4 cifras decimales en las columnas pares.
9. Crea una funcion con las siguientes caractersticas:
a) Solicita que el usuario introduzca por teclado una M, una R, o un cero si su escritor favorito es,
respectivamente, Miguel de Cervantes, Juan Ramon Jimenez o ninguno de los dos.
b) Escriba en el chero escritor.dat:
En un lugar de la Mancha... si ha elegido a Cervantes.
Platero es suave... si preere a Juan Ramon Jimenez.
A ti lo que te gustan son las Matematicas, en otro caso.
10. Crea una funcion que:
a) Pida un n umero n para ser introducido a traves del teclado.
b) Genere n valores con la funcion rand y calcule su media.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 36
15 Escritura con formato en chero
c) Escriba los valores generados y la media en un chero llamado salida.txt, con formato ascii.
11. Crea una funcion para gestionar los salarios de una empresa. Para ello:
a) Debe pedir el n umero de registros que se van a introducir.
b) Almacena el nombre, el primer apellido y el salario para cada trabajador.
c) Escribe los datos recogidos ordenados en orden creciente respecto al salario que reciben en el
chero salida.txt, con formato ascii.
d) Ademas, los ultimos dos renglones del archivo salida.txt deben contener la siguiente informa-
cion:
1) El menor salario es ???????.
2) El mayor salario es ???????.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 37
Hora 16
Lectura de chero con formato
16.1. Lectura de chero con formato
fscanf(nombre,format,tama no)
Lee el valor de una variable en un chero que ha sido abierto
con fopen y que tiene por identicador nombre.
nombre es el identicador del chero.
format puede ser %d, %f, %e, %c, %s, etc.
tama~no es un argumento optativo que permite limitar el n umero de datos leidos. El valor que
puede tomar este argumento es uno de los siguientes:
N Lee un vector de hasta N componentes.
inf Lee datos hasta el nal del chero.
[N,M] Lee una matriz de tama no N x M por columnas (M puede se inf).
Ej.:
nombre=fopen(parabola.dat,r) % Abre el fichero llamado parabola.dat
% para leer de el (r)
z=fscanf(nombre,11) % Lee del fichero parabola.dat los datos con el
% siguiente formato:
% La primera columna real
% La segunda modo exponencial
% Hasta 11 datos.
fclose(nombre) % Cierra el fichero identificado mediante nombre
16.2. Ejercicios
1. Realiza las siguientes operaciones:
a) Genera los vectores w
1
= (3, 5, 6, 7, 9) y w
2
con los 3 primeros n umeros m ultiplos de 11.
b) Graba en el chero datos.txt con formato ascii las variables w
1
y w
2
anteriores.
c) Borra el espacio de trabajo. Comprueba que lo has hecho.
38
16 Lectura de chero con formato
d) Carga el chero datos.txt y comprueba cuales son sus variables.
2. Utiliza fscanf para leer y guardar las dos primeras columnas del chero sucesion.txt. en la variable
U. Comprueba que la operacion se ha realizado correctamente visualizando el contenido de U.
3. El chero secuencia.dat contiene una sucesion de n umeros enteros positivos o cero. Crea una funcion
que lea dicha secuencia, invierta los valores positivos y sustituya los ceros por la cadena no inversible.
Escribe los resultados obtenidos en el chero secuencia.dat, debajo de la sucesion original.
4. El chero quiniela.txt contiene los 15 resultados de una quiniela (1, X o 2) almacenados a razon de
un signo por lnea y separados por retorno de carro. Elabora una funcion que lea dichos resultados,
contabilice el n umero n de empates, y escriba en el chero resultados.dat y por pantalla el mensaje:
La quiniela arroja n empates.
5. Lee el chero nombresnumeros.txt y sustituye la columna correspondiente al DNI por una columna
que contenga el NIF.
6. Lee el chero nombre.txt y guarda sus registros en la variable nombre.
7. Lee el chero apellido.txt y guarda sus registros en la variable apellido.
8. Lee el chero edad.txt y guarda sus registros en la variable edad.
9. Considera la variable edad anterior y clasica a sus individuos en jovenes si tienen menos de 18 a nos
y en adultos si tienen mas de 18 a nos. Almacena los resultados en la variable situacion.
10. Guarda las variables nombre, apellido, edad y situacion en el chero listado.txt con el siguiente
formato:
Andres Perez 46 ADULTO
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 39
Hora 17
Libreras generales
17.1. Libreras asociadas con la utilizacion de matrices y funciones
OPS: operadores.
union(A,B)
A B. Se ordena el resultado. Ej.:
A=[1 2 4];B=[1 2 3];C=union(A,B)
C =
1 2 3 4
unique(A)
Devuelve un vector cuyas componentes son las de A ordenadas y sin valores repetidos.
Ej.:
unique([3 4 1 4 -2])
ans =
-2 1 3 4
intersect(A,B)
A B. Se ordena el resultado. Ej.:
A=[4 3 2 1];B=[2 2 3];C=intersect(A,B)
C =
2 3
setdi(A,B)
AB. Se ordena el resultado. Ej.:
A=[1 2 4];B=[1 2 3];C=setdiff(A,B)
C =
4
setxor(A,B)
A B A B. Se ordena el resultado. Ej.:
A=[-5 6 2 1 4 6 1];B=[1 3 5 5 6];setxor(A,B)
ans =
-5 2 3 4 5
ismember(x,A)
Funcion logica que devuelve 1 si x A y 0 si x / A. Ej.:
40
17 Libreras generales
A=[-5 6 2 1 4 6 1];ismember([-5 6 -2],A),ismember(4,A)
ans =
1 1 0
ans =
1
ELMAT: manipulacion de matrices.
size(A)
Tama no de la matriz A. Ej.:
A=[1 2; 3 4;5 6];A,size(A)
A =
1 2
3 4
5 6
ans =
3 2
length(A)
Longitud del vector v. Ej.:
A=[1 2 3 4 5 6];length(A)
ans =
6
isempty(A)
Funcion logica que devuelve 1 si la matriz A es vaca y 0 si no lo es. Ej.:
A=[];isempty(A)
ans =
1
A=[1 2;3 4];isempty(A)
ans =
0
isequal(A,B)
Funcion logica que devuelve 1 si las matrices A y B son iguales y 0 si no lo son.
Ej.:
A=[1 2;3 4];B=[1 3;2 4];isequal(A,B)
ans =
0
A=[1 2;3 4];B=[1 2;3 4];isequal(A,B)
ans =
1
isnumeric(A)
Funcion logica que devuelve 1 si la variable A es numerica y 0 si no lo es. Ej.:
A=[1 2;3 4];B=caracteres;isnumeric(A),isnumeric(B)
ans =
1
ans =
0
islogical(A)
Funcion logica que devuelve 1 si la variable A es logica y 0 si no lo es. Ej.:
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 41
17 Libreras generales
islogical([1 0])
ans =
0
A=-2==1;islogical(A)
ans =
1
reshape(A,m,n)
Crea una matriz de m las y n columnas a partir de los elementos de A. Si A
es una matriz, sus elementos se distribuyen por columnas. Ej.:
A=[1 2 3;4 5 6]
A =
1 2 3
4 5 6
reshape(A,6,1),reshape(A,1,6)
ans =
1
4
2
5
3
6
ans =
1 4 2 5 3 6
reshape(A,3,2)
ans =
1 5
4 3
2 6
tril(A),triu(A)
Se nalan los elementos que forman las matrizes triangular inferior y superior
de A respectivamente haciendo cero el resto. Ej.:
A
A =
1 2 3
4 5 6
tril(A),triu(A)
ans =
1 0 0
4 5 0
ans =
1 2 3
0 5 6
iplr(A),ipud(A)
Reordena las componentes de la matriz A simetricamente en las columnas
(left-right) y en las las (up-down) respectivamente. Ej.:
A=[1 2;3 4;5 6]
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 42
17 Libreras generales
A =
1 2
3 4
5 6
fliplr(A),flipud(A)
ans =
2 1
4 3
6 5
ans =
5 6
3 4
1 2
rot90(A)
Reordena las componentes de la matriz A mediante un giro de 90 grados en sentido
antihorario. Ej.:
A=[1 2;3 4;5 6],rot90(A)
A =
1 2
3 4
5 6
ans =
2 4 6
1 3 5
nd(A)
Localiza los elementos no nulos de A. Ej.:
A=[1 2;0 3;5 0],[I,J]=find(A)
A =
1 2
0 3
5 0
I =
1
3
1
2
J =
1
1
2
2
ELFUN: funciones matematicas elementales.
x(x)
Redondea las componentes de x hacia cero. Ej.:
fix([-3.8,3.8])
ans =
-3 3
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 43
17 Libreras generales
oor(x)
Redondea las componentes de x hacia . Ej.:
floor([-3.8,3.8])
ans =
-4 3
ceil(x)
Redondea las componentes de x hacia . Ej.:
ceil([-3.8,3.8])
ans =
-3 4
round(x)
Redondea las componentes de x hacia el entero mas proximo. Ej.:
round([-3.8,3.8])
ans =
-4 4
rem(x,y)
Proporciona los restos que resultan al dividir las componentes de x entre las compo-
nentes correspondientes de y. Ej.:
rem([6,8,-8],[3,3,3])
ans =
0 2 -2
sign(A)
Devuelve el signo de las componentes de A. Ej.:
sign([6,-8;1 2])
ans =
1 -1
1 1
factor(x)
Realiza la factorizacion como producto de n umeros primos del n umero x. Ej.:
factor(1356)
ans =
2 2 3 113
isprime(x)
Funcion logica que devuelve 1 en las componentes de x que son n umeros primos y 0
en las que no lo son. Ej.:
isprime([1356,17])
ans =
0 1
primes(n)
Devuelve un vector con los n umeros primos menores o iguales que n. Ej.:
primes(17)
ans =
2 3 5 7 11 13 17
gcd(x,y),lcd(x,y)
Obtiene el maximo com un divisor y el mnimo com un m ultiplo de x, y respec-
tivamente. Cuando x, y son vectores los calculos se hacen entre las componentes de x e y que ocupan
la misma posicion. Ej.:
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 44
17 Libreras generales
gcd([120,213],[64,10]),lcm([12,2],[10,3])
ans =
8 1
ans =
60 6
rats(x)
Aproximacion racional de las componentes de x. Ej.:
rats([12.23,pi])
ans =
1223/100 355/113
355/113
ans =
3.1416
perms(x)
Obtiene todas las permutaciones posibles con las componentes de x. Ej.:
perms([1 2 3])
ans =
3 2 1
2 3 1
3 1 2
1 3 2
2 1 3
1 2 3
factorial(n)
1 2 3 (n 2)(n 1)n Ej.:
factorial(5)
ans =
120
nchoosek
N umero combinatorio
_
n
k
_
Ej.:
nchoosek(6,4)
ans =
15
cart2sph(x)
Transforma coordenadas cartesianas en coordenadas esfericas. Ej.:
[TH,PHI,R]=cart2sph([1,-4],[2,5],[3,2])
TH =
1.1071 2.2455
PHI =
0.9303 0.3027
R =
3.7417 6.7082
sph2cart(x)
Transforma coordenadas esfericas en coordenadas cartesianas. Ej.:
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 45
17 Libreras generales
[X, Y, Z]=sph2cart([1.1071,2.2455],[0.9303,0.3027],[3.7417,6.7082])
X =
1.0001 -3.9999
Y =
1.9999 5.0002
Z =
3.0001 1.9997
cart2pol(x)
Transforma coordenadas cartesianas en coordenadas polares (cilndricas). Ej.:
[TH,R,Z]=cart2pol([1,-4],[2,5],[3,2])
TH =
1.1071 2.2455
R =
2.2361 6.4031
Z =
3 2
pol2cart(x)
Transforma coordenadas polares (plano) y cilndricas (espacio) en coordendas carte-
sianas. Ej.:
[X,Y,Z]=pol2cart([1.1071,2.2455],[2.2361,6.4031],[3,2])
X =
1.0001 -3.9998
Y =
2.0000 5.0001
Z =
3 2
DATAFUN: analisis de datos.
sort(A)
Ordena las componentes de la matriz A por columnas. Ej.:
sort([12 -3 6 7 1 0 pi])
ans =
-3.0000 0 1.0000 3.1416 6.0000 7.0000 12.0000
magic(3),sort(magic(3))
ans =
8 1 6
3 5 7
4 9 2
ans =
3 1 2
4 5 6
8 9 7
sortrows(A)
Ordena las las de la matriz A leyendo sus elementos de izquiera a derecha. Ej.:
magic(3),sortrows(magic(3))
ans =
8 1 6
3 5 7
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 46
17 Libreras generales
4 9 2
ans =
3 5 7
4 9 2
8 1 6
A=[1 2 3 3; 1 2 3 1; 1 2 3 2],sortrows(A)
A =
1 2 3 3
1 2 3 1
1 2 3 2
ans =
1 2 3 1
1 2 3 2
1 2 3 3
sum(A)
Suma las componentes de A por columnas. Ej.:
A=[1 2;3 4],sum(A)
A =
1 2
3 4
ans =
4 6
prod(A)
Multiplica las componentes de A por columnas. Ej.:
A=[1 2;3 4],prod(A)
A =
1 2
3 4
ans =
3 8
17.2. Ejercicios
Comprueba los ejemplos introducidos en la seccion anterior y explica los resultados obtenidos.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 47
Hora 18
Primeros gracos bidimensionales
18.1. Comando plot
plot(x)
Dibuja los pares de puntos (i, x
i
) unidos por segmentos (x
i
representa las componentes del
vector x). Ej.:
x=[-4 -2 0 1 3 5]; [ENTER]
plot(x); [ENTER]
plot(x,y)
Dibuja los pares de puntos (x
i
, y
i
) unidos por segmentos (x
i
e y
i
representan las componentes
de los vectores x e y respectivamente). Ej.:
x=[-4 -2 0 1 3 5]; [ENTER]
y=[16 4 0 1 9 25]; [ENTER]
plot(x,y); [ENTER]
plot(z)
Dibuja en el plano complejo los pares de puntos (Re(z
i
), Im(z
i
)) unidos por segmentos (z
i
representa las componentes del vector z). Ej.:
z=[1 2+i 3 2-i 3-2*i]; [ENTER]
plot(z); [ENTER]
plot(A)
Para cada j dibuja los pares de puntos (i, a
ij
) unidos por segmentos (a
ij
representa las
componentes de la matriz A) . En la misma graca, cada poligonal se dibuja con un color y con un tipo de
lnea diferente. Ej.:
A=[1 1 0.5; 2 4 -0.5; 3 9 0.5; 4 16 -0.5; 5 25 0.5]; [ENTER]
plot(A); [ENTER]
plot(x,A)
Independientemente de que x sea un vector la o columna, ejecuta plot(x,y) donde y
es una la o columna de A. Para la eleccion de la la y columna se tiene en cuenta la coincidencia de
dimensiones. En la misma graca, cada lnea se dibuja con un color y con un tipo de lnea diferente. Ej.:
x=[0 0.1 0.2 0.3 0.4]; [ENTER]
A=[1 1 0.5; 2 4 -0.5; 3 9 0.5; 4 16 -0.5; 5 25 0.5]; [ENTER]
plot(x,A); [ENTER]
48
18.2 Primeros gracos bidimensionales I
plot(A,x)
En las mismas condiciones que el caso anterior dibuja los pares ordenados siendo x el valor
de las ordenadas. Ej.:
x=0:0.1:2; [ENTER]
A=[sin(pi*x); 0.5+0.5*x]; [ENTER]
plot(A,x); [ENTER]
plot(A,B)
Ejecuta plot(x,y), donde x es una columna de A e y es una columna de B. En la misma
graca, cada poligonal se dibuja con un color y con un tipo de lnea diferente.
18.2. Ejercicios
1. Dibuja la funcion sin(1/x) entre -1 y 1.
2. Crea una funcion que:
a) Simula n lanzamientos de una moneda mediante el comando rand (n es un valor que debe intro-
ducir el usuario como argumento de la funcion).
b) Guarde en el espacio de trabajo los resultados obtenidos en la variable datos.
c) Calcule con que frecuencia va apareciendo el resultado cara en los sucesivos lanzamientos.
d) Represente gracamente dichas frecuencias frente al n umero de lanzamientos.
e) Muestre por pantalla la ultima frecuencia obtenida.
f ) Enve al chero de texto resultados.dat los resultados obtenidos en los n lanzamientos (emplea
las palabras cara y cruz).
3. Representa el recinto del plano R
2
x 0, y 0, (x1)
3
+y 0 y su imagen por la funcion f = (f
1
, f
2
)
donde f
1
(x, y) = 3x 2y + 3 y f
2
(x, y) = x 3y + 1.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 49
Hora 19
Dibujo de funciones
19.1. Comando fplot
fplot(fcn, lim)
Dibuja el graco de la funcion especicada en la cadena fcn (puede ser un chero de
comandos) en los intervalos de abcisas y ordenadas determinados por lim. Ej.:
fplot(sin(x^2), [0 10]) [ENTER]
fplot(sin(x^2), [0 10 -1.5 0.5]) [ENTER]
19.2. Ejercicios
Dibuja las siguientes funciones en los dominios especicados:
1. f(x) = xe
x
2
en [2, 2].
2. f(x) =

x
2
1 en [3, 3, 1, 3].
3. f(x) = x
2
sin(
1
x
) en [2, 2].
4. f(x) = x
2
sin(
1
x
) en [0,1, 0,1].
50
Hora 20
Modicadores de los gracos
bidimensionales
20.1. Opciones de los comandos plot y fplot
plot(x,y,cad)
Dibuja la graca de abcisas x y ordenadas y con las opciones de estilo dadas por cad
1
(MATLAB utiliza por defecto una lnea azul continua sin marcadores).
fplot(fcn, lim,cad)
Dibuja la graca de la funcion fcn con el estilo de lneas cad.
plot(x1,y1,cad1, x2,y2,cad2,...)
Dibuja la graca de abcisas x1 y ordenadas y1 con las opciones de
estilo dadas por cad1, la graca de abcisas x2 y ordenadas y2 con las opciones de estilo dadas por cad2 y
as con el resto de ternas. Si se omiten las opciones de estilo, MATLAB escoge el color y estilo para cada
graco.
1
cad es una variable caracter de a lo sumo tres parametros elegidos de las siguientes columnas sin
importar el orden. Afecta a los estilos de lneas y colores.
Marcadores Lneas Colores
. punto - solida y amarillo
* estrella -- discontnua g verde
x cruz -. punto-raya m magenta
o crculo : punteada b azul
+ mas c cyan
s cuadrado w blanco
d rombo r rojo
p pentagono k negro
h hexagono
v triangulo abajo
< triangulo izquierda
> triangulo derecha
^ triangulo arriba
1
Ver tabla
51
20.2 Modicadores de los gracos bidimensionales
Ej.:
n=50; % Asignamos valores a las variables
a=0;
b=3;
x=linspace(a,b,n); % Construimos el vector x
e1=exp(-x.^2); % y los vectores de abcisas
e2=(x.^2).*exp(-x.^2);
e3=x.*exp(-x.^2);
e4=exp(-x);
plot(x,e1,+-g,x,e2,*:k,x,e3,o-.y,x,e4,x); % Dibujamos las graficas
20.2. Ejercicios
1. Dibuja un cuadrado de vertices {(1, 1), (1, 4), (4, 4), (4, 1)} y sus diagonales. Emplea un estilo distinto
para cada uno de los lados y diagonales.
2. Una granja familiar cra conejos, terneros y cerdos. Los siguientes vectores describen el n umero de
unidades de cada caba na nacidos durante cada uno de los meses de 1999 en la granja:
conejos = (1, 3, 7, 9, 11, 13, 15, 17, 20, 20, 22, 23)
terneros = (1, 2, 1, 4, 1, 1, 2, 1, 0, 1, 3, 2)
cerdos = (12, 10, 1, 8, 11, 11, 1, 4, 3, 1, 5, 7)
Dibuja los vectores anteriores en un mismo graco diferenciandolos entre s.
3. Considera el vector v=-10:-1. Dibujas las potencias v
1
, v
2
y v
3
diferenciandolas entre s.
4. Considera el vector v=1:10. Dibujas las potencias v
1
,

v y
3

v diferenciandolas entre s.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 52
Hora 21
Control de gracos bidimensionales
21.1. Control de gracos bidimensionales
axis
Devuelve los lmites del dibujo actual en un vector la. Para gracos de dos dimensiones tiene
los elementos [x
min
x
max
y
min
y
max
] y para gracos de tres dimensiones [x
min
x
max
y
min
y
max
z
min
z
max
].
axis(v)
Establece la escala de los ejes conforme al vector v que sera [x
min
x
max
y
min
y
max
] en dos
dimensiones o [x
min
x
max
y
min
y
max
z
min
z
max
] en tres dimensiones.
axis(axis)
Bloquea la escala actual cuando se a naden dibujos posteriores a uno que se ha mantenido
con el comando hold.
axis(cad)
Establece la escala de los ejes con diferentes resultados dependiendo de la cadena cad
utilizada:
auto Vuelve a la escala automatica.
equal Da la misma escala en ambos ejes.
ij Intercambia la parte positiva y negativa del eje y.
xy Deshace el anterior.
image Igual que equal pero se ajusta al dibujo.
square Modica la ventana graca para hacer que la caja del dibujo sea cuadrada.
normal Modica la ventana graca para que la caja del dibujo vuelva al tama no habitual.
off No se muestran los ejes.
on Deshace el comando anterior.
grid on
Dibuja una red en la ventana graca.
grid o
Borra la red de la ventana graca. Ej.:
53
21 Control de gracos bidimensionales
t=0:0.2:2*pi+0.2; [ENTER] % Parametro para el angulo
x=sin(t); [ENTER]
y=cos(t); [ENTER]
subplot(3,1,1); [ENTER]
plot(x,y,-); [ENTER]
subplot(3,1,2); [ENTER]
plot(x,y,-); [ENTER]
axis square; [ENTER]
subplot(3,1,3); [ENTER]
plot(x,y,-); [ENTER]
axis normal; [ENTER]
grid; [ENTER]
axis([-2 2 -3 3]); [ENTER]
title(txt)
Escribe la variable cadena txt centrada en la cabezera del graco (ttulo).
xlabel(txt), ylabel(txt)
Escribe la variable cadena txt como una etiqueta junto al eje x e y respecti-
vamente.
text(x,y,txt)
Escribe la variable cadena txt en la posicion (x, y) de la ventana graca. Las coordenadas
x e y estan proporcionadas en las mismas unidades en las que esta dibujado el graco. Si x e y son vectores,
la variable cadena se escribe en todos los pares de puntos (x
i
, y
i
). Si txt es un vector con varias cadenas con
el mismo n umero de las que x e y, se escribe una de ellas en cada una de las posiciones. Se puede elegir el
tama no y tipo de letra empleado.
gtext(txt)
Escribe la variable cadena txt en la posicion de la ventana graca que elija el usuario
mediante el raton.
legend(st1,st2, ...)
Escribe en un peque no recuadro, las variables cadenas st1, st2, etc, al lado de los
estilos de linea utilizados en cada una de las gracas. Este peque no recuadro puede moverse mediante el
raton.
legend(l1,st1, l2,st2, ...)
Escribe una leyenda especicando los estilos de lnea.
legend o
Elimina la leyenda del dibujo actual.
[x,y]=ginput
Lee las coordenadas en las que se sit ua el raton dentro de la ventana graca. Al ejecutar
este comando aparece un cursor que se maneja con el raton (o con las teclas de desplazamiento vertical
y horizontal). Presionado una tecla o un boton del raton se envan las coordenadas a MATLAB que las
almacena en los vectores x e y. El proceso termina cuando se presiona la tecla [RETURN].
[x,y]=ginput(n)
Lee n coordenadas de la ventana graca.
waitforbuttonpress
Detiene el dibujo de gracos hasta que se presiona una tecla o un boton del raton.
Ej.:
n=figure; % nueva ventana grafica;
disp(Para dibujar una poligonal en la figura:);
disp(presiona el boton izqdo para empezar,);
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 54
21 Control de gracos bidimensionales
disp(Para parar presiona el boton dcho);
[x,y,t]=ginput(1);
plot(x,y,o)
xx=x;yy=y;
hold; axis([0 1 0 1]); % superponer el grafico y se establecen
% los ejes
while t~=3
[x,y,t]=ginput(1);
plot(x,y,o)
xx=[xx x];
yy=[yy y];
end
clf; line(xx,yy);
disp(Aprieta en la figura cuando este terminado)
waitforbuttonpress
delete(n);
21.2. Ejercicios
1. Dibuja en un mismo graco las funciones f
1
(x) = x
2
, f
2
(x) = 1,1x
2
y f
3
(x) = 1,2x
2
.
Utiliza para el eje y una escala adecuada que te permita distinguir las tres funciones anteriores.
Repite el apartado anterior usando para ello el comando zoom.
Identica sobre la graca cada una de las funciones representadas de dos maneras distintas:
a) A nade al lado de cada curva una etiqueta que describa la funcion que representa.
b) Incorpora una leyenda que identique la funcion con el tipo de lnea utilizada para su repre-
sentacion.
2. Ejecuta la siguiente funcion:
function y=particle(n)
% Camino aleatorio. Una particula empieza en el origen, y se mueve
% aleatoriamente hacia otra direccion en cada paso.
x=cumsum(rand(n,1)-0.5); % Valores aleatorios de x
y=cumsum(rand(n,1)-0.5); % Valores aleatorios de y
clf;
plot(x,y);
hold on;
plot(x(1),y(1),o,x(n),y(n),o);
axs=axis;
scale=axs(2)-axs(1);
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 55
21 Control de gracos bidimensionales
text(x(1)+scale/30,y(1),Inicio);
hold off;
xlabel(x);
Completa el graco resultante con las siguientes operaciones:
a) A nade el ttulo Camino aleatorio.
b) Escribe bajo el eje y: Eje de ordenadas.
c) Identica el ultimo punto dibujado con la etiqueta FIN.
d) Obten las coordenadas de los puntos correspondientes al maximo y al mnimo de la graca. Para
ello act ua de las siguientes dos formas:
1) Incorpora al graco una red que te permita aproximar adecuadamente dichas coordenadas.
2) Utiliza el comando ginput.
e) Sustituye x=cumsum(rand(n,1)-0.5) por x=rand(n,1)-0.5 e y=cumsum(rand(n,1)-0.5) por
y=rand(n,1)-0.5. Observa los resultados obtenidos.
f ) Acude a la ayuda de MATLAB y justica tu anterior respuesta.
3. Busca en la ayuda el comando fill y utilzalo para dibujar un triangulo de vertices {(0, 2), (1, 0), (1, 0)}
coloreado en rojo y sobre el un cuadrado de vertices {(0, 0), (1, 1), (0, 1), (1, 0)}.
4. Modica el graco obtenido en el ejercicio 2 de la hora 20 Modicadores de los gracos bidimensio-
nales incluyendo:
a) El ttulo Rendimiento anual de la granja
b) En el eje de abcisas el nombre de cada mes al que hacen referencia los datos.
c) Una leyenda que indique el tipo de animal al que corresponde cada poligonal.
5. Modica el graco obtenido en el ejercicios 3 de la hora 20 Modicadores de los gracos bidimensio-
nales para que incluya:
a) El ttulo Potencias sucesivas
b) Una leyenda que indique el valor del exponente utizado en cada una de las potencias representadas.
6. Modica el graco obtenido en el ejercicios 4 de la hora 20 Modicadores de los gracos bidimesio-
nales para que incluya:
a) El ttulo Potencias sucesivas
b) Una leyenda que indique el valor del exponente utizado en cada una de las potencias representadas.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 56
Hora 22
Control de la ventana graca
bidimensional
22.1. Control de la ventana graca bidimensional
gure(n)
Permite mostrar la ventana graca actual y crear nuevas ventanas gracas.
clf
Borra el contenido la ultima ventana graca utilizada.
delete(n)
Cierra la ventana graca n.
hold on
Permite superponer gracos en una misma ventana hasta que se desactiva la opcion con el
comando hold off.
hold o
Desactiva la opcion hold on.
ishold
Es un comando logico que devuelve 1 si para el actual graco esta activada la opcion hold on
o 0 en caso contrario.
subplot(m,n,p)
Divide la ventana graca en subventanas distribuidas en m las y n columnas y hace
que la subventana p sea la actual. Las ventanas se numeran de izquierda a derecha y de arriba hacia abajo.
Ej.:
x=linspace(-10,10,1000); [ENTER]
y11=(-x).*sin(x); [ENTER]
y12=(-x).*cos(x)-sin(x); [ENTER]
y21=diff(y11)./(x(2)-x(1)); [ENTER]
y22=(y21-y12(1:999))./norm(y12); [ENTER]
subplot(2,2,1); plot(x,y11); [ENTER]
subplot(2,2,2); plot(x,y12); [ENTER]
subplot(2,2,3); plot(x(1:999),y21); [ENTER]
subplot(2,2,4); plot(x(1:999),y22); [ENTER]
zoom on
Permite ampliar la ventana con el boton izquierdo del raton y reducirla con el boton derecho.
Tambien permite seleccionar el area que queremos ampliar.
57
22 Control de la ventana graca bidimensionales
zoom o
Desactiva el comando anterior.
zoom out
Recupera el tama no inicial.
22.2. Ejercicios
1. Dibuja las funciones f
k
(x) = x
k
para k = 1, 2, 3, 4, 5, 6, 7 en siete gracas distintas dentro de una
misma ventana con 5 x 5. Escribe sobre cada graca un ttulo que la identique.
2. Realiza el ejercicio 3 de la hora 20 Modicadores de los gracos bidimensionales empleando el comando
hold.
3. Con los datos del ejercicio 2 de la hora 20 Control de gracos bidimensionales y empleando el comando
figure realiza cuatro gracas en cuatro ventanas distintas para representar:
a) El n umero de terneros nacidos en la granja durante cada uno de los meses de 1999.
b) El n umero de conejos nacidos en la granja durante cada uno de los meses de 1999.
c) El n umero de cerdos nacidos en la granja durante cada uno de los meses de 1999.
d) El n umero total de animales nacidos en la granja durante cada uno de los meses de 1999.
A nade un ttulo y nombra los ejes convenientemente en cada uno de los gracos indicados.
4. Repite el ejercicio anterior incluyendo los 4 gracos representados en un misma ventana dividida en
cuatro zonas.
5. Ejecuta el siguiente programa y observa los resultados.
M=moviein(17);
x=[-2*pi:.1:2*pi];
for j=1:17
y=sin(x+j*pi/8);
plot(x,y);
M(:,j)=getframe;
end
movie(M,2,50)
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 58
Hora 23
Gracos con n umeros complejos y en
escalas logartmicas
23.1. Gracos con n umeros complejos
polar(,r)
Dibuja n umeros complejos a partir de sus coordenadas polares. Los elementos del vector
son los angulos en radianes, y los elementos del vector r son las distancias al origen.
pol2cart(,r)
Convierte las coordenadas polares dadas por los vectores y r en coordenadas carte-
sianas. Ej.:
r = linspace(0,2); [ENTER]
theta = linspace(0,10*pi); [ENTER]
[x,y] = pol2cart(theta,r); [ENTER]
z = x+i*y; [ENTER]
plot(z); [ENTER]
cart2pol(x, y)
Convierte las coordenadas cartesianas dadas por los vectores x e y en coordenadas
polares.
quiver(x,y)
Dibuja una echa para cada par de coordenadas (x
i
, y
i
). Muestra el argumento y la
magnitud del n umero complejo que tiene ese par de coordenadas reales.
quiver(x,y,dx,dy)
Dibuja una echa para cada par de coordenadas (x
i
, y
i
) con el argumento y magnitud
dados por (dx
i
, dy
i
).
quiver(x,y, ...,s)
El parametro s indica la escala con la que se dibujan las echas, que por defecto
toma el valor 1.
feather(Z)
Dibuja echas mostrando las magnitudes y argumentos de los elementos de la matriz
compleja Z. Estas echas parten de puntos equidistantes del eje x.
compass(Z)
Como feather pero en este caso todas las echas tienen como origen el origen de coor-
denadas.
59
23 Gracos con n umeros complejos y en escalas logartmicas
rose(v,n)
Dibuja un histograma de angulos, es decir, un histograma circular mostrando la frecuencia
de los angulos dados en el vector v; utilizando n intervalos. En el caso de no especicar n, el valor por defecto
es 36. Ej.:
Z=[1+i 2-i 3-5*i; -4+3*i 5-5*i i ;-1-i 3+3*i -1]; [ENTER]
clf; [ENTER]
subplot(2,2,1); quiver(real(Z),imag(Z)); title(quiver); [ENTER]
subplot(2,2,2); feather(Z); title(feather); [ENTER]
subplot(2,2,3); compass(Z); title(compass); [ENTER]
subplot(2,2,4); rose(angle(Z(:))); title(rose); [ENTER]
23.2. Gracos en escalas logartmicas
semilogx(x,y)
Utiliza coordenadas logartmicas en el eje x. El resultado es el mismo que utilizar
plot(log10(x),y) pero no produce ning un error si tenemos que calcular log
10
0.
semilogy(x,y)
Act ua como el comando anterior, pero esta vez la escala logartmica esta en el eje y.
loglog(x,y)
Dibuja ambos ejes en escala logartmica. Ej.:
x=linspace(0,7); [ENTER]
y=exp(x); [ENTER]
subplot(2,1,1); plot(x,y); [ENTER]
subplot(2,1,2); semilogy(x,y); [ENTER]
23.3. Ejercicios
1. Dibuja las siguientes funciones en coordenadas polares y en coordenadas cartesianas.
a) r = e
cos
2 cos(4) + sen(

5
12
).
b) r = 4.
c) r = 2(1 + cos ).
d) r = cos, r = cos(2), r = cos(3) y r = cos(4) en una misma graca.
e) r = 2(1 + cos(2)) y r = 2(1 + cos(3)) en una misma ventana y en gracas distintas.
2. Dibuja el sector circular limitado por las circunferencias x
2
+ y
2
= 9 y r = 5 y los angulos =

4
y
=
3
7
usando n umeros complejos.
3. Dibuja los pentagonos cuyos vertices estan sobre la circunferencia unidad en los angulos =
2
5
,
4
5
,
6
5
,
8
5
,
10
5
y en los angulos =
3
5
,
5
5
,
7
5
,
9
5
,
11
5
. Traza los segmentos que unen cada vertice con el origen
de coordenadas.
4. El chero poblacion.txt describe el n umero de habitantes empadronados en ciertos municipios de
Castilla y Leon.
Utiliza un histograma (funcion hist) para representar los datos almacenados en la variable
habitantes.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 60
23 Gracos con n umeros complejos y en escalas logartmicas
Transforma la variable habitantes mediante la funcion log y guarda el resultado en la variable
loghabitantes.
Representa los datos almacenados en la variable loghabitantes con un histograma. Emplea una
cuadrcula (grid) que facilite la visualizacion de las coordenadas en el graco.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 61
Hora 24
Libreras con funciones y gracos
estadsticos
24.1. Entrada de datos tabulados
tblread(datos.txt)
Lee los datos almacenados en el chero datos.txt interpretando los nombres de
las variables (primera la) y los nombres de los individuos (primera columna). Permite distintos caracteres
como delimitadores de campos (espacios en blanco, coma, punto y coma, etc.)
Ej.:
[datos, nombresvariables, nombresindividuos] = tblread(Demog.tex);
datos, nombresvariables, nombresindividuos
24.2. Descripcion y exploracion graca de datos
boxplot(A)
Dibuja un boxplot con los datos almacenados en cada una de las columnas de A (uno por
columna). Ej.:
A=normrnd(0,1,10,2);boxplot(A)
lsline
A nade a un scatterplot la recta que mejor ajusta los puntos representados en el sentido de
mnimos cuadrados. Ej.:
X=linspace(1,20,100);Y=3+(2.*X)+normrnd(0,3,1,100);plot(X,Y,.);
lsline;coef=polyfit(X,Y,1)
coef =
2.0053 2.9622
reine(m,c)
A nade la recta y = mx + c a la gura activa. Sin argumentos equivale a lsline. Ej.:
X=linspace(1,20,100);Y=3+(2.*X)+normrnd(0,3,1,100);plot(X,Y,r.);
refline;
refline(4,5);
62
24 Libreras con funciones y gracos estadsticos
24.3. Descripcion analtica de datos
tabulate(x)
Obtiene la tabla de distribucion de frecuencias de x. El argumento x debe ser un vector
de n umeros naturales. Ej.:
r = unidrnd(10,5,1)
r =
5
4
4
9
8
tabulate(r)
Value Count Percent
1 0 0.00%
2 0 0.00%
3 0 0.00%
4 2 40.00%
5 1 20.00%
6 0 0.00%
7 0 0.00%
8 1 20.00%
9 1 20.00%
nanmin(A), nanmax(A)
Calculan, respectivamente, el mnimo y el maximo de los datos que ocupan
cada una de las columnas (variables) de la matriz A. Los datos missing se omiten. Ej.:
r = unidrnd(10,5,2)
r =
9 8
9 10
1 7
8 8
9 4
nanmin(r),nanmax(r)
ans =
1 4
ans =
9 10
range(A)
Calcula el rango de los datos que ocupan cada una de las columnas (variables) de la matriz
A. Ej.:
r = unidrnd(10,5,2)
r =
1 3
3 5
4 9
9 2
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 63
24 Libreras con funciones y gracos estadsticos
4 6
range(r)
ans =
8 7
median(A)
Calcula la mediana de los datos que ocupan cada una de las columnas (variables) de la
matriz A. Ej.:
r = unidrnd(10,5,2)
r =
10 3
8 8
8 10
3 7
2 6
median(r)
ans =
8 7
iqr(A)
Calcula el rango intercuartlico de los datos que ocupan cada una de las columnas (variables)
de la matriz A. Ej.:
r = unidrnd(10,5,2)
r =
5 10
3 2
1 1
3 4
2 7
iqr(r)
ans =
1.7500 6.0000
prdtile(A,p)
Calcula los percentiles designados en p (en porcentaje) para cada una de las columnas
(variables) de A. El resultado es una matriz cuya la i-esima contiene los percentiles del p(i) % de cada una
de las columnas de A. Ej.:
r = unidrnd(10,5,2)
r =
6 8
5 7
9 1
9 2
5 5
prctile(r,[25;50;75])
ans =
5.0000 1.7500
6.0000 5.0000
9.0000 7.2500
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 64
24 Libreras con funciones y gracos estadsticos
nansum(A), nanmean(A), nanmedian(A), nanstd(A)
Calculan, respectivamente, la suma, la media ar-
itmetica, la mediana y la (cuasi) desviacion estandar de los datos que ocupan cada una de las columnas
(variables) de la matriz A. Los datos missing se omiten. Ej.:
r = unidrnd(10,5,2)
r =
9 2
4 5
1 1
8 5
10 9
nansum(r),nanmean(r),nanmedian(r),nanstd(r)
ans =
32 22
ans =
6.4000 4.4000
ans =
8 5
ans =
3.7815 3.1305
cov(A)
Calcula la matriz de covarianzas asociada con las columnas (variables) de A. Ej.:
X=unifrnd(2,10,1,100);Y=normrnd(0,3,1,100);
cov([X;Y])
ans =
4.9814 -0.5150
-0.5150 11.6290
corrcoef(A)
Calcula la matriz de correlaciones asociada con las columnas (variables) de A. Ej.:
X=unifrnd(2,10,1,100);Y=2.*X+normrnd(0,2,1,100);
corrcoef([X;Y])
ans =
1.0000 0.9371
0.9371 1.0000
24.4. Distribuciones de probabilidad
binopdf(x,n,p)
Calcula las probabilidades de una distribucion binomial de parametros n y p en los
sucesos (componentes) de x. Ej.:
binopdf(0:6,6,0.75)
ans =
0.0002 0.0044 0.0330 0.1318 0.2966 0.3560 0.1780
binocdf(x,n,p)
Evalua la funcion de distribucion de una distribucion binomial de parametros n y p en
cada una de las componentes de x. Ej.:
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 65
24 Libreras con funciones y gracos estadsticos
binocdf(0:6,6,0.75)
ans =
0.0002 0.0046 0.0376 0.1694 0.4661 0.8220 1.0000
binoinv(x,n,p)
Evalua la inversa de la funcion de distribucion (percentiles) de una distribucion bino-
mial de parametros n y p en cada una de las componentes de x. Ej.:
binoinv(0:0.2:1,6,0.75)
ans =
0 4 4 5 5 6
binornd(n,p,m,k)
Calcula una matriz mk formada por n umeros aleatorios generados a partir de una
distribucion binomial de parametros n y p. Ej.:
binornd(10,0.8,3,3)
ans =
8 10 6
6 9 10
7 9 9
binostat(n,p)
Calcula la esperanza y la varianza de una distribucion binomial de parametros n y p.
Ej.:
[esperanza,varianza]=binostat(100,0.7)
esperanza =
70
varianza =
21.0000
exppdf(x,mu)
Calcula la funcion de densidad de una distribucion exponencial de parametro (esper-
anza) mu en cada una de las componentes de x. Ej.:
y=exppdf(1:0.1:100,2);plot(1:0.1:100,y)
expcdf(x,mu)
Evalua la funcion de distribucion de una distribucion exponencial de parametro mu en
cada una de las componentes de x. Ej.:
expcdf(1:10,2)
ans =
Columns 1 through 7
0.3935 0.6321 0.7769 0.8647 0.9179 0.9502 0.9698
Columns 8 through 10
0.9817 0.9889 0.9933
expinv(x,mu)
Evalua la inversa de la funcion de distribucion (percentiles) de una distribucion expo-
nencial de parametro mu en cada una de las componentes de x. Ej.:
expinv(0:0.1:0.9,2)
ans =
Columns 1 through 7
0 0.2107 0.4463 0.7133 1.0217 1.3863 1.8326
Columns 8 through 10
2.4079 3.2189 4.6052
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 66
24 Libreras con funciones y gracos estadsticos
exprnd(mu,m,k)
Calcula una matriz mk formada por n umeros aleatorios generados a partir de una
distribucion exponencial de parametro mu. Ej.:
exprnd(2,3,3)
ans =
0.1126 11.5185 3.4466
0.9779 0.4539 1.2720
0.4894 0.8869 3.0397
expstat(mu)
Calcula la esperanza y la varianza de una distribucion exponencial de parametro mu.
Ej.:
[esperanza,varianza]=expstat(2)
esperanza =
2
varianza =
4
24.5. Ejercicios
1. Comprueba los ejemplos introducidos en la seccion anterior y explica los resultados obtenidos.
2. Utiliza las funciones normpdf, normcdf norminv y normrnd para resolver las siguientes cuestiones:
a) Dibuja en un mismo graco las funciones de densidad correspondientes a las distribuciones nor-
males N(5, 1), N(5, 10) y N(10, 1).
b) Tabula la funcion de distribucion de una distribucion normal estandar para los valores z =
0, 0,01, 0,02, . . . , 3,98, 3,99, 4.
c) Tabula los percentiles de una distribucion N(1, 3) correspondientes a las probabilidades p =
0,01, 0,1, 0,2, . . . , 0,9, 0,99.
d) Genera un muestra de tama no 100 de una distribucion normal estandar y contabiliza mediante
un diagrama de caja los valores outliers obtenidos.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 67
Hora 25
Primeros gracos tridimensionales
plot3(x1,y1,z1,cad)
Dibuja un graco 3-D que pasa por las coordenadas de los vectores x1, y1, z1.
La seleccion del estilo de lnea es opcional y se elige con cad
1
Ej.:
x=[245,972,167,165];y=[23,45,24,362];z=[1,2 3,4];
plot3(x,y,z,ro--);
plot3(X,Y,Z)
Dibuja gracos para cada columna de las matrices X, Y y Z, que deben tener el mismo
tama no.
25.1. Ejercicios
1. Dibuja en el espacio tridimensional una circunferencia que este contenida dentro del plano XY.
Sugerencia: trabaja en dos dimensiones y a nade una tercera coordenada nula.
2. Modica convenientemente el ejercicio 2 de la hora 21 para construir un camino aleatorio en tres
dimensiones.
3. Genera 120 n umeros aleatorios entre 0 y 100. Considera que los valores obtenidos simulan el n umero
de ganadores mensuales de premios millonarios durante los ultimos 10 a nos. Asigna a cada dato el mes
y el a no correspondiente y representa los valores obtenidos mediante un dibujo en tres dimensiones.
1
Ver tabla de la seccion 20.1, pagina 51.
68
Hora 26
Dibujo de mallados
26.1. Dibujo de mallados
[U,V]=meshgrid(x,y)
Comando que obtiene una red adecuada para dibujar gracas tridimensionales
a partir de los vectores x e y. Ej.:
x=[1 2]; y=[3 4];
[x,y]=meshgrid(x,y)
[U,V,W]=meshgrid(x,y,z)
Obtiene una red tridimensional.
mesh(Z)
Dibuja la matriz Z como tercera coordenada sobre una red rectangular y conecta los puntos
adyacentes creando una supercie. Ej.:
subplot(2,1,1);
x=-1:.1:1;
y=x;
[x,y]=meshgrid(x,y);
z=x.^2+y.^2;
mesh(z);
subplot(2,1,2);
mesh(z);
hidden off;
mesh(U,V,Z)
Dibuja la matriz Z sobre los nodos de la red formada por U y V. Ej.:
U=4:8;V=1:3;Z=3*ones(3,5);
mesh(U,V,Z);
surf(X,Y,Z)
Dibuja la supercie especicada por X e Y, que toma los valores de Z. Si no se especica
la red, se dibuja en una red uniforme.
[X,Y,Z]=cylinder(r,n)
Devuelve las coordenadas correspondientes a la supercie de un cilindro o un
cono. Los radios del cilindro se toman del vector r, que contienen los radios en n puntos equidistantes en el
eje del cilindro. Si no se especica n, se utiliza n = 20.
[X,Y,Z]=sphere(n)
Devuelve n coordenadas igualmente espaciadas sobre una esfera unidad. Ej.:
69
26 Dibujo de mallados
[X,Y,Z]=sphere(20);
surf(X,Y,Z);
26.2. Ejercicios
1. Dibuja la supercie denida por las siguientes funciones:
f(x, y) = sin(x) sin(y), (x, y) [0, ] [0, ].
f(x, y) = x 0,5x
3
+ 0,2y
2
+ 1, (x, y) [3, 3] [3, 3].
f(x, y) =
sin(

x
2
+y
2
)
x
2
+y
2
, (x, y) [8, 8] [8, 8].
2. Dibuja una supercie semejante a una chimenea de una central termica (hiperboloide hiperbolico).
3. Dibujar dos circunferencias intersecadas.
4. Dibujar los cinco aros olmpicos.
5. Repite el ejercicio 3 de la hora 25 guiandote con las siguientes indicaciones:
a) Guarda los datos simulados en una matriz 1012 (logicamente, las las hacen referencia al a no
y las columnas al mes).
b) Utiliza el comando meshgrid y construye una red de referencia.
c) Emplea los comandos mesh y surf para obtener la representacion graca solicitada.
Que diferencias observas respecto al dibujo realizado con el comando plot3?
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 70
Hora 27
Control de la ventana y de los gracos
tridimensionales
27.1. Control de gracos tridimensionales
axis
Identico al utilizado con gracos bidimensionales.
title, xlabel, ylabel, zlabel, text, gtext, legend, ginput, grid, . . .
Identicos a los utilizados con gracos
bidimensionales (gtext y ginput solo funcionan en determinadas versiones).
hidden on, hidden o
Mantiene las lneas posteriores ocultas o no dependiendo que utilicemos on u
off.
27.2. Control de la ventana graca tridimensional
hold, subplot, . . .
Identicos a los utilizados con gracos bidimensionales (gtext y
view(v,h)
Establece el punto de vista de la graca. El escalar v determina el angulo azimutal y el
escalar h el angulo de elevacion.
[v,h]=view
Devuelve el punto de vista actual mediante el angulo azimutal y el angulo de elevacion.
view(r)
Sit ua el punto de vista en la posicion r=[x y z]. Ej.:
subplot(2,1,1);
X1=[0 1 0];Y1=[0 0 1]; Z1=[1 0 0];
X2=[0 0 0];Y2=[0 1 0]; Z2=[1 0 0];
X3=[0 1 0];Y3=[0 0 0]; Z3=[1 0 0];
X4=[1 0 0];Y4=[0 1 0]; Z4=[0 0 0];
fill3(X1,Y1,Z1,r,X2,Y2,Z2,b,X3,Y3,Z3,g,X4,Y4,Z4,y);
grid;
subplot(2,1,2);
fill3(X1,Y1,Z1,r,X2,Y2,Z2,b,X3,Y3,Z3,g,X4,Y4,Z4,y);
grid;
71
27 Control de la ventana y de los gracos tridimensionales
view(196,30);
27.3. Ejercicios
1. A nade las siguientes caractersticas al camino aleatorio tridimensional construido en el ejercicio 2 de
la hora 25:
Ttulo: Camino aleatorio en el espacio.
Los ejes estan etiquetados por la expresiones eje x, eje y y eje z.
Los puntos inicial y nal del camino estan se nalados con las etiquetas comienzo y nal
respectivamente.
Utiliza el comando gtext para aproximar las coordenadas del punto mas alto.
2. Dibuja, en el plano, la circunferencia x
2
+y
2
= 1. Posteriormente a nade el comando view([1,0.6,0.35]).
Que observas?
3. A nade las siguientes caractersticas a la representacion realizada en el ejercicio 3 de la hora 25:
a) Etiqueta los ejes con a nos, meses y acertantes seg un corresponda.
b) Titula la representacion mediante Comando plot3.
4. A nade las siguientes caractersticas a la representacion realizada en el ejercicio 5 de la hora 26:
a) Etiqueta los ejes con a nos, meses y acertantes seg un corresponda.
b) Titula las representaciones mediante Comando mesh y Comando surf seg un corresponda.
5. Realiza las siguientes operaciones:
a) Obten 120 datos aleatorios como en el ejercicio 3 de la hora 25. Almacenalos en el vector v y en
una matriz A de tama no 1012.
b) Divide la pantalla graca en cuatro zonas mediante el comando subplot.
c) En la primera zona representa el resultado del ejercicio 3 anterior.
d) En la segunda zona representa el resultado del ejercicio 3 anterior, pero utilizando marcadores
distintos para los puntos representados.
e) En la tercera zona representa uno de los gracos representados en el ejercicio 4 anterior.
f ) En la cuarta zona representa el otro dibujo obtenido en el ejercicio 4 anterior.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 72
Hora 28
Dibujo de poliedros y de lneas de
contorno
28.1. Dibujo de poliedros
ll3(x,y,z,c)
Dibuja el poliedro con vertices dados por los vectores x,y,z. El poliedro se rellena con
el color dado por c.
28.2. Dibujo de lneas de contorno
C=contour(x,y,Z,n), C=contour(x,y,Z,v)
Dibuja las curvas de nivel de la matriz Z en n niveles
especicados en el vector v sobre la red determinada por los puntos x, y. Si no se concreta n se dibujan 10
niveles. Si se omite la red x, y, entonces MATLAB emplea una red uniforme. C es la matriz de contorno.
clabel(C)
Escribe los valores de los niveles que representan las curvas de nivel. Las posiciones son
aleatorias. C es la matriz de contorno. Se pueden especicar los niveles, con un vector v. Ej.:
r=10:-0.1:0;
[X,Y,Z]=cylinder(r,100);
v=linspace(0,1,15);
C=contour(X,Y,Z,v);
clabel(C);
meshc(U,V,Z)
Act ua igual que mesh, incluyendo las curvas de nivel bajo el graco.
surfc(U,V,Z)
Act ua igual que surf, incluyendo las curvas de nivel bajo el graco. Ej.:
x=-8:0.5:8;
y=x;
[XX,YY]=meshgrid(x,y);
r=sqrt(XX.^2+YY.^2)+eps;
z=sin(r)./r;
subplot(2,1,1);
73
28 Dibujo de poliedros y de lneas de contorno
meshc(z);
title(sin(r)/r));
subplot(2,1,2);
surfc(z); title(sin(r)/r));
28.3. Ejercicios
1. Sea la supercie denida mediante la ecuacion z = x
2
/4 y
2
/9. Se pide:
a) Dibujar la supercie en la red determinada por las abcisas x = 10 : 1 : 10 y las ordenadas
y = 20 : 1 : 20 empleando el comando surf.
b) Dibujar las curvas de nivel asociadas a los valores v = 50 : 5 : 50.
c) Representar los dos gracos anteriores, uno encima del otro.
d) Representar los dos gracos anteriores en la misma ventana utilizando el comando surfc.
e) Dibujar la supercie en la red determinada por las abcisas x = 10 : 0,5 : 10 y las ordenadas
y = 20 : 0,5 : 20 empleando el comando mesh.
f ) Representar la supercie con el comando meshc.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 74
Hora 29
Libreras relacionadas con gracos
bidimensionales y tridimensionales
SPECGRAPH: gracos especiales.
area(X)
Dibuja las sumas acumuladas de las distintas columnas que forman la matriz X y
colorea las areas situadas entre las gracas representadas. Ej.:
X=[1,2,3;4,5,6;7,8,9]
X =
1 2 3
4 5 6
7 8 9
area(X),grid
bar(X)
Representa el diagrama de barras asociado con las frecuencias contenidas en X. Se
considera que los valores de una misma la hacen referencia a la misma categora. Ej.:
X=[1,2,3;4,5,6;7,8,9];
bar(X)
barh(X)
Igual que el anterior. La unica diferencia es que las barras se representan horizontal-
mente. Ej.:
X=[1,2,3;4,5,6;7,8,9];
barh(X)
bar3(X)
Representa el diagrama de barras tridimensional asociado con las frecuencias contenidas
en X. Se considera que los valores de una misma la hacen referencia a la misma categora. Ej.:
X=[1,2,3;4,5,6;7,8,9];
bar3(X)
bar3h(X)
Igual que el anterior. La unica diferencia es que las barras se representan horizontal-
mente. Ej.:
X=[1,2,3;4,5,6;7,8,9];
bar3h(X)
75
29 Libreras relacionadas con gracos bidimensionales y tridimensionales
pareto(x,e)
Dibuja un diagrama de Pareto con las frecuencias descritas en el vector x y las
etiquetas contenidas en el vector e. Ej.:
x=[3;14;1;7];
tiposdefallo=[ desgaste ; rotura ;desencaje ;dilatacion];
pareto(x,tiposdefallo)
pie(x,e)
Dibuja un diagrama de sectores con las frecuencias descritas en el vector x y las etiquetas
contenidas en el vector e. Ej.:
pie([2 4 3 5],{North,South,East,West})
pie3(x,d,e)
Dibuja un diagrama de sectores con las frecuencias descritas en el vector x y las
etiquetas contenidas en el vector e. Las componentes del vector d indican si los correspondientes
sectores se separan del centro del crculo (valor 1) o no (valor 0). Ej.:
pie3([2 4 3 5],[0 1 1 0],{North,South,East,West})
plotmatrix(X)
Dibuja scatterplots para cada par de columnas de la matriz X. En la diagonal
representa histogramas relativos a los datos contenidos en las correspondientes columnas de la matriz
X. Ej.:
x = randn(50,3); Y = x*[-1 2 1;2 0 1;1 -2 3;];
plotmatrix(Y,*r)
stem()
Act ua como la funcion plot(). La unica diferencia es que se representa la proyeccion
ortogonal sobre el eje de abscisas de cada uno de los puntos dibujados. Ej.:
x=linspace(0,5,20);y=exp(-x);
stem(y)
stem3()
Act ua como la funcion plot3(). La unica diferencia es que se representa la proyeccion
ortogonal sobre el plano XY de cada uno de los puntos dibujados. Ej.:
x = linspace(0,1,10);y=x./2;z=sin(x)+cos(y);
stem3(x,y,z,fill)
scatter(x,y,s,c)
Dibuja crculos coloreados en las coordenadas especicadas a traves de las com-
ponentes de los vectores x e y. El vector (o escalar) s determina el tama no de dichos crculos y c
contiene el color (o colores) de cada uno de ellos. Ej.:
x = linspace(0,1,10);y=normrnd(2,3,1,10);
scatter(x,y,15,r)
scatter3(x,y,z,s,c)
Igual que el anterior, pero en el espacio. Ej.:
x = linspace(0,1,50);y=x;[u,v]=meshgrid(x,y);z=normrnd(2,3,2500,1);
scatter3(u(:),v(:),z,1)
stairs()
Act ua como la funcion plot(). La unica diferencia es que los puntos representados se
unen en escalera. Ej.:
x=-10:1:10;y=x.^2;stairs(x,y)
29.1. Ejercicios
Comprueba los ejemplos introducidos en la seccion anterior y explica los resultados obtenidos.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 76
Hora 30
Copia de la ventana graca y encuesta
nal
30.1. Copia de la ventana graca
print nombre
Enva el contenido de la ventana graca activa a un chero llamado nombre.ps. Si
no se especica ning un chero, entonces el graco se imprime. Ej.:
x=-pi:0.1:pi;
y=sin(x);
plot(x,y);
print dibujo;
print -djpeg nombre
Enva el contenido de la ventana graca activa a un archivo con formato jpg
llamado nombre.
print -dbitmap nombre
Enva el contenido de la ventana graca activa a un archivo con formato bmp
llamado nombre.
orient cadena
Establece la orientacion que utiliza MATLAB antes de imprimir con el comando print.
Si cadena es landscape se imprime en apaisado. Si es portrait se imprime en vertical. Si es tall se imprime
en vertical y a una escala que llena el papel. Si no se especica devuelve la orientacion actual en una cadena.
30.2. Ejercicios
1. Recupera las representaciones realizadas en el ejercicio 1 de la hora 28 y resuelve las siguientes cues-
tiones.
a) Grabar la ventana graca obtenida en el apartado (1d) en el chero pilardel.ps con formato
postscript. Abrir el chero anterior con el VisorPS.
b) Grabar la ventana graca obtenida en el apartado (1d) en el chero pilardel.ps con formato
postscript apaisado. Abrir el chero anterior con el VisorPS.
c) Grabar la ventana graca obtenida en el apartado (1f ) en el chero castillo.jpg con formato
jpg. Abrir el chero anterior con el programa Image Viewer.
77
Hora 31
Estructura de seleccion case
31.1. Estructura de seleccion case
switch expresion
case valor de la expresion
.
.
. % secuencia de comandos
case valor de la expresion
.
.
. % secuencia de comandos
case valor de la expresion
.
.
. % secuencia de comandos
otherwise
.
.
. % secuencia de comandos
end
Ej.:
function f = f(X,N)
switch N
case 1
f = X^1;
disp(Potencia primera)
case 2
f = X^2;
disp(Potencia segunda)
case 1.5
f = X^1.5;
disp(Raiz cuadrada)
otherwise
f = 0;
disp(No es ningun caso de los anteriores)
end
78
31 Estructura de seleccion case
31.2. Ejercicios
1. Denir una base de funciones llamada f.m que tome los siguientes valores
a)
f
1
(x) = sin(x
2
+ log(|x|))
b)
f
2
(x) =
x
3
3x
2
+ 2x 1
x
2
+ 2
c)
f
3
(x) =
100

j=0
x
j
d)
f
4
(x) =
100

j=1
x
j
(Desarrollar la funcion de manera que pueda realizar todas operaciones vectorialmente). Usando esta
funcion, desarrollar un programa que dibuje cada una de las funciones anteriores en una sola ventana
(cada una de las funciones en una subventana de las cuatro en las que dividiremos la ventana principal)
2. Denir una funcion fac.m que devuelva lo siguiente:
1 si n = 0
1 is n = 1
n! si n 2
un mensaje de error si n < 0 o no es entero.
(Recomendacion: combinar la estructura case con la la estructura if )
3. Para encontrar los terminos de las soluciones de las recurrencias
(1) y
n+3
5y
n+2
+ 3y
n+1
y
n
= n, n 0,
(2) 5y
n+3
+ (y
n+1
)
2
log(y
n
) = sin(n), n 0,
(3) ny
n
y
n+3
+ y
n+2
y
n+1
= 1, n 0,
con y
0
= 1, y
1
= 2 e y
2
= 3 se propone desarrollar una base de recurrencias, similar a lo que se ha
hecho en el primer ejercicio, y una funcion llamada recurrencia.m que nos permita calcular el termino
nesimo de la recurrencia seleccionada (podemos suponer que el usuario da valores enteros y positivos
al argumento de la funcion).
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 79
Hora 32
Debugger
32.1. Opciones del debugger de MATLAB
dbstop
Permite jar un punto de interrupcion (breakpoint) en el programa.
dbclear
Permite borrar un punto de interrupcion jado previamente.
dbcont
Continua la ejecucion del programa bajo las condiciones jadas previamente.
dbdown
Cambia el entorno del espacio de trabajo.
dbmex
Permite la posibilidad de realizar una depuracion (debugging) de cheros MEX.
dbstack
Muestra la localizacion completa del programa que se esta ejecutando junto con la lnea en la
que se ha interrumpido el programa.
dbstatus
Muestra un listado de los puntos de interrupcion que hemos jado.
dbstep
Ejecuta una o varias lneas de comandos hasta el siguiente punto de interrupcion.
dbtype
Muestra en ventana el chero *.m que se esta ejecutando con las lneas numeradas.
dbup
Cambia el entorno del espacio de trabajo.
dbquit
Termina la ejecucion del programa en modo debugger.
Algunas de estas funciones se pueden manejar desde la barra de herramientas o bien desde las opciones
de men u mediante las teclas siguientes:
dbstop
F8 o desde las opciones de men u.
dbclear
F8 o desde las opciones de men u.
dbcont
F5 .
dbstep
F6 .
dbquit
(Desde las opciones de men u).
Step by step In F7 .
80
32 Debugger
Step by step Out Shift + F7 .
Stop if error Interrumpe el programa si encuentra un error (desde las opciones de men u).
Stop if warning Interrumpe el programa si encuentra un mensaje de atencion (desde las opciones de
men u).
Stop if NaN or Inf Interrumpe el programa si aparece una indeterminacion matematica o un innito
(desde las opciones de men u).
Step by step Out Interrumpe el programa en cualquiera de los casos anteriores (desde las opciones de
men u).
32.2. Ejercicios
Determinar con la ayuda del debugger por que las funciones prg1.m, prg2.m y prg2.m no devuelven
resultado alguno (Observar que en la ultima lnea de cada una de ellas debera de mostrar el resultado de
los calculos). Utilizar, ademas, los warning para detener el programa cuando se produzca alg un error en la
ejecucion.
function prg1=prg1(N)
K=10*N;
J=-1;
while K < 10000
J=J+1;
U(J)=factorial(N);
for M=1:1:U(J)
U(J)=U(J)+prg2(M)+M;
X=prg3(U(J));
end;
end;
prg1=U+X % Salida de datos
function prg2=prg2(X)
for J=-3:1:3
X=X/J;
end;
for J=1:1:100
U=sin(J);
J=J-1;
end;
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 81
32 Debugger
prg2=X/2 % Salida de datos
function prg3=prg3(X)
for J=X:1:-3
prg3=X/J;
end;
X % Salida de datos
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 82
Hora 33
Creacion de libreras
33.1. Programacion modular
Main program
Function 1 Function 2 Function 3 Function N
Crear librera File/Set path [Add folder] (desde las opciones de men u).
Eliminar librera File/Set path [remove] (desde las opciones de men u).
33.2. Ejercicio
Problema: Sea una matriz A, 4 4, de ceros. Se pretende encontrar una distribucion de 7 unos en A de
modo que al eliminar 2 las y 2 columnas cualesquiera siempre quede alg un uno (se puede demostrar que
con menos de 7 esto no es posible pero con 7 s).
Se pide programar una funcion que nos permita encontrar las distribuciones de 7 unos en la matriz A que
resuelvan el problema anterior. Para ello, vamos a partir de ciertas premisas que razonablemente se pueden
suponer:
En cada una de las las y cada una de las columnas no puede haber mas de 2 unos.
Puede haber otras distribuciones que resuelvan el problema y que no veriquen la premisa anterior.
El algoritmo que se pretende implementar no es nesariamente optimo, tampoco es lo que se pretende
en este ejercicio.
Para ello vamos estructurar la programacion de la funcion pedida como sigue
Pr. principal: pr.m
Funcion distribuciones.m Funcion matval.m
donde cada funcion se describe a continuacion:
83
Nota
1. Partiendo de la matriz
U(:, :, 1) =
_
_
_
_
_
1 1 0 0
1 1 0 0
1 1 0 0
1 0 0 0
_
_
_
_
_
almacenar en las sucesivas U(:, :, J) todas las posibles distribuciones de unos manteniendo en cada la
el n umero de unos que hay en U(:, :, 1).
Datos de entrada de la funcion distribuciones.m:
Ninguno.
Datos de salida de distribuciones.m:
U la matriz con las posibles distribuciones de unos.
M el n umero de matrices que han resultado
2. Programar una funcion matval.m que permita reconocer si una matriz es solucion del problema o no.
Datos de entrada de la funcion matval.M:
A matriz 4 4 de unos y ceros.
Datos de salida de matval.m:
A si la matriz es solucion del problema y la matriz identicamente cero, A = 0, si no es solucion
del problema.
3. Programar una funcion con el nombre de pr.m que llamando a las anteriores encuentre todas las
posibles soluciones del problema planteado, mostrando por pantalla las que efectivamente sean solucion
del problema.
4. Crear una librera propia con las funciones programadas en los ejercicios anteriores en un subdirectorio
de la cuenta propia de cada uno llamado ejercicio. Probar a situarse en el directorio raiz propio
(bajo MATLAB) y comprobar que se ha creado apropiadamente la librera ejecutado la funcion desde
all.
NOTA: las funciones resaltadas con estan disponibles en el paquete base de MATLAB y las resaltadas
mediante solo estan disponibles en la tolboox stats de MATLAB.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 84
Hora 34
Estadstica Descriptiva
34.1. Lectura y escritura en formato tabular
[datos,var,indiv]=tblread
Permite la lectura de datos almacenados en un chero externo en forma
tabular. Los cheros con este formato presentan tres caractersticas:
1. La primera la almacena los nombres de las variables.
2. La primera columna contiene los nombres o ndices de los individuos o casos considerados.
3. Los campos se separan mediante un caracter delimitador de los mismos.
La ejecucion de esta funcion abre la ventana open (para que el usuario seleccione el nombre del chero
tabular que quiere leer) y devuelve tres variables: datos, que contiene los registros de cada par individuo-
variable, var, con los nombres de las variables e indv, con los nombres de los individuos o casos registrados
en el chero.
Esta funcion admite dos argumentos opcionales, uno para especicar directamente el nombre del archivo de
lectura y otro para indicar el delimitador empleado en dicho chero (MATLAB asume por defecto que el
delimitador utilizado es un espacio en blanco). Se aceptan los siguientes caracteres como delimitadores de
campos: , \t, ,, ;, !, o sus correpondientes nombres: space, tab, comma, semi, bar.
tblwrite(datos,var,indiv)
Permite la escritura de datos en un chero externo en forma tabular. La
ejecucion de esta funcion abre una ventana save (para que el usuario seleccione el nombre del chero que
quiere crear) y construye un archivo tabular con var como nombre de las variables (primera la), indiv
como nombre de los individuos o casos (primera columna) y con datos como matriz de registros de cada
par individuo-variable.
Esta funcion admite dos argumentos opcionales, uno para especicar directamente el nombre del archivo de
lectura y otro para indicar el delimitador empleado en dicho chero (MATLAB asume por defecto que el
delimitador utilizado es un espacio en blanco). Se aceptan los siguientes caracteres como delimitadores de
campos: , \t, ,, ;, !, o sus correpondientes nombres: space, tab, comma, semi, bar.
85
34 Estadstica Descriptiva
34.2. Tabulacion de datos
tabla=tabulate(v)
Obtiene la tabla de distribucion de frecuencias de v. El argumento debe ser un
vector de n umeros naturales.
[tabla,
2
, p]=crosstab(v1,v2)
Toma dos vectores de n umeros naturales y calcula su tabulacion
cruzada. El elemento (i, j) de tabla contiene la frecuencia de aparicion del par (i, j). Esta funcion admite dos
argumentos de salida adicionales que almacenan el estadstico
2
y el p-valor del contraste de independencia
correspondiente.
34.3. Medidas de localizacion
v=mean(X) Media aritmetica.
v=nanmean(X)
Se diferencia de la anterior en que prescinde de los valores nan.
v=median(X) Mediana.
v=nanmedian(X)
Se diferencia de la anterior en que prescinde de los valores nan.
v=trimmean(X,p)
Media recortada. El porcentaje de recorte se indica con el escalar p [0, 100]. La
media se calcula prescindiendo del
p
2
% de los datos menores y mayores.
v=geomean(X)
Media geometrica.
v=harmmean(X)
Media armonica.
NOTAS sobre estas medidas:
1. Se calculan sobre cada una de las columnas de X.
2. Admiten como argumento un vector.
34.4. Medidas de orden
[Y,v]=min(X) Mnimo. El vector v contiene los ndices correspondientes a los valores mnimos encon-
trados. Si se alcanza varias veces en una misma columna entonces solo muestra el primero.
X=min(X1,X2) Compara las matrices X1 y X2 elemento a elemento y devuelve el mnimo encontrado
en cada comparacion.
[Y,v]=max(X) Maximo. El vector v contiene los ndices correspondientes a los valores maximos encon-
trados. Si se alcanza varias veces en una misma columna entonces solo muestra el primero.
X=max(X1,X2) Compara las matrices X1 y X2 elemento a elemento y devuelve el maximo encontrado
en cada comparacion.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 86
34 Estadstica Descriptiva
Y=prctile(X,p)
Calcula los percentiles indicados en el vector p en cada una de las columnas de la
matriz X. Concretamente, la i-esima la de Y contiene el p(i) percentil de cada una de las columnas de X.
Las componentes de p pertenecen al intervalo [0, 100].
34.5. Medidas de dispersion
v=var(X) Obtiene un vector la cuyas componentes son la cuasivarianza muestral de cada una de las
columnas de X.
v=var(X,1) Obtiene un vector la cuyas componentes son la varianza muestral de cada una de las
columnas de X.
v=std(X) Vector la con la cuasidesviacion estandar muestral de las columnas de X.
v=nanstd(X)
Se diferencia de la anterior en que prescinde de los valores nan.
v=std(X,1) Vector la con la desviacion estandar muestral de las columnas de X.
v=range(X)
Recorrido.
v=iqr(X)
Rango intercuartlico
v=mad(X)
Desviacion absoluta media
34.6. Otras funciones
[X2,v]=sortrows(X1) Ordena las las de X1 en orden ascendente tomando como referencia las compo-
nentes de la primera columna de X1 y en caso de empate, las siguientes columnas en el orden natural. v es
un vector de ndices que describe como se ha realizado la ordenacion.
[X2,v2]=sortrows(X1,v1) Ordena las las de X1 en orden ascendente tomando como referencia las com-
ponentes de la columna de X1 indicada en el primer ndice del vector v1 y en caso de empate, las siguientes
columnas indicadas en v1. v2 es un vector de ndices que describe como se ha realizado la ordenacion.
[X2,I]=sort(X1) Ordena de modo creciente cada una de las columnas de X1. La matriz I describe la
ordenacion realizada en cada columna.
cumsum Suma acumulada.
[medias,dem,freq] = grpstats(X,niveles,)
niveles es un vector columna con n umeros naturales que
indica la poblacion o grupo al que pertenece cada una de las las de X. Esta funcion almacena en medias
la media de cada columna de X y en cada una de las poblaciones consideradas. La variable dem contiene el
error estandar de cada una de las medias calculadas. freq guarda las frecuencias de cada grupo en cada
una de las columna de X. Finalmente, si se indica un nivel de conanza entonces la funcion representa los
intervalos de conanza de nivel 1 correspondientes a cada columna y poblacion.
v=skewness(X)
Asimetra.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 87
34 Estadstica Descriptiva
v=kurtosis(X)
Kurtosis (sin referencia a la normal).
v=moment(X,c)
Calcula el momento respecto de la media de orden c en cada una de las columnas
de X.
X2=cov(X1)
Matriz de covarianzas de X1. Se emplea como cociente a n1. Para utilizar el cociente
n es necesario incluir el argumento 1.
X=cov(v1,v2)
Matriz de covarianzas de [v1(:) v2(:)]. Se emplea como cociente a n 1. Para
utilizar el cociente n es necesario incluir el argumento 1.
X2=corrcoef(X1)
Matriz de correlaciones de X1.
34.7. Representaciones gracas
pie(x,sep,etiq) Representa el diagrama de sectores de los datos almacenados en x. El argumento sep
es un vector de ceros y unos. Si sep(i)=0 entonces el sector correspondiente a la frecuencia x(i) tiene el
vertice en el centro. Si sep(i)=1 entonces el sector correspondiente a la frecuencia x(i) tiene el vertice
separado ligeramente del centro. La variable etiq es un argumento opcional que contiene las etiquetas de
las categoras representadas.
pie3((x,sep,etiq)) Diagrama de sectores tridimensional. Sus argumentos son analogos a los anteriores.
stem(...) Representa un diagrama de barras. Concretamente:
stem(X): Representa un diagrama de barras para cada una de las las de X.
stem(X,Y): Representa los pares (X(i,j),Y(i,j)) mediante un diagrama de barras.
stem(...,relleno): El argumento opcional relleno especica el color utilizado.
stem3 Diagrama de barras tridimensional. Sus argumentos y el resultado que producen son analogos a
los anteriores.
bar(...) Diagrama de rectangulos. Sus argumentos y el resultado que producen son:
1. bar(v): Representa un rectangulo para cada componente de v. El rectangulo i-esimo tiene altura v(i).
2. bar(X): Representa un grupo de size(X,2) rectangulos para cada la de X.
3. bar(x,v), bar(x,X): Se diferencia de las representaciones anteriores en que los rectangulos se loca-
cilizan en las abcisas especicadas en x.
4. barh(...): Se diferencia de las representaciones anteriores en que los rectangulos se dibujan horizon-
talmente.
Las funciones anteriores admiten tres argumentos opcionales: bar(...,anchura,estilo,aspecto). an-
chura establece la separacion de los rectangulos dentro de cada grupo. Con anchura=1 se elimina dicha
separacion. El valor por defecto es 0.8. estilo determina el modo en el que se dibujan los rectangulos
dentro de los grupos y sus valores pueden ser stack (para representaciones apiladas) y group (para
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 88
34 Estadstica Descriptiva
representaciones sin apilar). Finalmente, aspecto incide sobre los colores, el estilo y la anchura de lnea
utilizados, etc.
bar3(...),bar3h(...) Diagrama de rectangulos tridimensional. Sus argumentos y el resultado que pro-
ducen son analogos a los anteriores. estilo admite el argumento adicional detached para producir la
representacion espacial habitual.
pareto(v,nombres) Dibuja un diagrama de Pareto. La variable nombres contiene las nombres de las
categoras que se quieren representar y la variable v almacena las frecuencias de cada una de ellas.
hist(...) Histograma. Sus argumentos y el resultado que producen es:
hist(v): Dibuja el histograma resultante de un agrupamiento en 10 clases iguales que se extienden
entre los valores mnimo y maximo de v.
hist(v,x): Dibuja el histograma resultante de un agrupamiento en length(x) clases centradas en los
elementos de x.
hist(v,n): Dibuja el histograma resultante de un agrupamiento en n clases iguales que se extienden
entre los valores mnimo y maximo de v.
[v,agrup]=hist(...): v contienen las frecuencias de cada clase y agrup los centros de dichas clases.
La funcion hist admite una matriz como argumento. En este caso la funcion se eval ua en cada columna y
los resultados se dibujan por grupos en cada clase del agrupamiento empleado.
[v2,ind]=histc(v1,limites) Realiza el agrupamiento determinado por la particion [limites(k),li-
mites(k+1)) (la ultima clase es termina en limites(end)). v2 contiene la frecuencia de cada clase e ind los
indices que localizan la clase a la que pertenece cada elemento de v1. El histograma se representa mediante
bar(v1,n,histc).
stairs(X) Dibuja un graco en escalera para cada una de las columnas de X.
stairs(X1,X2) Se diferencia del anterior en que la matriz X2 explicita las abcisas.
scatter(x,y,s,c,lled) Representa la nube determinada por los puntos de coordenadas (x(i),y(i)). s
y c son argumentos opcionales que indican el tama no y el color de los puntos representados. filled se
utiliza para rellenar dichos puntos.
scatter3(x,y,z,s,c,lled) Scatterplot tridimensional. Sus argumentos y el resultado que producen son
analogos a los anteriores.
plotmatrix(X1,X2) Representa la nube de puntos determinada por cada par de columnas X1(:,i),X2(:,j).
plotmatrix(Y) coincide con plotmatrix(Y,Y) excepto en que la diagonal se sustituye por hist(Y(:,i)).
boxplot(X,notch,simb,vert,lb)
Diagrama de caja. Sus argumentos son:
X: matriz de datos. Se representa un diagrama de caja para cada columna de X.
notch=0 es el valor por defecto y representa una caja rectangular. Con notch=1 se dibuja la caja con
muesca.
simb contiene el smbolo utilizado para representar los datos outliers. Por defecto toma el valor
simb=+.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 89
34 Estadstica Descriptiva
vert=1 es el valor por defecto y representa cajas verticales. Con vert=0 se dibujan cajas horizontales.
lb determina la longitud de los bigotes en unidades del rango intercuartlico. lb=1.5 es el valor por
defecto.
gline(g)
Dibuja interactivamente una recta en la ventana graca fig. gline() hace referencia a
la ventana graca activa.
reine(a,b)
A nade la recta y = ax + b a la gura actual.
lsline
A nade la recta de ajuste mnimo cuadratica a un Scatterplot.
normplot(X)
Representa el plot de normalidad de cada una de las columnas de X.
qqplot(X,Y,pvec)
Representa el plot cuantil-cuantil para los pares de muestras X(:,j),Y(:,j). El
argumento opcional pvect se utiliza para especicar los percentiles empleados en la representacion.
refcurve(p)
A nade a la gura actual la graca del polinomio p. Para especicar dicho polinomio se
utiliza un vector cuyas componentes son los coecientes del mismo comenzando con el asociado a la potencia
de mayor grado.
errorbar(X,Y,L,U,simbol) Representa los puntos (X(i,j),Y(i,j)) y prolongaciones verticales deter-
minadas por los puntos (X(i,j),X(i,j)-L(i,j)) y (X(i,j),X(i,j)+U(i,j)). simbol es una cadena que
controla el tipo de lnea, el smbolo y el color de las barras de error dibujadas. Los argumentos X, U y simbol
se pueden suprimir.
34.8. Ejercicios
1. Importar el chero de datos Demog.tex.
2. a) Crea una funcion para averiguar si una muestra de datos contiene valores atpicos, siguiendo el
criterio utilizado en el Box-plot.
b) Construye una funcion que devuelva
La media y la desviacion estandar de los datos si en la muestra no existen outliers o
La mediana y el rango intercuartlico de los datos si en la muestra hay outliers.
3. Crea una funcion que construya una tabla de percentiles con dos columnas. La primera debe contener
el porcentaje de cada uno de ellos y la segunda el percentil correspondiente.
4. He aqu datos de 8 escuelas de secundaria sobre el consumo de tabaco entre los estudiantes y entre sus
padres:
Estudiantes Estudiantes
fumadores no fumadores
Los dos padres fuman 400 1380
Solo uno de los padres fuma 416 1823
Ninguno de los padres fuma 188 1168
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 90
34 Estadstica Descriptiva
Representa estos datos en un diagrama de barras. A nade ttulo y una leyenda con el nombre de las
categoras representadas.
5. Representa los siguientes datos en un histograma:
12, 14, 7, 8, 11, 1, 6, 8, 7, 3, 7, 7, 13, 4, 13, 11, 13, 11, 5, 3000
Utiliza las siguientes clases:(, 0], (0, 3], (3, 10], (10, 14].
6. Construye una funcion que realize la tabla de distribucion de frecuencias de un conjunto de n umeros
naturales. Dicha tabla debe contener las frecuencias absolutas, relativas, absolutas acumuladas y re-
lativas acumuladas.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 91
Hora 35
Modelos de Probabilidad
35.1. Modelos de probabilidad implementados en MATLAB
MATLAB tiene implementadas las siguientes distribuciones de probabilidad (entre parentesis se muestra
una sintaxis equivalente o abreviada):
Beta (beta) Binomial (bino)
Chisquare (chi2) Exponential (exp)
F (f) Gamma (gam)
Geometric (geo) Hipergeometric (hyge)
Lognormal (logn) Negative Binomial (nbin)
Noncentral F (ncf) Noncentral t (nct)
Noncentral Chi-square (ncx2) Normal (norm)
Poisson (poiss) Rayleigh (rayl)
T (t) Uniform (unif)
Discrete Uniform (unid) Weibull (weib)
Para cada una de ellas MATLAB calcula la funcion de densidad o probabilidad (seg un que el modelo sea
continuo o discreto), su media y varianza, la funcion de distribucion, la inversa de la funcion de distribucion
(percentiles) y genera n umeros pseudoaleatorios.
35.2. Funcion de Densidad/Probabilidad
Y = pdf(nombre,X,A1,A2,A3)
Calcula las ordenadas de la funcion de densidad/probabilidad del
modelo nombre con los parametros especicados en las matrices A1, A2 y A3 (dependiendo de la distribucion
algunos de estos parametros pueden ser innecesarios) en las abcisas especicadas como elementos de la matriz
92
35 Modelos de Probabilidad
X. Los argumentos X, A1, A2 y A3 deben tener todos el mismo tama no excepto valores escalares (que funcionan
como matrices constantes con el mismo tama no que el resto de los argumentos).
35.3. Funcion de Distribucion
Y = cdf(nombre,X,A1,A2,A3)
Calcula las ordenadas de la funcion de distribucion del modelo
nombre siguiendo las pautas descritas anteriormente.
35.4. Inversa de la Funcion de Distribucion (percentiles)
Y = icdf(nombre,X,A1,A2,A3)
Calcula los percentiles del modelo nombre siguiendo las pautas
descritas inicialmente.
35.5. N umeros aleatorios
Y = random(nombre,A1,A2,A3,m,n)
Genera a partir de la distribucion nombre una matriz de
tama no m n con n umeros aleatorios siguiendo las pautas descritas inicialmente. Los parametros m y n
son opcionales y su valor por defecto es 1.
Y = mvnrnd(,SIGMA,n)
Genera a partir de una distribucion normal multivariante con vector de
medias y matriz de covarianzas SIGMA una matriz de n umeros aleatorios con n las.
35.6. Media y varianza
Las funciones que calculan la media y la varianza de los modelos de probabilidad descritos inicialmente
se construyen a nadiendo la cadena stat al nombre abreviado del modelo (salvo poiss, que pierde una s):
[mu,sigma]=betastat(A,B) [mu,sigma]=binostat(N,P)
[mu,sigma]=chi2stat(NU) [mu,sigma]=expstat(MU)
[mu,sigma]=fstat(V1,V2) [mu,sigma]=gamstat(A,B)
[mu,sigma]=geostat(P) [mu,sigma]=hygestat(M,K,N)
[mu,sigma]=lognstat(MU,SIGMA) [mu,sigma]=nbinstat(R,P)
[mu,sigma]=ncfstat(NU1,NU2,DELTA) [mu,sigma]=nctstat(NU,DELTA)
[mu,sigma]=ncx2stat(NU,DELTA) [mu,sigma]=normstat(MU,SIGMA)
[mu,sigma]=poisstat(MU) [mu,sigma]=raylstat(B)
[mu,sigma]=tstat(NU) [mu,sigma]=unifstat(A,B)
[mu,sigma]=unidstat(N) [mu,sigma]=weibstat(A,B)
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 93
35 Modelos de Probabilidad
35.7. Ejercicios
1. Aproximar mediante simulacion p(log |X| + X
3
(1, 2)) siendo X una variable aleatoria con dis-
tribucion N(1, 2).
2. Comprobar gracamente la aproximacion de una distribucion B(100, 0,5) a una distribucion N(50, 5)
representando simultaneamente sus funciones de probabilidad y densidad.
3. Representar gracamente la funcion de densidad de una distribucion de Weibull de parametros A=1
y B=2.
4. Crea una funcion que simule n umeros pseudoaleatorios seg un la distribucion de probabilidad dada por
la siguiente funcion de densidad:
f(x) =
1
2
e
|x|
, < x < .
5. Ejecuta las siguientes demos: disttool.m y randtool.m.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 94
Hora 36
Estimacion de Parametros y Contraste de
Hipotesis
[sol,pvalor,IC] = ztest(muestra,
0
,,,tipo)
Test sobre la media de una poblacion N(, ) con
conocido. Los argumentos de esta funcion son:
1. muestra: vector de datos.
2.
0
: hipotesis nula.
3. : desviacion estandar de la poblacion considerada.
4. : nivel del test.
5. tipo: indica si la hipotesis alternativa es <
0
(tipo=-1), >
0
(tipo=1) y =
0
(tipo=0).
y tipo son opcionales. Por defecto se utiliza = 0,05 y tipo=0.
Los argumentos de salida son:
1. sol: indica si el resultado del test es rechazar =
0
(sol=1) o, por el contrario, si el test no es
signicativo (sol=0).
2. pvalor: p-valor del test.
3. IC: Intervalo de conanza para de nivel 1 .
[sol,pvalor] = ttest(muestra,
0
,,tipo)
Test sobre la media de una poblacion N(, ) con de-
sconocido. Los argumentos de esta funcion son:
1. muestra: vector de datos.
2.
0
: hipotesis nula.
3. : nivel del test.
4. tipo: indica si la hipotesis alternativa es <
0
(tipo=-1), >
0
(tipo=1) y =
0
(tipo=0).
95
36 Estimacion de parametros y Contraste de Hipotesis

0
, y tipo son opcionales. Por defecto se utiliza
0
= 0, = 0,05 y tipo=0.
Los argumentos de salida son:
1. sol: indica si el resultado del test es rechazar =
0
(sol=1) o, por el contrario, si el test no es
signicativo (sol=0).
2. pvalor: p-valor del test.
[sol,pvalor,IC] = ttest2(muestra1,muestra2,,tipo)
Test sobre la igualdad medias
1
=
2
de dos
poblaciones normales, N(
1
,
1
) y N(
2
,
2
), con
1
=
2
desconocido. Los argumentos de esta funcion son:
1. muestra1: vector de datos extraidos de la poblacion N(
1
,
1
).
2. muestra2: vector de datos extraidos de la poblacion N(
2
,
2
).
3. : nivel del test.
4. tipo: indica si la hipotesis alternativa es
1
<
2
(tipo=-1), y
1
=
2
(tipo=0) y
1
>
2
(tipo=1).
y tipo son opcionales. Por defecto se utiliza = 0,05 y tipo=0.
Las variables de salida son:
1. sol: indica si el resultado del test es rechazar
1
=
2
(sol=1) o, por el contrario, si el test no es
signicativo (sol=0).
2. pvalor: p-valor del test.
3. IC: Intervalo de conanza para
1

2
de nivel 1 .
[pvalor,sol] = signtest(muestra1,muestra2,)
Test de los signos sobre la igualdad de medianas de
dos poblaciones pareadas. Si muestra2 es una constante m entonces la funcion realiza el test de los signos
para constrastar si la mediana de la poblacion muestreada en muestra 1 es m. Los argumentos de esta
funcion son:
1. muestra1: vector de datos extraidos de la poblacion 1.
2. muestra2: vector de datos extraidos de la poblacion 2 o constante.
3. : nivel del test.
Los argumentos de salida son:
1. sol: indica si el resultado del test es rechazar la igualdad de medianas (sol=1) o, por el contrario, si
el test no es signicativo (sol=0). El resultado es analogo si muestra2 es constante.
2. pvalor: p-valor del test.
[pvalor,sol] = signrank(muestra1,muestra2,)
Test de los rangos sobre la igualdad de medianas de
dos poblaciones pareadas. Los argumentos de esta funcion son:
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 96
36 Estimacion de parametros y Contraste de Hipotesis
1. muestra1: vector de datos extraidos de la poblacion 1.
2. muestra2: vector de datos extraidos de la poblacion 2.
3. : nivel del test.
Los argumentos de salida son:
1. sol: indica si el resultado del test es rechazar la igualdad de medianas (sol=1) o, por el contrario, si
el test no es signicativo (sol=0).
2. pvalor: p-valor del test.
[pvalor,sol] = ranksum(muestra1,muestra2,)
Test de la suma de rangos de Wilcoxon sobre la igual-
dad de medianas de dos poblaciones independientes. Los argumentos de esta funcion son:
1. muestra1: vector de datos extraidos de la poblacion 1.
2. muestra2: vector de datos extraidos de la poblacion 2.
3. : nivel del test.
Los argumentos de salida son:
1. sol: indica si el resultado del test es rechazar la igualdad de medianas (sol=1) o, por el contrario, si
el test no es signicativo (sol=0).
2. pvalor: p-valor del test.
36.1. Ejercicios
1. Programa una funcion que calcule el intervalo de conanza para una proporcion.
2. Programa una funcion que implemente el F-test de una muestra.
3. Obten 20 intervalos de conanza para la media de una poblacion normal de niveles
= 0,01 , 0,02 , . . . , 0,19 , 0,20
a partir de una muestra de tama no n. Guardalos en un chero externo en forma tabular llamando LI
y LU a los extremos inferior y superior de los mismos. Etiqueta cada uno de ellos con el ndice de orden
correspondiente. Representa gracamente los intervalos obtenidos.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 97
Hora 37
Modelos de Regresion y Analisis de la
Varianza
37.1. Modelos de regresion
[

int, , int,stats] =regress(y,X,)


Regresion lineal m ultiple. regress resuelve el modelo lineal
y = X + donde:
y es un vector columna n 1 de observaciones.
X es una matriz n p de regresores.
es un vector columna p 1 de parametros.
es un vector columna n 1 de perturbaciones aleatorias. Se asume que N(0, I
n
).
La funcion calcula las variables

,

int, , int y stats.

: estimacion de los parametros del modelo.

int: intervalo de conanza de nivel (1 )100 % para los parametros contenidos en .


: residuales de la regresion.
int: intervalo de conanza de nivel (1 )100 % para los residuales de la regresion.
stats: contiene los estadisticos R
2
, F y el p-valor de la regresion.
El argumento es opcional. Por defecto se considera = 0,05.
regstats(y,X,modelo)
GUI para la validacion y diagnostico del modelo lineal ajustado. El argumen-
to modelo es opcional. Por defecto se considera el modelo lineal con termino constante. Otras opciones
son:
interaction: incluye el termino constante, los trminos lineales y los productos cruzados.
quadratic: incluye las interacciones y los terminos cuadraticos.
98
37 Analisis de la Varianza y Modelos de Regresion
purequadratic: incluye el termino constante y los trminos lineales y cuadraticos.
regstats proporciona la siguiente informacion:
Matrices Q y R de la descomposicion X=QR.
Coecientes de la regression

.
Covarianzas entre los coecientes de regresion

.
Valores ajustados de la respuesta y.
Residuales .
Error cudratico medio.
Leverages.
Matriz Hat.
Residuales estandarizados y estudentizados.
Distancia de Cook.
El error cuadratico medio cuando se elimina una observacion
Los coecientes de la regresion cuando se elimina una observacion.
DFBETAS, DFFIT, DFFIT escalados mediante el error estandar y DFCOV.
D = x2fx(X,model)
Transforma una matriz de regresores en una matriz de dise no para un modelo
lineal aditivo con termino constante. model puede ser interaction, quadratic, purequadratic
(con el mismo signicado que en la funcion regstats) o bien una matriz de terminos que referencian en sus
las a los regresores contenidos en X y en las columnas a los exponentes correspondientes a dichos regresores
en el modelo nal.
stepwise(X,y,modelo,)
Entorno interactivo para la regresion stepwise. stepwise(X,y) ajusta un
modelo de regresion de y sobre las columnas de X. Se muestran tres ventanas gracas para controlar inter-
activamente la incorporacion o eliminacion de terminos en el modelo. La funcion admite dos argiumentos
opcionales: el vector modelo, que contiene los ndices de las columnas de X que seran incluidos en el modelo
incial, y , que indica el nivel de conanza empleado en el proceso stepwise. Por defecto se considera el
modelo completo y = 1 (1 0,025)(1/p) siendo p el n umero de columnas de X. Este nivel de conanza
corresponde al Metodo de Bonferroni.
Los coecientes de la regresion se representan con un crculo verde. Los terminos del modelo que son
signicativos se representan mediante lneas solidas y los que no lo son a traves de lneas punetadas.
Un Click sobre las lneas de los intervalos de conanza permite conocer el estado de los coecientes
del modelo. Si la lnea es verde, entonces el termino esta en el modelo. Si es roja, no lo esta.
Se utiliza Export para enviar variables al espacio de trabajo del usuario.
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 99
37 Analisis de la Varianza y Modelos de Regresion
37.2. Analisis de la varianza
p = anova1(X)
Analisis de la varianza balanceado de un factor. Su argumento X es una matriz en
cuyas columnas se situan los datos correspondientes a cada grupo. El resultado es el p-valor para el contraste
de igualdad de medias. La funcion devuelve la tabla ANOVA y los diagramas de caja de cada grupo.
p = anova1(X,grupo)
Analisis de la varianza (no necesariamente balanceado) de un factor. Sus
argumentos son los vectores x y grupo. x contiene las frecuencias de los grupos. grupo identica el grupo de
cada elemento de x. Las componentes de grupo son n umeros naturales con valor mnimo 1 y valor maximo
el n umero de poblaciones o grupos comparados. La funcion devuelve la tabla ANOVA y los diagramas de
caja de cada grupo.
p = anova2(X,rep)
Analisis de la varianza balanceado de dos factores. Su argumento X es una matriz
cuyas columnas corresponden a los niveles de un factor y cuyas las hacen referencia a los niveles del otro
factor y a las repeticiones rep de cada grupo. El resultado es el p-valor para el contraste de igualdad de
medias. La funcion devuelve la tabla ANOVA.
D = dummyvar(grupo)
Genera una matriz de dise no con columnas 0-1. grupo es una matriz cuyas
columnas hacen referencia a factores y contienen n umeros naturales que indican el grupo al que pertenecen
los elementos de cada la de un determinado vector columna respuesta. D tiene una columna para cada valor
diferente en las columnas de la matriz grupo.
37.3. Ejercicios
1. El chero hald.mat contiene los datos recogidos en un estudio sobre el calor producido por varias
mezclas de cementos. Cada mezcla contiene cuatro ingredientes distintos y el calor desprendido depende
de la cantidad de cada ingrediente presente en la mezcla. Ajusta un modelo de regresion a estos datos.
2. Para detectar la presencia de insectos da ninos en los campos de cultivo, se sit ua en estos campos
laminas de plastico que contienen un material pegajoso en su supercie y se examinan los insectos
capturados en las laminas. Unos investigadores situaron 24 laminas, seis de cada color, ubicadas al
azar en un campo de avena y determinaron el n umero de insectos capturados:
Color de la lamina Insectos capturados
Azul 16 11 20 21 14 7
Verde 37 32 20 29 37 32
Blanco 21 12 14 17 13 20
Amarillo 45 59 48 46 38 47
Que colores atraen mas a los insectos?
Departamento de Matematica Aplicada a la Tecnica. Universidad de Valladolid. 100
Hora 38
Encuesta nal
101

You might also like