Vous êtes sur la page 1sur 5

Ingeniería Civil, UAZ

18-Junio-2014

T r a b a j o N° 5
Programación Estructurada en MatLab
(Desarrollo de programas y funciones m-file)

Nombre y grupo:

Analice, desarrolle y obtenga los programas m-file que se indican a continuación, teniendo
siempre en mente los aspectos fundamentales de la programación estructurada.

1. La temperatura máxima diaria (en ºF) en Nueva York y Anchorage, Alaska, durante el
mes de enero de 2001 vienen dadas en los siguientes vectores (datos tomados del
ministerio Nacional de Meteorología y Oceanografía de Estados Unidos).

TNY = [31 26 30 33 33 39 41 41 34 33 45 42 36 39 37 45 43 36 41 37 32 32 35 42 38
33 40 37 36 51 50],
TANC = [37 24 28 25 21 28 46 37 36 20 24 31 34 40 43 36 34 41 42 35 38 36 35 33 42
42 37 26 20 25 31].

Escriba un programa que obtenga lo siguiente:

a) La temperatura media en ese mes para cada ciudad.


b) El número de días que estuvo la temperatura de cada ciudad por debajo de la
media.
c) El número de días, y a qué días del mes corresponden, en los cuales la
temperatura de Anchorage fue mayor que la temperatura de Nueva York.
d) El número de días, y a qué días del mes corresponden, en los cuales la
temperatura fue igual en ambas ciudades.
e) El número de días, y a qué días del mes corresponden, en los cuales la
temperatura de ambas ciudades se mantuvo por encima de 32 ºF (sin helar).

2. Represente la siguiente función de dos formas distintas:

 4e x + 2 −6 ≤ x ≤ −2

f ( x) =  x2 −2 ≤ x ≤ 2.5

( x + 6.5 ) 2.5 ≤ x ≤ 6
13

a) Escribiendo un fichero script que utilice bucles y sentencias condicionales.


b) Creando una función f ( x ) para utilizarla posteriormente en un fichero script.
M. I. Fidel A. Ortiz Robles Computación II: MATLAB
Hoja: 1/5
miarh.uaz@gmail.com Segundo Semestre
Ingeniería Civil, UAZ

3. Escriba un programa que calcule las raíces reales de una ecuación cuadrática
a x 2 + b x + c = 0 . Llame al fichero ‘raicescuad.m’. Cuando el fichero se ejecute, éste
debe pedir al usuario que introduzca los valores de las constantes a, b y c. Para calcular
las raíces de la ecuación, el programa calculará el discriminante D:

D = b2 − 4 a c

Si D > 0, el programa visualizará un mensaje que indique: ‘La ecuación tiene dos raíces
diferentes’, y los valores de las raíces se visualizarán en la línea siguiente.
Si D = 0, el programa visualizará un mensaje que indique: ‘La ecuación tiene dos raíces
iguales’, y el valor de la raíz se visualizará en la línea siguiente.
Si D < 0, el programa visualizará un mensaje que indique: ‘La ecuación no tiene raíces
reales’.
Ejecute el fichero script en la Ventana de Comandos tres veces para calcular las
soluciones de las siguientes ecuaciones:

i) 2 x2 + 8 x − 3 = 0
ii) 15 x 2 + 10 x + 5 = 0
iii) 18 x 2 + 12 x + 2 = 0

4. Utilice bucles para crear una matriz A de dimensión 4 × 7 , en la cual el valor de cada
elemento sea la suma de sus índices (el número de la fila y el número de la columna de
cada elemento). Por ejemplo, el valor del elemento A(2,5) será 7.

5. Utilice bucles y sentencias condicionales para crear una matriz de dimensión 5 × 8 , en


la cual, el valor de cada elemento sea igual a la raíz cuadrada de la suma de los índices
de cada elemento, siempre que el elemento no se encuentre en una columna o fila par.
El valor de un elemento que esté en una fila o columna par será igual a la suma del
cuadrado de los índices. (Los índices de un elemento de una matriz son el número de
fila y el número de columna que le corresponden.)

6. Sea el vector x = [1:50]. Escriba un programa en un fichero script que borre del vector x
aquellos elementos que son divisibles por 3, 4 ó 5. Al final el programa debe mostrar el
vector resultante.

7. Escriba una función MatLab que calcule las coordenadas polares de un punto
correspondiente a un sistema de coordenadas cartesianas, en un plano de dos
dimensiones (como se muestra en la siguiente figura). Utilice la siguiente línea de
definición de función para ello: [theta, radio] = CartesianoAPolar(x, y).

