Está en la página 1de 11

INTRODUCCIN A LA

PROGRAMACIN
EN MATLAB

MANUEL DAZ MINGUITO


AGUSTN MILLARES VALENZUELA
RAFAEL GARCA MORALES
ASUNCIN BAQUERIZO AZOFRA
1

Introduccin a la programacin en Matlab. Curso acadmico 2014-2015


Escuela de Doctorado de Ciencias, Tecnologas e Ingenieras

Introduccin a la programacin en Matlab. Curso acadmico 2014-2015


Escuela de Doctorado de Ciencias, Tecnologas e Ingenieras

EJERCICIOS
1. A lo largo de un estuario situado en la vertiente Atlntica se miden las anchuras (B) y
profundidades (h) medias de una serie de secciones y se obtienen los valores siguientes:
Pk

h (m)

B (m)

0.0 7.5 4526.0


10.0 6.0 6170.0
15.0 6.4 4717.0
20.0 4.2 4560.0
25.0 10.0 2804.0
30.0 5.3 1607.0
35.0 6.1 2520.0
40.0 7.5 2318.0
45.0 6.3 1422.0
50.0 7.8 1465.0
55.0 7.6 1135.0

Calcula de manera aproximada las reas de dichas secciones.

2. Dibuja las profundidades y las reas de las secciones situadas en los pk: 15, 20, 25

3. Dibuja las profundidades y las reas de las secciones situadas en los pk: 10, 20, 30, 40, 50

4. Dibuja las profundidades y las reas de las secciones situadas en los pk: 0, 25, 30, 60

5. Calcula, para el estuario del ejercicio 1, la velocidad media en cada seccin para un caudal
del ro de 400 m3/s en condiciones en las que la velocidad de la corriente mareal es despreciable.

6. La fuerza de arrastre debida al viento sobre una estructura sobre una gra prtico puede
estimarse con la siguiente frmula:

1
AeC f U 2
2
Donde es la densidad del aire, Ae es un rea efectiva y Cf es un coeficiente de arrastre.
a. Estima los valores de la fuerza de arrastre para los siguientes valores de la velocidad
del viento: U = 15, 20, 30 m/s.
b. Dibuja Fd en funcin de U para 100 valores de la velocidad comprendidos entre 15
y 30 m/s
c. Dibuja Fd en funcin de U para varios valores de la velocidad comprendidos entre 15
y 30 m/s con una resolucin de 0.5 m/s
Fd =

Toma = 1.22 kg/m3, Ae=964 m2 and Cf=2.12.

Introduccin a la programacin en Matlab. Curso acadmico 2014-2015


Escuela de Doctorado de Ciencias, Tecnologas e Ingenieras

7. La cota de run-up, Ru , que alcanza una ola de altura H y periodo T sobre el dique de escollera
de la figura puede estimarse con la siguiente frmula:

R u = AuH ( 1- exp( B u I r ) )
Donde I r = 1.25T tan / H , tan es la pendiente del talud y Au , Bu son parmetros que
para cubos de hormign toman aproximadamente los siguientes valores: Au =1.05, Bu =-0.67.
Para una ola de periodo T = 12 s, y un talud de pendiente tan =1/1.5, calcula cunto vale Ru
para valores de H variando entre 1 y 3.

8. Las matrices S y T escritas en los ficheros s.dat y t.dat contienen, respectivamente, datos de
salinidad (en PSU) y temperatura (en C) del agua medidos en las 24 posiciones localizadas
sobre la malla de la figura que se encuentran en la desembocadura de un estuario.

a. Utiliza la siguiente ecuacin, que es una aproximacin lineal de la ecuacin de


estado, para estimar en dichas posiciones los valores de la densidad:

= 0 [1 T (T T0 ) + S ( S S0 )]

donde 0 =
1.0 103 kg m 3 , T =
1.0 1041/K, S =
7.6 104 y T0 , S0 son valores de
referencia que pueden tomarse igual a 10 C y 35 PSU respectivamente.
b. Utiliza la siguiente ecuacin de estado (vlida solo bajo determinadas condiciones de
presin) para estimar los valores de la densidad:

=
1000 + C1 + C2 T + C3 S + C4 T 2 + C5 S T + C6 T 3 + C7 S T 2
donde C1 = 12.1787, C2 =-0.0394, C3 = 0.7857, C4 = -0.0062, C5 = -0.0026, C6 =
2.5940e-005 C7 = 3.0698e-005 (los valores de los coeficientes se encuentran tambin
en el fichero coeficientes.dat).
c. Dibuja la variacin de la temperatura a lo largo de la seccin marcada con crculos
d. Dibuja la variacin de la salinidad a lo largo de la seccin marcada con cuadrados

