Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tercera Edicion
Oscar
Angulo Torga
Eduardo Cuesta Montero
Cesar Gutierrez Vaquero
Mara del Carmen Martnez Martnez
Indice general
1. Introducci
on
2. Entorno de trabajo
2.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. Aritm
etica elemental
3.2.1. Operaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.2. N
umeros complejos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4. Funciones matem
aticas y formatos de salida
10
12
Indice
general
6. Generaci
on autom
atica de datos y asignaci
on de variables
14
18
20
22
24
10.1. Estructura if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
10.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
11.Estructura iterativa while
27
28
30
13.1. Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
13.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
14.Programaci
on modular
32
Indice
general
14.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
15.Escritura con formato en fichero
35
38
40
48
50
51
53
57
59
Indice
general
24.Libreras con funciones y gr
aficos estadsticos
62
68
25.1. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
26.Dibujo de mallados
69
71
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
73
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
28.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
29.Libreras relacionadas con gr
aficos bidimensionales y tridimensionales
75
29.1. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
30.Copia de la ventana gr
afica y encuesta final
77
78
80
Indice
general
33.Creaci
on de libreras
83
85
92
95
36.1. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
37.Modelos de Regresi
on y An
alisis de la Varianza
98
101
Hora 1
Introducci
on
1.1.
Presentaci
on del curso
1.2.
Entorno Linux
1.3.
Encuesta inicial
Hora 2
Entorno de trabajo
2.1.
Matlab Desktop
2.2.
1.
Ventana de comandos.
Historial de comandos.
Directorio actual.
Ejercicios
Modifica 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.
Hora 3
Aritm
etica elemental
3.1.
Edici
on en la lnea de comandos
. . . +[ENTER]
clc
[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
,
;
En, en
[Ctrl]+[c]
3.2.
Aritm
etica elemental escalar (real y compleja)
3.2.1.
Operaciones
+, , , /, \,
pleja).
3 Aritm
etica elemental
3.2.2.
N
umeros complejos
Asignacion
3.2.3.
Constantes predefinidas
pi
N
umero .
i, j
Unidad imaginaria.
eps
3.2.4.
Epsilon
de la maquina.
Inf y NaN
Inf, inf
Representa el infinito.
NaN, nan
3.3.
Ejercicios
1+2
14.
1/inf
27.
12i2+4i
2.
% 1+2
15.
5 inf
28.
(1 24 i)/(2 + 4 i)
3.
1 + (2 4);
16.
inf/inf
29.
(1 24 i)\(2 + 44 i)
4.
1+24
17.
inf inf
30.
(i 2 i)(2+4i)
5.
(1 + 2) 4
18.
nan 0
31.
2E 2 3E8
6.
(1 + 2)4
19.
nan 1
32.
2, 34 3
7.
1 + (2 4)
20.
nan inf
33.
2,34 3
8.
4/2
21.
23
34.
eps
9.
4\2;
22.
23 + 2
35.
eps + 1
10.
3 2\4
23.
23 2
36.
1/(0 + eps)
11.
3 (2\4)
24. i2 , i3 , i4 , i0
37.
(0 + eps)/(0 + eps)
38.
(pi + eps)/pi
12. (3 2)\4
25.
12i+2+4i
13. 1/0
26.
(1 2 i) (2 + 4 i)
Hora 4
Funciones matem
aticas y formatos de
salida
4.1.
Funciones matem
aticas
sin, cos, asin, acos, sqrt, log, . . .
MATLAB ofrece un sencillo asistente para recordar la sintaxis de sus funciones. 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.
format short g
format long
Mejor formato fijo o punto flotante con cinco dgitos. Ej.: 0.076923
format long e
format long g
format rat
format compact
10
4 Funciones matem
aticas y formatos de salida
4.3.
Ejercicios
1
33 ,
3, 2 ,
1.
Utiliza los diferentes formatos de salida presentados para escribir los siguientes n
umeros:
0,5
(1 i) .
2.
Eval
ua las siguientes funciones en los puntos indicados (utiliza la ayuda para encontrar la expresi
on
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) = log10 x en x = 102 , 0, eps, 1, 1
d ) f (x) = x en x = 16, 1, 1 + i
e) f (x) = sin x 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) = sin x/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.
b)
c)
11
Hora 5
Aritm
etica 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 filas. Los elementos de una misma fila estan separados
por blancos o comas, mientras que las filas estan separadas por pulsaciones de [ENTER] o por ;. Ej.:
[1 2 3; 4 5 6; 7 8 9]
5.2.
Operaciones matriciales
+, , ,, .0 , 0 , inv(), /, \, det(A)
Producto, potenciaci
on, 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, . . .
5.4.
Ejercicios
1 2 1
2 1 1
1. 1 2 1 + 1 1 1
1 2 1
3 1 1
12
5 Aritm
etica matricial
1 2 1
1 1
2. 1 2 1 + 1 1
1 2 1
1 1
1 2 1
1 1
3. 1 2 1 2 1
1 2 1
1 1
2 1 1
1 2 1
4. 1 2 1 2 1 1
1 1 1
1 2 1
2 1 1
1 2 1
5. 1 2 1 . 2 1 1
1 2 1
1 1 1
1 2 1
6. 2 1 1 2
1 1 1
1 2 1
7. 2 1 1 . 2
1 1 1
1 2
8. 1 1 2
1 1
1 2
9. 1 1 . 2
1 1
1 2
1 2
10. 1 1 1 1
1 1
1 1
1 2
1 2
11. 1 1 . 1 1
1 1
1 1
1 2
12. sqrt 1 1
1 1
1 2
13. 1 1 . ( 21 )
1 1
1 2
14. 1 1 (2)
1 1
1 2
15. 1 1 . (1)
1 1
1 2 1
16. inv 2 1 1
1 1 1
1 2 1
17. 2 1 1 (1)
1 1 1
0 1
18. log 2 1
1 1
2 1
19. 1/ 1 1
1 1
2 1
20. 1 ./ 1 1
1 1
!
1 1
21. 1 ./
0 1
!
eps 1
./
22. sin
1 eps
!
eps 1
23. sin
/
1 eps
!
eps 1
24. sin
\
1 eps
!
eps 1
25. sin
.\
1 eps
eps 1
1 eps
eps 1
1 eps
eps 1
1 eps
eps 1
1 eps
2 ])
26.
sin([1
27.
cos([0
28.
log([1 2 3 ; 4 5 6 ; 7 8 9])
; 1])
13
Hora 6
Generaci
on autom
atica de datos y
asignaci
on de variables
6.1.
Generaci
on autom
atica de datos
eye(n, m), eye(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)
linspace(x1, x2, n)
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)
6.2.
Asignaci
on 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 Generaci
on autom
atica de datos y asignaci
on de variables
input
6.3.
Selecci
on
Acceso a sus elementos
Se accede a los elementos de una matriz poniendo los ndices de referencia 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 filas o columnas. Ej.: A([1 3 5],2), A(3,[3 1])
6.4.
Gesti
on de variables
clear
who
whos
6.5.
Almacena el resultado de la u
ltima operacion.
6.6.
1.
Espacio de variables.
Ejercicios
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:
15
6 Generaci
on autom
atica de datos y asignaci
on 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
11. v1 v3
2. v1 + v2
12. v1. v3
3. v1 + v3
13. v1.0 v2
4. 2 v1
14. v1 v2.0
5. v1 v2
6. v1 v2t
16. 2.v1
7. v1 . v2t
17. v1.2
8. v1t v2
9. v1t . v2
10. v1. v2
3.
!
,
1 2
2 1
1 4
, 5 1 .
1
7
2. 2 A1
3. A1 + A2
15. A = magic(3)
4. A2 A1
16. sum(A)
5. A1 A3
17. sum(At )
6. A3 A1
7. A1. A2
8. log(A3)
9. A11
10. ones(6) ones(6, 1)
11. ones(6) ones(1, 6)
12. ones(6) eye(6)
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 distintas maneras. Cual es la mas sencilla?.
16
6 Generaci
on autom
atica de datos y asignaci
on 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)
17
Hora 7
Operadores l
ogicos
7.1.
Operadores l
ogicos
<, >, <=, >=, ==, =
Menor que, mayor que, menor o igual que, mayor o igual que,
igual que, distinto que. Ej.: 0=false, 1=true
&, |, , xor
7.2.
1.
Ejercicios
Ejecuta las siguientes operaciones y observa el resultado:
1. 2 < 3
8. eye(2)==
2. 3 < 2
1 0
0 1
9. eye(2)=ones(2)
3. 2 > 3
10. A = 1 : 3; B = 5 : 7;
4. 3 > 2
A >= 4
5. 1 == 2
B >= 4
6. [1 2 3] == [3 2 1]
!
!
1 2
1 2
7.
==
3 4
3 5
18
7 Operadores l
ogicos
3.
Sean A =
1 2
1 1
!
,B=
0 0
1 1
!
,C=
1 0
1 0
!
. Realiza las siguientes operaciones:
1. A + B
7. xor(A, B)
2. A + B
8. A&B
3. A. B
9. A&B + C
4. A. (B)
10. A + B&C
5. (A <= B) + C
6. A|B
19
Hora 8
Editor de texto
Matlab editor
8.2.
Ficheros .m
.m
desde la ventana Command Window escribiendo el nombre del fichero (sin extension), o bien
desde la ventana Current Directory eligiendo la opcion Run que aparece al hacer click con el bot
on
derecho del rat
on sobre el fichero.
8.3.
Ejercicios
1.
Ejecuta el fichero Entorno01.m y corrige el error abriendole desde el mensaje de error rese
nado en la
ventana de comandos.
2.
Ejecuta Entorno03.m Busca los distintos espacios de variables en un problema con distintas funciones.
4.
21
Hora 9
disp(A)
Ej.:
diary nombre.txt
.
.
.
diary off
9.2.
Ejercicios
3.
4.
5.
Calcula v*8.
6.
7.
A
nade en el fichero prueba.mat la matriz A.
8.
9.
10.
A
nade el vector v = (1, 2, 3) en el fichero prueba.mat.
11.
12.
13.
Observa la secuencia de comandos que has realizado durante la resolucion de este ejercicio.
23
Hora 10
Estructura de selecci
on
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 selecci
on
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 fichero de comandos que te permita calcular la media de un conjunto de datos almacenados
dentro de una matriz A.
2. Escribe un fichero de comandos que transforme pesetas en euros (1 euro =166.386 pesetas).
3. Escribe un fichero de comandos que calcule una matriz aleatoria n n con n
umeros naturales entre 1
y 10.
4.
5.
6.
Edita un fichero de comandos que elimine la primera columna de una matriz A cuando todos los
elementos de dicha columna sean cero.
7.
x+y
si x 0, y 0,
x + y2
si x 0, y < 0,
f (x, y) =
2
x +y
si x < 0, y 0,
2
x + y 2 si x < 0, y < 0.
Utiliza el comando input para la lectura de datos.
8.
9.
Escribe un fichero de comandos para calcular los valores mnimo y maximo de tres n
umeros almacenados en un vector de dimension tres llamado datos e introducidos con el comando input.
25
10 Estructura de selecci
on
10.
Construye un fichero de comandos que simule la extraccion al azar de una carta en una baraja espa
nola.
Ejecuta dicho fichero dos veces. Que cartas obtienes?
26
Hora 11
n=1;
while prod(1:n)<1e100
n=n+1;
disp(Nos llegamos en),n
end
11.2.
1.
Ejercicios
Escribe un fichero de comandos para encontrar el menor entero no negativo n tal que 2n > 100 sin
utilizar la funcion logartmica.
Hora 12
f or contador
..
. % secuencia de comandos
end
El contador puede ser n = 1 : 1 : 10 o n = [1
Ej.:
for n=1:1:10
y(n)=n^2;
x(n)=2*y(n);
end
%
%
%
%
y,x
12.2.
3,2
8]
Ejercicios
29
Hora 13
Funciones
13.1.
Funciones
bre.m
1. Se guarda como un fichero de texto nombre.m cuyo nombre suele coincidir con el de la funci
on.
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 definida 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.
3.
a)
4.
b)
c)
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.
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,....).
31
Hora 14
Programaci
on modular
14.1.
Programaci
on modular
14.2.
Ejercicios
14.2 Programaci
on 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)
b)
Construir una funcion t=subidaviajero que devuelva el tiempo que tarda en subir un viajero.
Utiliza la funcion numeroaleatorio.
b)
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.
33
14.2 Programaci
on modular
e)
3.
Considera que en el viaje del ejercicio anterior los viajeros no se encuentran en la parada a la hora de
salida. Adem
as 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 contrario, 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)
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 modifica adecuadamente la funci
on
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.
34
Hora 15
nombre=fopen(nombre-fichero,permisos)
w
a
r+
w+
a+
fclose(nombre)
Escribe el valor de una o varias variables en el fichero con el identificador nombre abierto previamente. El fichero debe cerrarse al finalizar 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 caracteres, etc.
\n provoca un salto de lnea.
Ej.:
t=0:1:10
y=t.^2
nombre=fopen(parabola.dat,w)
x=[t;y];
fclose(nombre)
15.2.
% 2.6e,x) %
%
%
%
%
%
Ejercicios
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)
10.
Pida un n
umero n para ser introducido a traves del teclado.
b)
36
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)
c)
Escribe los datos recogidos ordenados en orden creciente respecto al salario que reciben en el
fichero salida.txt, con formato ascii.
d)
Ademas, los u
ltimos dos renglones del archivo salida.txt deben contener la siguiente informacion:
1)
2)
37
Hora 16
fscanf(nombre,format,tama
no)
z=fscanf(nombre,11) %
%
%
%
%
fclose(nombre)
16.2.
Ejercicios
b)
c)
38
2.
Utiliza fscanf para leer y guardar las dos primeras columnas del fichero sucesion.txt. en la variable
U. Comprueba que la operacion se ha realizado correctamente visualizando el contenido de U.
3.
4.
El fichero quiniela.txt contiene los 15 resultados de una quiniela (1, X o 2) almacenados a raz
on 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 fichero resultados.dat y por pantalla el mensaje:
La quiniela arroja n empates.
5.
Lee el fichero nombresnumeros.txt y sustituye la columna correspondiente al DNI por una columna
que contenga el NIF.
6.
7.
8.
9.
Considera la variable edad anterior y clasifica 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 fichero listado.txt con el siguiente
formato:
Andres Perez 46 ADULTO
39
Hora 17
Libreras generales
17.1.
OPS: operadores.
union(A,B)
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
intersect(A,B)
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)
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)
41
17 Libreras generales
islogical([1 0])
ans =
0
A=-2==1;islogical(A)
ans =
1
reshape(A,m,n)
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
fliplr(A),flipud(A)
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)
43
17 Libreras generales
floor(x)
Proporciona los restos que resultan al dividir las componentes de x entre las componentes correspondientes de y. Ej.:
rem([6,8,-8],[3,3,3])
ans =
0
2
-2
sign(A)
44
17 Libreras generales
gcd([120,213],[64,10]),lcm([12,2],[10,3])
ans =
8
1
ans =
60
6
rats(x)
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)
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 filas 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)
17.2.
Ejercicios
Comprueba los ejemplos introducidos en la seccion anterior y explica los resultados obtenidos.
47
Hora 18
Primeros gr
aficos bidimensionales
18.1.
Comando plot
plot(x)
Dibuja los pares de puntos (i, xi ) unidos por segmentos (xi 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 (xi , yi ) unidos por segmentos (xi e yi 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(zi ), Im(zi )) unidos por segmentos (zi
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, aij ) unidos por segmentos (aij representa las
componentes de la matriz A) . En la misma grafica, 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)
48
18.2 Primeros gr
aficos 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)
18.2.
Ejercicios
1.
2.
3.
a)
Simula n lanzamientos de una moneda mediante el comando rand (n es un valor que debe introducir el usuario como argumento de la funcion).
b)
c)
Calcule con que frecuencia va apareciendo el resultado cara en los sucesivos lanzamientos.
d)
e)
f)
Enve al fichero de texto resultados.dat los resultados obtenidos en los n lanzamientos (emplea
las palabras cara y cruz).
49
Hora 19
Dibujo de funciones
19.1.
Comando fplot
fplot(fcn, lim)
19.2.
Ejercicios
50
Hora 20
Modificadores de los gr
aficos
bidimensionales
20.1.
plot(x,y,cad)
Dibuja la grafica de abcisas x y ordenadas y con las opciones de estilo dadas por cad1
(MATLAB utiliza por defecto una lnea azul continua sin marcadores).
fplot(fcn, lim,cad)
plot(x1,y1,cad1, x2,y2,cad2,...)
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.
.
*
x
o
+
s
d
p
h
v
<
>
^
Marcadores
punto
estrella
cruz
crculo
mas
cuadrado
rombo
pentagono
hexagono
triangulo abajo
triangulo izquierda
triangulo derecha
triangulo arriba
--.
:
Ver tabla
51
Lneas
solida
discontnua
punto-raya
punteada
y
g
m
b
c
w
r
k
Colores
amarillo
verde
magenta
azul
cyan
blanco
rojo
negro
20.2.
% Construimos el vector x
% y los vectores de abcisas
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 grafico diferenciandolos entre s.
3.
52
Hora 21
Control de gr
aficos bidimensionales
21.1.
Control de gr
aficos bidimensionales
axis
Devuelve los lmites del dibujo actual en un vector fila. Para graficos de dos dimensiones tiene
los elementos [xmin xmax ymin ymax ] y para graficos de tres dimensiones [xmin xmax ymin ymax zmin zmax ].
axis(v)
Establece la escala de los ejes conforme al vector v que sera [xmin xmax ymin ymax ] en dos
dimensiones o [xmin xmax ymin ymax zmin zmax ] en tres dimensiones.
axis(axis)
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 Modifica la ventana grafica para hacer que la caja del dibujo sea cuadrada.
normal Modifica la ventana grafica para que la caja del dibujo vuelva al tama
no habitual.
off No se muestran los ejes.
on Deshace el comando anterior.
grid on
grid off
53
21 Control de gr
aficos bidimensionales
t=0:0.2:2*pi+0.2; [ENTER]
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)
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 grafica. Las coordenadas
x e y estan proporcionadas en las mismas unidades en las que esta dibujado el grafico. Si x e y son vectores,
la variable cadena se escribe en todos los pares de puntos (xi , yi ). Si txt es un vector con varias cadenas con
el mismo n
umero de filas 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 grafica 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 graficas. Este peque
no recuadro puede moverse mediante el
rat
on.
legend(l1,st1, l2,st2, ...)
legend off
[x,y]=ginput
waitforbuttonpress
Detiene el dibujo de graficos hasta que se presiona una tecla o un boton del rat
on.
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 gr
aficos 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]);
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.
1.
Ejercicios
Dibuja en un mismo grafico las funciones f1 (x) = x2 , f2 (x) = 1,1x2 y f3 (x) = 1,2x2 .
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.
Identifica sobre la grafica cada una de las funciones representadas de dos maneras distintas:
2.
a)
A
nade al lado de cada curva una etiqueta que describa la funcion que representa.
b)
Incorpora una leyenda que identifique la funcion con el tipo de lnea utilizada para su representacion.
55
21 Control de gr
aficos bidimensionales
text(x(1)+scale/30,y(1),Inicio);
hold off;
xlabel(x);
Completa el grafico resultante con las siguientes operaciones:
a) A
nade el ttulo Camino aleatorio.
b) Escribe bajo el eje y: Eje de ordenadas.
c) Identifica el u
ltimo punto dibujado con la etiqueta FIN.
d ) Obten las coordenadas de los puntos correspondientes al maximo y al mnimo de la grafica. Para
ello act
ua de las siguientes dos formas:
1) Incorpora al grafico una red que te permita aproximar adecuadamente dichas coordenadas.
2) Utiliza el comando ginput.
e)
Modifica el grafico obtenido en el ejercicio 2 de la hora 20 Modificadores de los graficos bidimensionales 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.
Modifica el grafico obtenido en el ejercicios 3 de la hora 20 Modificadores de los graficos bidimensionales para que incluya:
a)
b)
Una leyenda que indique el valor del exponente utizado en cada una de las potencias representadas.
6. Modifica el grafico obtenido en el ejercicios 4 de la hora 20 Modificadores de los graficos bidimesionales para que incluya:
a)
b)
Una leyenda que indique el valor del exponente utizado en cada una de las potencias representadas.
56
Hora 22
Control de la ventana gr
afica
bidimensional
22.1.
figure(n)
clf
Control de la ventana gr
afica bidimensional
Permite mostrar la ventana grafica actual y crear nuevas ventanas graficas.
Borra el contenido la u
ltima ventana grafica utilizada.
delete(n)
hold on
Permite superponer graficos en una misma ventana hasta que se desactiva la opci
on con el
comando hold off.
hold off
ishold
Es un comando logico que devuelve 1 si para el actual grafico esta activada la opcion hold on
0 en caso contrario.
o
subplot(m,n,p)
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 gr
afica bidimensionales
zoom off
zoom out
22.2.
Ejercicios
1.
Dibuja las funciones fk (x) = xk para k = 1, 2, 3, 4, 5, 6, 7 en siete graficas distintas dentro de una
misma ventana con 5 x 5. Escribe sobre cada grafica un ttulo que la identifique.
2.
3.
Con los datos del ejercicio 2 de la hora 20 Control de graficos bidimensionales y empleando el comando
figure realiza cuatro graficas 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 graficos indicados.
4.
Repite el ejercicio anterior incluyendo los 4 graficos representados en un misma ventana dividida en
cuatro zonas.
5.
58
Hora 23
Gr
aficos con n
umeros complejos y en
escalas logartmicas
23.1.
Gr
aficos 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)
polares.
quiver(x,y)
Dibuja una flecha para cada par de coordenadas (xi , yi ). Muestra el argumento y la
magnitud del n
umero complejo que tiene ese par de coordenadas reales.
quiver(x,y,dx,dy)
Dibuja una flecha para cada par de coordenadas (xi , yi ) con el argumento y magnitud
dados por (dxi , dyi ).
quiver(x,y, ...,s)
El parametro s indica la escala con la que se dibujan las flechas, que por defecto
toma el valor 1.
feather(Z)
Como feather pero en este caso todas las flechas tienen como origen el origen de coor-
denadas.
59
23 Gr
aficos con n
umeros complejos y en escalas logartmicas
rose(v,n)
23.2.
Gr
aficos en escalas logartmicas
semilogx(x,y)
Act
ua como el comando anterior, pero esta vez la escala logartmica esta en el eje y.
loglog(x,y)
23.3.
1.
Ejercicios
b) r = 4.
c) r = 2(1 + cos ).
d ) r = cos, r = cos(2), r = cos(3) y r = cos(4) en una misma grafica.
e) r = 2(1 + cos(2)) y r = 2(1 + cos(3)) en una misma ventana y en graficas distintas.
2. Dibuja el sector circular limitado por las circunferencias x2 + y 2 = 9 y r = 5 y los angulos =
= 3
umeros complejos.
7 usando n
4 6 8
3. Dibuja los pentagonos cuyos vertices estan sobre la circunferencia unidad en los angulos = 2
5 , 5 , 5 , 5 ,
10
3 5 7 9 11
angulos = 5 , 5 , 5 , 5 , 5 . Traza los segmentos que unen cada vertice con el origen
5 y en los
de coordenadas.
60
23 Gr
aficos 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 grafico.
61
Hora 24
tblread(datos.txt)
24.2.
Descripci
on y exploraci
on gr
afica 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
refline(m,c)
A
nade la recta y = mx + c a la figura 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.3.
Descripci
on analtica de datos
tabulate(x)
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
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 fila 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
64
Calculan, respectivamente, la suma, la media aritmetica, 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)
24.4.
Distribuciones de probabilidad
binopdf(x,n,p)
65
0.0376
0.1694
0.4661
0.8220
1.0000
binoinv(x,n,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 (esperanza) 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)
66
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 grafico las funciones de densidad correspondientes a las distribuciones normales 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)
67
Hora 25
Primeros gr
aficos tridimensionales
plot3(x1,y1,z1,cad)
Dibuja un grafico 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 cad1 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 graficos 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.
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 u
ltimos 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.
68
Hora 26
Dibujo de mallados
26.1.
Dibujo de mallados
[U,V]=meshgrid(x,y)
Comando que obtiene una red adecuada para dibujar graficas 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)
mesh(Z)
Dibuja la matriz Z como tercera coordenada sobre una red rectangular y conecta los puntos
adyacentes creando una superficie. 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)
26 Dibujo de mallados
[X,Y,Z]=sphere(20);
surf(X,Y,Z);
26.2.
1.
Ejercicios
sin( x2 +y 2 )
, (x, y) [8, 8] [8, 8].
f (x, y) =
x2 +y 2
2.
Dibuja una superficie semejante a una chimenea de una central termica (hiperboloide hiperb
olico).
3.
4.
5.
Guarda los datos simulados en una matriz 1012 (logicamente, las filas hacen referencia al a
no
y las columnas al mes).
b)
c)
Emplea los comandos mesh y surf para obtener la representacion grafica solicitada.
70
Hora 27
Control de gr
aficos tridimensionales
off.
27.2.
Control de la ventana gr
afica tridimensional
hold, subplot, . . .
view(v,h)
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.3.
1.
Ejercicios
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 final del camino estan se
nalados con las etiquetas comienzo y final
respectivamente.
Utiliza el comando gtext para aproximar las coordenadas del punto mas alto.
2.
3.
A
nade las siguientes caractersticas a la representacion realizada en el ejercicio 3 de la hora 25:
4.
5.
a)
b)
A
nade las siguientes caractersticas a la representacion realizada en el ejercicio 5 de la hora 26:
a)
b)
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)
En la segunda zona representa el resultado del ejercicio 3 anterior, pero utilizando marcadores
distintos para los puntos representados.
e)
f)
72
Hora 28
Dibujo de poli
edros y de lneas de
contorno
28.1.
Dibujo de poli
edros
fill3(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.
C=contour(x,y,Z,n), C=contour(x,y,Z,v)
Escribe los valores de los niveles que representan las curvas de nivel. Las posiciones son
aleatorias. C es la matriz de contorno. Se pueden especificar 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)
surfc(U,V,Z)
Act
ua igual que mesh, incluyendo las curvas de nivel bajo el grafico.
Act
ua igual que surf, incluyendo las curvas de nivel bajo el grafico. 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 poli
edros y de lneas de contorno
meshc(z);
title(sin(r)/r));
subplot(2,1,2);
surfc(z); title(sin(r)/r));
28.3.
1.
Ejercicios
c)
d)
Representar los dos graficos anteriores en la misma ventana utilizando el comando surfc.
e)
Dibujar la superficie en la red determinada por las abcisas x = 10 : 0,5 : 10 y las ordenadas
y = 20 : 0,5 : 20 empleando el comando mesh.
74
Hora 29
Dibuja las sumas acumuladas de las distintas columnas que forman la matriz X y
colorea las areas situadas entre las graficas 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)
mente. Ej.:
X=[1,2,3;4,5,6;7,8,9];
barh(X)
bar3(X)
75
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)
Act
ua como la funcion plot(). La u
nica diferencia es que se representa la proyecci
on
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 u
nica diferencia es que se representa la proyecci
on
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 especificadas a traves de las componentes 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)
Act
ua como la funcion plot(). La u
nica 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 gr
afica y encuesta
final
30.1.
Copia de la ventana gr
afica
print nombre
llamado nombre.
print -dbitmap nombre
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 especifica 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 cuestiones.
a) Grabar la ventana grafica obtenida en el apartado (1d ) en el fichero pilardel.ps con formato
postscript. Abrir el fichero anterior con el VisorPS.
b) Grabar la ventana grafica obtenida en el apartado (1d ) en el fichero pilardel.ps con formato
postscript apaisado. Abrir el fichero anterior con el VisorPS.
c) Grabar la ventana grafica obtenida en el apartado (1f ) en el fichero castillo.jpg con formato
jpg. Abrir el fichero anterior con el programa Image Viewer.
77
Hora 31
Estructura de selecci
on case
31.1.
Estructura de selecci
on 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 selecci
on case
31.2.
1.
Ejercicios
Definir una base de funciones llamada f.m que tome los siguientes valores
a)
f1 (x) = sin(x2 + log(|x|))
b)
f2 (x) =
x3 3x2 + 2x 1
x2 + 2
c)
f3 (x) =
100
X
xj
j=0
d)
f4 (x) =
100
Y
xj
j=1
(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. Definir 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.
79
Hora 32
Debugger
32.1.
dbstop
dbclear
dbcont
dbdown
dbmex
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 fijado.
dbstep
Ejecuta una o varias lneas de comandos hasta el siguiente punto de interrupcion.
dbtype
Muestra en ventana el fichero *.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
dbclear
dbcont
dbstep
dbquit
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 infinito
(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 u
ltima 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
82
Hora 33
Creaci
on de libreras
33.1.
Programaci
on modular
Function 1
Function 2
Function 3
Function N
Main program
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 filas 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 filas y cada una de las columnas no puede haber mas de 2 unos.
Puede haber otras distribuciones que resuelvan el problema y que no verifiquen 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
Funci
on distribuciones.m
Funcion matval.m
Nota
1.
Partiendo de la matriz
U (:, :, 1) =
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
almacenar en las sucesivas U (:, :, J) todas las posibles distribuciones de unos manteniendo en cada fila
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 soluci
on
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 soluci
on
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 funci
on desde
all.
84
Hora 34
Estadstica Descriptiva
34.1.
[datos,var,indiv]=tblread
2.
La primera columna contiene los nombres o ndices de los individuos o casos considerados.
3.
La ejecucion de esta funcion abre la ventana open (para que el usuario seleccione el nombre del fichero
tabular que quiere leer) y devuelve tres variables: datos, que contiene los registros de cada par individuovariable, var, con los nombres de las variables e indv, con los nombres de los individuos o casos registrados
en el fichero.
Esta funcion admite dos argumentos opcionales, uno para especificar directamente el nombre del archivo de
lectura y otro para indicar el delimitador empleado en dicho fichero (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)
85
34 Estadstica Descriptiva
34.2.
Tabulaci
on de datos
tabla=tabulate(v)
34.3.
Medidas de localizaci
on
v=median(X) Mediana.
v=nanmedian(X)
v=trimmean(X,p)
Media geometrica.
Media armonica.
2.
34.4.
Medidas de orden
[Y,v]=min(X) Mnimo. El vector v contiene los ndices correspondientes a los valores mnimos encontrados. 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 encontrados. 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.
86
34 Estadstica Descriptiva
Y=prctile(X,p)
34.5.
Medidas de dispersi
on
v=var(X) Obtiene un vector fila cuyas componentes son la cuasivarianza muestral de cada una de las
columnas de X.
v=var(X,1) Obtiene un vector fila cuyas componentes son la varianza muestral de cada una de las
columnas de X.
v=std(X) Vector fila con la cuasidesviacion estandar muestral de las columnas de X.
v=nanstd(X)
34.6.
Recorrido.
Rango intercuartlico
Desviacion absoluta media
Otras funciones
[X2,v]=sortrows(X1) Ordena las filas de X1 en orden ascendente tomando como referencia las componentes 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 filas de X1 en orden ascendente tomando como referencia las componentes 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 ordenaci
on.
[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,)
Asimetra.
87
34 Estadstica Descriptiva
v=kurtosis(X)
v=moment(X,c)
de X.
X2=cov(X1)
34.7.
Representaciones gr
aficas
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 producen 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),limites(k+1)) (la u
ltima 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 grafico 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,filled) 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,filled) Scatterplot tridimensional. Sus argumentos y el resultado que producen son
an
alogos 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)
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(fig)
Dibuja interactivamente una recta en la ventana grafica fig. gline() hace referencia a
la ventana grafica activa.
refline(a,b)
lsline
A
nade la recta y = ax + b a la figura actual.
A
nade la recta de ajuste mnimo cuadratica a un Scatterplot.
normplot(X)
qqplot(X,Y,pvec)
A
nade a la figura actual la grafica del polinomio p. Para especificar dicho polinomio se
utiliza un vector cuyas componentes son los coeficientes 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 determinadas 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.
2.
a)
Crea una funcion para averiguar si una muestra de datos contiene valores atpicos, siguiendo el
criterio utilizado en el Box-plot.
b)
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
fumadores
400
416
188
Estudiantes
no fumadores
1380
1823
1168
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.
6.
91
Hora 35
Modelos de Probabilidad
35.1.
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)
Noncentral F (ncf)
Noncentral t (nct)
Normal (norm)
Poisson (poiss)
Rayleigh (rayl)
T (t)
Uniform (unif)
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 distribuci
on
(percentiles) y genera n
umeros pseudoaleatorios.
35.2.
Funci
on de Densidad/Probabilidad
Y = pdf(nombre,X,A1,A2,A3)
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.
Funci
on de Distribuci
on
Y = cdf(nombre,X,A1,A2,A3)
35.4.
Inversa de la Funci
on de Distribuci
on (percentiles)
Y = icdf(nombre,X,A1,A2,A3)
descritas inicialmente.
35.5.
N
umeros aleatorios
Y = random(nombre,A1,A2,A3,m,n)
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)
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 distribucion N(1, 2).
2.
Comprobar graficamente la aproximacion de una distribucion B(100, 0,5) a una distribucion N(50, 5)
representando simultaneamente sus funciones de probabilidad y densidad.
3.
4.
< x < .
94
Hora 36
Estimaci
on de Par
ametros y Contraste de
Hip
otesis
[sol,pvalor,IC] = ztest(muestra,0 ,,,tipo)
Test sobre la media de una poblacion N(, ) con desconocido. 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 6= 0 (tipo=0).
95
36 Estimaci
on de par
ametros y Contraste de Hip
otesis
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
significativo (sol=0).
2. pvalor: p-valor del test.
[sol,pvalor,IC] = ttest2(muestra1,muestra2,,tipo)
96
36 Estimaci
on de par
ametros y Contraste de Hip
otesis
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 significativo (sol=0).
2. pvalor: p-valor del test.
[pvalor,sol] = ranksum(muestra1,muestra2,)
Test de la suma de rangos de Wilcoxon sobre la igualdad 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 significativo (sol=0).
2. pvalor: p-valor del test.
36.1.
Ejercicios
1. Programa una funcion que calcule el intervalo de confianza para una proporcion.
2. Programa una funcion que implemente el F-test de una muestra.
3. Obten 20 intervalos de confianza 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 fichero 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 graficamente los intervalos obtenidos.
97
Hora 37
Modelos de Regresi
on y An
alisis de la
Varianza
37.1.
Modelos de regresi
on
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, In ).
int,
int:
intervalo de confianza de nivel (1 )100 % para los parametros contenidos en .
: residuales de la regresion.
int: intervalo de confianza de nivel (1 )100 % para los residuales de la regresion.
stats: contiene los estadisticos R2 , 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 argumento 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 An
alisis de la Varianza y Modelos de Regresi
on
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.
Coeficientes de la regression .
99
37 An
alisis de la Varianza y Modelos de Regresi
on
37.2.
An
alisis de la varianza
p = anova1(X)
37.3.
Ejercicios
1.
El fichero 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.
16
37
21
45
Insectos capturados
11 20 21 14
32 20 29 37
12 14 17 13
59 48 46 38
7
32
20
47
100
Hora 38
Encuesta final
101