M. I. Fidel A. Ortiz Robles Computación II: MATLAB


Hoja: 2/5
miarh.uaz@gmail.com Segundo Semestre
Ingeniería Civil, UAZ

Los argumentos de entrada serán las coordenadas cartesianas x e y del punto, y los
argumentos de salida serán el ángulo θ y la distancia radial (radio) al punto en cuestión.
El ángulo θ vendrá dado en grados, y su medida será relativa al eje x positivo, de tal
forma que sea un número positivo en los cuadrantes I, II y III, y un número negativo en
el cuadrante IV. Utilice posteriormente esta función para calcular las coordenadas
polares de los puntos (15, 3), (-7, 12), (-17, -9) y (10, -6.5).

8. Un depósito de combustible tiene la forma de un cilindro vertical rematado por sus dos
extremos hemisféricos, tal y como se muestra en la figura adjunta. El radio del cilindro
y de los hemisferios es r = 40 cm, y la longitud de la parte cilíndrica es 1.2 metros.

Escriba una función (definida de la forma: V = Vtanque(h)) que calcule el volumen del
depósito en función de la altura h. Utilice posteriormente la función para representar un
gráfico del volumen en función de la altura, para 0 ≤ h ≤ 2 metros.

M. I. Fidel A. Ortiz Robles Computación II: MATLAB


Hoja: 3/5
miarh.uaz@gmail.com Segundo Semestre
Ingeniería Civil, UAZ

9. La velocidad, en función del tiempo, de una partícula que se mueve a lo largo de una
línea recta, se representa en el gráfico adjunto y viene dada por las siguientes
ecuaciones:

 1.4 t 0 ≤ t ≤ 10 s

14 + 5sen  π ( t − 10 )  10 ≤ t ≤ 25 s
  10 
v ( x) = 
 9 25 ≤ t ≤ 35 s
 9
 9 − ( t − 35 ) 35 ≤ t ≤ 40 s
 5

Escriba dos funciones m-file: una de ellas debe calcular la velocidad de la partícula en
un instante t (utilice la siguiente definición de función: v = velocidad(t)), y la otra
función deberá calcular la aceleración de la partícula también en el instante t (utilice
para ello la siguiente definición de función: a = aceleracion(t)). Escriba posteriormente
un programa, en un fichero script, que represente las gráficas de la velocidad y la
aceleración, en función del tiempo, de una partícula en movimiento (las dos gráficas
deben aparecer en la misma ventana de gráfico). Para ello, dentro del fichero script,
cree primero un vector t, para 0 ≤ t ≤ 40 segundos, y después utilice las funciones
velocidad y aceleracion para crear los vectores v y a, que se utilizarán para generar la
representación gráfica.

10. Una báscula se compone de una bandeja sujeta a una serie de muelles, tal y como se
muestra en la figura adjunta. Cuando se sitúa un objeto en la bandeja, ésta se mueve
hacia abajo de forma que el peso del objeto se puede calcular a partir del
desplazamiento de la bandeja. Inicialmente, sólo los dos muelles exteriores soportan el
peso. Sin embargo, si el objeto es lo suficientemente pesado, la bandeja hará contacto
con el tercer muelle situado justo entre los otros dos exteriores.

Si se tiene que k1 = 800 N/m, k2 = 1700 N/m, y d = 20 mm. Escriba una función que
calcule el peso W de un objeto en función del desplazamiento x de la bandeja en la
báscula. Utilice la siguiente definición para dicha función: W = bascula(x).
Posteriormente, desarrolle y ejecute lo siguiente:

M. I. Fidel A. Ortiz Robles Computación II: MATLAB


Hoja: 4/5
miarh.uaz@gmail.com Segundo Semestre
Ingeniería Civil, UAZ

a) Utilice esta función en la Ventana de Comandos para calcular el peso de dos


objetos que producen un desplazamiento de la bandeja de 1.5 y 3.1 cm.
b) Escriba un programa script que represente gráficamente el peso en función del
desplazamiento x, para 0 ≤ x ≤ 4 cm.

Nota: Tendrá oportunidad de no desarrollar dos ejercicios de los 10 enlistados anteriormente. Es


decir, deberá trabajar al menos 8 ejercicios (marcando como obligatorios los problemas 1, 4, 5 y 9).
Si alguien desarrolla los 10 problemas se le considerará en su calificación final.

Anotaciones o comentarios finales:

Fecha de entrega: 20 / Junio / 2014

M. I. Fidel A. Ortiz Robles Computación II: MATLAB


Hoja: 5/5
miarh.uaz@gmail.com Segundo Semestre