Introduccin a la programacin en Matlab. Curso acadmico 2014-2015


Escuela de Doctorado de Ciencias, Tecnologas e Ingenieras

9. Dibuja en dos grficos situados uno encima de otro, los valores de la temperatura y de la
salinidad del ejercicio 9, para las diferentes secciones definidas por y = cte.

10. En un fichero proporcionado por se encuentran los registros de precipitacin medios (mm)
de 7 estaciones meteorolgicas y el coeficiente de escorrenta de la cuenca asociado a cada
evento.
a. Leer los datos del fichero en Matlab y organizar las variables en dos vectores
independientes
b. Si el rea de la cuenca es de 600 km2 , calcular la aportacin total en hm3 . Calcular la
aportacin neta descontando el agua que se infiltra.
c. Se estima que los eventos de precipitacin de menos de 5mm P<5, son de tipo 1, 5<P<20
de tipo 2, 20<P<50 de tipo 3 y P>50 de tipo 4, crear un nuevo vector que tipifique la serie
completa.
d. Calcular el nmero de das en cada tipo de evento en la serie dada.
11. Dado el Modelo Digital del Terreno (DEMCorr.txt) de la cuenca de un ro y su mapa de
pendientes (Pend.txt), se pide:
a. Estimar la velocidad media distribuida (V1) de la escorrenta equivalente a 1 mm de
altura de agua, uniformemente repartida. Se asume la ecuacin de Manning como
expresin de resistencia al flujo y un valor constante del parmetro = 0.05 en toda la
cuenca).
b. Crear una matriz donde esta velocidad media supere 1 m/s para altitudes superiores a
600 msnm.
c. Repetir el clculo de la velocidad distribuida (V2) teniendo en cuenta la distribucin de
estimada a partir de los tipos de vegetacin existente (n_Manning.txt).
d. Elaborar una figura con el histograma de la velocidad, el mapa de velocidad distribuida,
el MDT y mapa de pendientes.
V=

1 2 / 3 0.5
h S
n

12. Un correntmetro mide el campo de velocidades en la desembocadura de un estuario. El


fichero veloc.dat contiene en columnas las medidas tomadas durante un determinado intervalo
de tiempo a diferentes cotas. La columna 1 corresponde a la serie temporal medida en el nivel
del mar en reposo (nivel de referencia), las siguientes son los datos medidos respectivamente a
1, 2, 3 y 4 m de dicha posicin. Los datos estn tomados cada 20 minutos.

a. Dibuja el perfil de velocidades en el instante inicial de tiempo y al cabo de 1, 2 y 3


horas.
b. Utiliza un ciclo for para observar la variacin del perfil de velocidades a lo largo del
tiempo.
4

Introduccin a la programacin en Matlab. Curso acadmico 2014-2015


Escuela de Doctorado de Ciencias, Tecnologas e Ingenieras

13. Define un vector x de 100 componentes que contenga 101 valores de -2 a 2 uniformemente
espaciados y realiza en Matlab las siguientes tareas:
a. Calcula el vector x 2
b. Dibuja la funcin y = x 2
b. Sobre la grfica anterior dibuja la funcin y = cos(3 x) en color rojo

14. Define un vector x que contenga valores de 1 a 10 con una diferencia entre valores
sucesivos de 0.1 y realiza en Matlab las siguientes tareas:
a. Calcula el vector y =
( x + 3) x 2 +

cos(2 x)
y dibuja su funcin con crculos azules
x +1

b. Qu dimensiones tienen x e y ?
c. Elige los valores de x y de y que ocupan una posicin par.
d. Crea una matriz que contenga como primer columna los valores de x y como
segunda columna los de y .
e. Calcula, utilizando el vector y , z = ( x + 3) x 2 +

cos(2 x)
x +1

f. Aade a la matriz creada en d., una columna con los valores de z .

15. Define un vector x de 100 componentes que contenga valores de -2 a 2 uniformemente


espaciados y realiza en Matlab las siguientes tareas:
a. Dibuja las funciones y = x 2 , z = sin(3 x 2 ) y escribe en un fichero los valores de
x, y, z en columnas.
b. Lee el fichero generado en el apartado anterior y dibuja las funciones y, z e

