Вы находитесь на странице: 1из 4

Programación con Matlab Alumno: Dayan Saynes Puma

RESOLUCIÓN DE PROBLEMAS

1. La temperatura máxima diaria (en °F) en Nueva York y Anchorage, Alaska, durante el mes
de enero de 2001 son las mostradas en la siguiente tabla (datos tomados del Ministerio de
Meteorología y Oceanografía de Estados Unidos):

Días 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

New York 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

Anchorage 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 script que calcule:

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).

Resolución

Considerando que el entorno de Microsoft Excel es mucho más amigable para el ingreso de
información tabular, los datos proporcionados de temperatura se almacenan en un archivo
de dicho entorno (.xls), para luego —previa verificación de los valores—, ser importados
al entorno de Matlab y allí ser procesados. De ese modo, al archivo generado en Excel se
le asigna el nombre de “Temperaturas”.
En la ejecución del programa elaborado en Matlab y cuyo nombre es “PP_7”, se importan
automáticamente los datos contenidos en el archivo Excel previamente creado y además se
solicita al usuario proporcione la temperatura a ser utilizada en la comparación de las
series de datos, tal como lo señala el enunciado del problema. El código del programa se
detalla a continuación:

clear;
T=xlsread('Temperaturas');
T1=T(1,:);
T2=T(2,:);
N1=input('Ingrese el nombre de la zona 1:');
N2=input('Ingrese el nombre de la zona 2:');
t=input('Ingrese la temperatura a usar en la comparación:');
disp('================================================================');
%Cálculo de las temperaturas medias
T1med=sum(T1)/length(T1);
fprintf('La temperatura media de '),fprintf(N1),fprintf(' es:
%f\n',T1med);
T2med=sum(T2)/length(T2);
fprintf('La temperatura media de '),fprintf(N2),fprintf(' es:
%f\n',T2med);
disp('----------------------------------------------------------------');
%Cálculo del N° de días en que las temperaturas estuvieron por debajo de
la media
N1d=sum(T1<T1med);

Página 2 de 5 
 
Programación con Matlab Alumno: Dayan Saynes Puma

fprintf('Días en que la temperatura de '),fprintf(N1),fprintf(' estuvo


debajo de su media: %i\n',N1d);
N2d=sum(T2<T2med);
fprintf('Días en que la temperatura de '),fprintf(N2),fprintf(' estuvo
debajo de su media: %i\n',N2d);
disp('----------------------------------------------------------------');
%Días en que la temperatura de la zona 2 fue mayor que la zona 1
Dmayor=T2>T1;
Ndmayor=sum(Dmayor);
fprintf('N° de días en que la temperatura de '),fprintf(N2),fprintf(' fue
mayor que en '),fprintf(N1),fprintf(': %i\n',Ndmayor);
vectorDmayor=find(Dmayor);
fprintf('Días en que la temperatura de '),fprintf(N2),fprintf(' fue mayor
que en '),fprintf(N1),fprintf(':');disp(vectorDmayor);
disp('----------------------------------------------------------------');
%Días en que la temperatura de la zona 2 fue igual que la zona 1
Digual=T2==T1;
Ndigual=sum(Digual);
fprintf('N° de días en que la temperatura de '),fprintf(N2),fprintf(' fue
igual que en '),fprintf(N1),fprintf(': %i\n',Ndigual);
vectorDigual=find(Digual);
fprintf('Días en que la temperatura de '),fprintf(N2),fprintf(' fue igual
que en '),fprintf(N1),fprintf(':');disp(vectorDigual);
disp('----------------------------------------------------------------');
%Días en que la temperatura de la zona 1 y 2 fue mayor que t
Dmayort=(T1>t & T2>t);
Ndmayort=sum(Dmayort);
fprintf('N° de días en que la temperatura de '),fprintf(N1),fprintf(' y
'),fprintf(N2),fprintf(' fue mayor que %3.2f: %i\n',t,Ndmayort);
vectorDmayort=find(Dmayort);
fprintf('Días en que la temperatura de '),fprintf(N1),fprintf(' y
'),fprintf(N2),fprintf(' fue mayor que %3.2f:',t);disp(vectorDmayort);
disp('================================================================');

Luego de ejecutar el programa los resultados que se muestran en la Ventana de Comandos


son los detallados a continuación:

>> PP_7
Ingrese el nombre de la zona 1:'New York'
Ingrese el nombre de la zona 2:'Anchorage'
Ingrese la temperatura a usar en la comparación:32
=========================================================================
La temperatura media de New York es: 37.677419
La temperatura media de Anchorage es: 33.129032
-------------------------------------------------------------------------
Días en que la temperatura de New York estuvo debajo de su media: 17
Días en que la temperatura de Anchorage estuvo debajo de su media: 13
-------------------------------------------------------------------------
N° de días en que la temperatura de Anchorage fue mayor que en New York:
11
Días en que la temperatura de Anchorage fue mayor que en New York: 1
7 9 14 15 18 19 21 22 25 26

-------------------------------------------------------------------------
N° de días en que la temperatura de Anchorage fue igual que en New York:
1
Días en que la temperatura de Anchorage fue igual que en New York: 23

-------------------------------------------------------------------------
N° de días en que la temperatura de New York y Anchorage fue mayor que
32.00: 16

Página 3 de 5 
 
Program
mación con Matlab Alumno:: Dayan Saynnes Puma

Días
s en que la
l tempera
atura de New
N York y Anchorag
ge fue may
yor que 32
2.00:
7 8 9 13 14 15
5 16 17 18
8 19 20 23
3 24
25 26 2
27

====
==========
==========
==========
==========
==========
==========
==========
=======

2. La veelocidad, enn función deel tiempo, de


d la partícuula que se mueve a lo largo de uuna línea
recta
a, se represeenta en el gráfico
g adjunto y viene dada por las
l siguientees ecuacionees:

Escrib
ba dos funcciones MATLLAB: una de e ellas debee calcular la a velocidad d de la partícula en
un instante t (utiilice la siguiente definiición de funnción: v = velocidad
v (t)), y la otra
a función
debeerá calcularr la aceleración de la partícula
p enn el instante t (utilice pa
ara ello la siguiente
s
definnición de la
a función: a = aceleracción (t)). Esccriba posteriormente un u programa, en un
fichero script, quue represennte las gráficas de la velocidad
v y la acelera ación, en funnción del
tiemppo, de una partícula en e movimie ento (las doos gráficas deben apa arecer en la a misma
ventaana gráfica a). Para ello, dentro del ficheroo script, creee primero un vector t, para
0 ≤ t ≤ 40 seguundos, y desspués utilice e las funcionnes velocida ad y acelera ación para crear
c los
vectoores v y a, que
q se utiliza arán para generar
g la representac
r ción gráfica.

Resolución

El enunciado del problema señala form mular primero una funciión que calccule la veloccidad en
determinado tieempo; dicha a función debe
d ser ejecutable
e no
n solo para un escalar, sino
ademmás para unn vector de valores, pues solo así se
s podría trrazar su grááfico. Considerando
lo annterior, la función
f parra calcular la velocida
ad y cuyo nombre es “velocidad d”, es la
siguieente:

func
ction v=ve
elocidad(t
t)
v1=1
1.4*t;
v2=1
14+5*sin((
(pi/10)*(t
t-10));
v3=9
9;
v4=9
9-(9/5)*(t
t-35);
v=v1
1.*(0<=t&t
t<10)+v2.*
*(10<=t&t<
<25)+v3.*(
(25<=t&t<3
35)+v4.*(3
35<=t&t<=4
40);

Seguuidamente se pide generar una seegunda funcción que evvalúe la aceeleración referida a
un tiempo espe ecífico; la cual tambiénn debe tenner la capa acidad de evaluar valores de
po ordenad
tiemp dos en un veector. La funnción para calcular la aceleraciónn y cuyo noombre es
“aceleracion”, es la siguientte:

Páginna 4 de 5 
 
Program
mación con Matlab Alumno:: Dayan Saynnes Puma

func
ction a=ac
celeracion
n(t)
a1=i
inline(dif
ff(sym(@(t
t) 1.4*t)),'t');
a2=i
inline(dif
ff(sym(@(t
t) 14+5*si
in((pi/10)*(t-10)))),'t');
a3=i
inline(dif t) 9)),'t');
ff(sym(@(t
a4=i
inline(dif
ff(sym(@(t
t) 9-(9/5)*(t-35))),'t');
a=a1
1(t).*(0<=
=t&t<10)+a
a2(t).*(10
0<=t&t<25)+a3(t).*(
(25<=t&t<3
35)+a4(t).
.*(35<=
t&t<
<=40);

Por último, se pide formular un ficchero scriptt que perm mita grafica ar la velocidad y
aceleeración parra un rangoo temporal ded 0 ≤ t ≤ 40 s. El deetalle del fichero al quue se ha
denoominado “grrafico”, es el
e siguiente:

t=0:0.1:40;
elocidad(t
v=ve t);
a=ac
celeracion
n(t);
subp
plot(2,1,1
1);
plot
t(t,v,'-b');
xlab
bel('Tiemp
po (s)');
ylab
bel('Veloc
cidad (m/s
s)');
titl
le('Veloci
idad de un
na partícu
ula que se
e desplaza
a en línea
a recta');
;
grid
d on;
subp
plot(2,1,2
2);
plot
t(t,a,'--r
r');
xlab
bel('Tiemp
po (s)');
ylab
bel('Acele
eración (m
m/s^2)');
titl
le('Aceler
ración de una partí
ícula que se despla
aza en lín
nea recta'
');
grid
d on;

El ressultado que
e muestra Matlab al eje
ecutarse el script
s “grafico” se muesstra a continnuación:

Páginna 5 de 5 
 

Вам также может понравиться