u = x 2 sin(3 x 2 )
c. Estima (a ojo!) los valores de x para los cuales la funcin u vale 1. Dibuja dichos
valores sobre la grfica de u

16. El fichero datos_wana.txt contiene en columnas (tal y como se describe en el cabecero)


datos sintticos de oleaje y medidas de viento.
a. Lee el fichero y dibuja los valores de H m0 medidos durante el ao 96
b. Escribe en un fichero los datos de H m0 y de la energa espacial media
*
E=

E 1 2
H en columnas
=
2 m0

datos_wana.txt
% Datos sinteticos obtenidos a partir de modelos numericos
% Modelo de Oleaje: WAN
% Modelo de Vientos: HIRLAM
% En la ejecucion del los modelos se asimilan datos
% reales de viento
%
% Hm0 : Altura significante espectral ( m )
% Tp : Periodo de pico espectral ( s )
% DirM : Direccion Media de procedencia del Oleaje ( 0 = N, 90 = E )
% VelV : Velocidad Media del Viento ( m/s )
% DirV : Direccion Media de procedencia del Viento ( 0 = N, 90 = E )
%YY MM DD HH Hm0 Tp DirM VelV DirV
1996 01 14 03 0.6 2.9 225 6.3 189
1996 01 14 06 0.6 3.2 252 7.0 288

Introduccin a la programacin en Matlab. Curso acadmico 2014-2015


Escuela de Doctorado de Ciencias, Tecnologas e Ingenieras

1996 01 14 09
1996 01 14 12
1996 01 14 15
1996 01 14 18
1996 01 14 21
1996 01 15 00
1996 01 15 03
1996 01 15 06
..

0.6
0.4
1.2
0.9
0.9
1.0
1.1
1.0

3.6 264 7.0 288


3.6 245 10.5 80
3.9 89 10.5 80
4.3 102 8.1 102
4.3 104 8.1 102
4.3 117 8.5 121
4.7 123 8.5 121
4.7 106 9.6 77

17. El fichero prec_dur.txt contiene en columnas (tal y como se describe en el cabecero) los
valores de precipitacin total y duracin de eventos de lluvia registrados en una localidad
granadina, durante varios aos hidrolgicos.
a. Lee el fichero y dibuja los valores de duracin-precipitacin
b. Ordena de menor a mayor los valores de precipitacin
c. Escribe en un fichero los valores de precipitacin, duracin y tipo de borrasca, en tres
columnas
d. Dibuja los datos de precipitacin-duracin utilizando colores diferentes para cada
tipo de borrasca.
e. Dibuja los valores de duracin-precipitacin de las borrascas tipo 2
f. Calcula en nmero de eventos ocurridos desde el 1 de enero de 1970 hasta el 31 de
diciembre de 1970. De ellos cuntos son de tipo 3?
g. Calcula cuntos das han trascurrido entre los eventos 21 y 22.

prec_dur.txt
%Evento
1
2
3
4
5
6
7
8
9
10
11
..

Ao_ini
1968
1968
1968
1968
1968
1968
1968
1968
1968
1969
1969

Mes_ini
10
11
11
11
12
12
12
12
12
1
1

Dia_ini
31
5
14
27
6
11
14
16
27
5
7

Ao_fin
1968
1968
1968
1968
1968
1968
1968
1968
1968
1969
1969

Mes_fin
11
11
11
11
12
12
12
12
12
1
1

Dia_fin
4
8
18
30
10
13
15
19
30
6
17

Duracin
5
4
5
4
5
3
2
4
4
2
11

Tipo_Borrasca
Precipitacin
1
46.743.588
1
11.137.418
1
15.560.696
1
43.712.082
2
2.298.255
4
145.799
4
148.961
1
3.455.818
2
816.595
2
1.220.545
1
9.856.551

18. Define un vector x que contenga valores de [-1,1] uniformemente espaciados con
x =0.025 y realiza en Matlab las siguientes tareas:
a. Dibuja la funcin f ( x=
)
1 + x 2 y escribe en un fichero los valores de x, f ( x ) en
columnas.
b. Estima los puntos de x en los que la funcin toma valores mximos relativos. Dibuja
dichos puntos sobre la grfica de f ( x )
c. Escribe una funcin que 'busque los mximos' de una funcion f ( x ) a partir de los
valores de f estimados en un nmero arbitrario de valores de x.
d. Utilizar la funcin del apartado anterior para estimar los 'mximos y mnimos' de la
funcin f ( x ) = sin(tan( x )) en [ 3 / 4,3 / 4] y en

19. Define una matriz A de dimensiones 4x4 no singular ( det( A) 0 )y dos vectores b y c de
dimensiones 4x1 y realiza las siguientes operaciones en Matlab.


a. Resuelve los sistemas de ecuaciones Ax = b y Ay = c

Introduccin a la programacin en Matlab. Curso acadmico 2014-2015


Escuela de Doctorado de Ciencias, Tecnologas e Ingenieras

b. Calcula


x y donde donde es el producto escalar de dos vectores

( x y= x1 y1 + ... + x4 y4 ) sin usar la funcin de Matlab dot

c. Calcula el vector d = ( x12 , x22 , x32 , x42 )

d. Calcula el valor mximo de las componentes de x


20. Escribe una funcin en Matlab que calcule de forma aproximada la integral de una funcin
real de variable real, f(x), sobre un intervalo [a,b]:
b

I = f ( x)dx
a

a partir de los valores de f conocidos en n puntos: a = x1 < x2 < x3 ... < x j < .... < xn = b
21. Utiliza la funcin que has escrito en el apartado anterior para estimar los valores de las
siguientes integrales:
1

a. I = x 2 dx =
; b. I
1
c. I
=

sin( x + 1)dx

=
sin( x + 1)dx ; d. I

f ( x)dx con f ( x)
=
0

x 1 para 0 x 1
2
x 1 para 1<x 2

22. Realiza un programa que sume los primeros 100 nmeros naturales empleando un ciclo for.
23. Realiza un programa que multiplique los primeros 100 nmeros naturales empleando un
ciclo for.
24. Dado un vector de 1000 elementos (definido por el usuario) escriba un programa empleando
el ciclo for que identifique qu elementos son positivos y cules son negativos y que los
almacene en sendos vectores.
25. Un dispositivo CTD sirve para medir propiedades del agua tales como salinidad,
temperatura, presin, profundidad y densidad. A lo largo de un estuario hay situados 5 CTD que
registran los datos medios diarios de salinidad [en PSU] durante 30 das. El primero se sita en
la desembocadura, el segundo est a 200 metros de la misma, el tercero a 500 metros, el cuarto a
900 metros y el quinto a 1800 metros tal y como se indica en la figura. La columna 1 contiene
los instantes de tiempo en los que se miden los datos y las columnas 2 a 6 contienen los valores
de salinidad registrados en cada CTD.

a. Representa los valores de salinidad a lo largo del estuario para los das 2, 10 y 28 en
la misma figura alineados verticalmente.
b. Representa en la misma grfica la evolucin temporal del CTD situado en la
desembocadura y del ms alejado. Aade la legenda.
c. Dibuja el valor medio de los 30 das lo largo del estuario.
d. Representa dentro de una misma figura el histograma de cada CTD.

Introduccin a la programacin en Matlab. Curso acadmico 2014-2015


Escuela de Doctorado de Ciencias, Tecnologas e Ingenieras

27. Partiendo del archivo QMedidos_Zahara.txt, que contiene datos de aportaciones de caudales
al embalse de Zahara en Cdiz con el formato:
%Dia Mes Ao Q(m3/s)
1
12
1991 2.65
2
12
1991 0.799
3
12
1991 0.509

a. Crea una matriz con todos los datos, ordenndolos por columnas, que contengan da,
mes, ao y caudal.
b. Crea un vector con las fechas en das julianos y otro vector con los datos de caudal.
c. Fjate en cules son las fechas inicial y final de los datos.
d. Dibuja en una grfica los datos de caudal frente a la fecha juliana y luego pon la
fecha en un formato ms legible (da, mes, ao).
e. Haz que en el eje x aparezcan slo las etiquetas correspondientes al 1 de Enero de
cada ao, con el formato mmyy (p.ej. Jan98).

28. Representa grficamente la siguiente funcin y guardarlo en un archivo -ascii:

sin ( x )

sin ( 2 x )
f ( x) =
sin ( 4 x )
sin 8 x
( )

[0, 2 )
[ 2 , 4 )
[ 4 ,8 )
[8 ,16 ]

29. Genera un fichero ascii con los valores de la siguiente funcin f(x) utilizando un valor de
discretizacin del eje de abscisa en cada tramo igual a L/10, siendo L la periodicidad (o longitud
de onda) de la funcin que se representa en cada tramo. Pintar la funcin con un color diferente
para cada tramo:

sin ( x )

sin ( 2 x )
f ( x) =
sin ( 4 x )
sin 8 x
( )

[0, 2 )
[ 2 , 4 )
[ 4 ,8 )
[8 ,16 ]

30. Haz una animacin simple utilizando un ciclo for y el comando pause para visualizar la
propagacin de una onda cuya expresin es
=
y A sin(kx s t )
donde A, k y son valores conocidos. x es el espacio y t denota el tiempo.

31. Calcula el factorial de un nmero natural n empleando el ciclo for. Comparar el resultado
con la funcin factorial( ).

32. Dado un valor real x, estima sin(x) haciendo uso de su desarrollo en serie de potencias hasta
orden N. Qu valor de N es necesario para que el error cometido en la aproximacin sea
inferior a 10-6?

Introduccin a la programacin en Matlab. Curso acadmico 2014-2015


Escuela de Doctorado de Ciencias, Tecnologas e Ingenieras

33. Utiliza Matlab para derivar, con respecto a la variable x, las siguientes funciones
a. f ( x) = e x

b. f ( x) = e ax
c. f ( x=
) ln(cos(ax 2 + 1))
2

34. Utiliza Matlab para realizar los siguientes clculos

b.
c.
d.

x e x dx
2

a.

x e x dx
2

e x dx
2

(b + 1) e ax dx
2

35. Desarrolla al mximo la expresin de la siguiente funcin:


f ( x) = ( x 2 + 3 x 1)(sin( x) + 1)

(1 + x) ln( x)
(1 + x)(1 x)

36. Simplifica las siguientes ecuaciones


(1 + x) ln( x)
1 x2
b. f ( x=
) 1 sin 2 ( x ) tan ( x )

a. f ( x) =

37. Escribe las siguientes funciones como producto de factores de expresin ms sencilla
a. f ( x) = 4 x 2 ln x - ln x + x3 ln x - ln x sin x + 2 x ln x +4 x 2 ln x sin x + x3 ln x sin x + 2 x ln x sin x
b. f ( x) 2 cos3 x sin x - cos 2 x - 2 cos x sin 3 x + 2 cos x sin x + sin 2 x
=
38. Escribe las siguientes expresiones como polinomios en x
a. g ( x) = ax 4 + 3x 4 + 2 x + x 2 sin x + 3sin ( x 1)
b.=
g ( x)

sin t *sin x + t x 2 + at 3 x 2 sin t + at 2 sin 2 t sin x

39. Escribe la siguiente expresin como polinomio en t


( x)
g=

sin t sin x + t x 2 + at 3 x 2 sin t + at 2 sin 2 t sin x

40. Resuelve la siguiente ecuacin con respecto a x

2 exp ( ax 2 ) + x 2 exp ( ax 2 ) + 3 x exp ( ax 2 ) =


0

41. Resuelve con respecto a x e y el sistema de ecuaciones


1
2 y + x =

0
y ax =

Introduccin a la programacin en Matlab. Curso acadmico 2014-2015


Escuela de Doctorado de Ciencias, Tecnologas e Ingenieras

42. Resuelve con respecto a x y a el sistema de ecuaciones


1
2 y + x =

0
y ax =

43. Dibuja la funcin sin(x) para x [1,1]


44. Resuelve las siguientes ecuaciones diferenciales ordinarias con las condiciones de cortorno
que se indican en su caso:
a.

y 'sin x y cos x =
0

y ( / 2) = 1

b.=
y ' sin( x y )
c. yV + 4 y ''' =
0
d. y '+ 2 y =
e x
e. y '+ 2 xy =
2 xe x

y '' 5 y =
0

f. y (0) = a
y '(0) = 0
44. Resuelve los siguientes sistemas de ecuaciones diferenciales ordinarias
a.

x '(t ) = y (t )
x(0) 1;=
y (0) 0;
=
y '(t ) = x(t )

b.

x =' y + 1
x(0) 3;=
y (0) 1;
=
y '= x + 1

c.

x '= 3 2 y

y=' 2 x 2t

d.

y'= y + x
x(0) 0;=
y (0) 1;
=
x'= y x

44. Calcula las transformadas de fourier de las siguientes funciones


a. f (t ) sin(at), a > 0 ; b. f (t ) =
=
exp ( (t / a) 2 ) , a > 0 ; c. f (t ) = (t)
45. Utiliza la frmula de inversin para obtener las funciones cuyas transformadas de Fourier
son las siguientes:

a. F(w) =a p exp (aw/ 2) 2 , a > 0 ; b. F(w) = 1/(a+i w); c. F(w) = 2a/(a2+w2);

10

También podría gustarte