Vous êtes sur la page 1sur 21

Tema 10

Algunos problemas de ingenier a


Este u ltimo tema propone diversos problemas com unmente encontrados en diversas areas de la ingenier a. Se han seleccionado por una parte porque permiten poner a prueba los conocimientos que el alumno ha debido adquirir durante el curso. Adem as ilustran ideas que el alumno manejar a a lo largo de la carrera. En la confecci on de los algoritmos se ha supuesto que el operador dispone de medios para realizar operaciones elementales de la L ogica y la Aritm etica y adem as alguna otra como senos y logaritmos que se encuentran en la mayor a de lenguajes de programaci on para computadoras e incluso en calculadoras de bolsillo. Gracias a eso los algoritmos que se proponen como soluci on pueden ser f acilmente codicados en C, en MATLAB, JAVA o cualquier otro lenguaje de alto nivel.

10.1

Interpolaci on con segmentos

Suponga que se conocen los valores que una funci on f desconocida toma sobre ciertos puntos {x1 , x2 , , xn }. Se pretende proporcionar valores aproximados de f en cualquier punto x interpolando los valores conocidos. Para precisar se va a llamar X = {xk } al conjunto de los valores de x para los cuales se conoce el valor de f . De forma equivalente se denominar a Y = {f (xk )} a las ordenadas de dichos puntos. Para poder obtener aproximadamente f (x ) mediante interpolaci on es necesario que existan dos valores xi y xd pertenecientes a X tales que xi x xd . 203

204

TEMA 10. ALGUNOS PROBLEMAS DE INGENIER IA

(x ) que se calcula utilizando la En tal caso la interpolaci on produce un valor aproximado f recta que pasa por (xi , yi ) y (xd , yd ) como se muestra en la gura 10.1. La ecuaci on de esta recta es:

y yi = y en el punto x toma el valor

yd y i (x xi ) xd xi

y = yi +

yd y i (x xi ) xd xi

En caso de que x no caiga entre dos valores conocidos no es posible realizar la interpolaci on.

1.2 1 0.8 0.6 0.4 0.2

(xi, yi) (xd, yd)

x* 0 0 0.5 1 1.5

Figura 10.1: Ilustraci on de la interpolaci on de funciones. La funci on desconocida a interpolar es la l nea de puntos. Los valores conocidos se indican con marcas +. Dado el valor x , la recta que interpola es la l nea continua. El problema que se pretende resolver puede enunciarse como: dado un conjunto de abscisas X = {xk } y sus im agenes mediante f denotadas por Y = {f (xk )}, siendo f una funci on desconocida, calcular mediante interpolaci on una aproximaci on f para nuevos valores de x proporcionados por el usuario por teclado. Es importante tener en cuenta que los valores en X no est an ordenados, es decir no se cumple que xk xk+1 para todo k .

c MRA & JAAR

2010 DISA. ESI. US.

205

10.2

Ajuste por m nimos cuadrados

Hay ocasiones en ingenier a en las que se dispone de un conjunto de medidas o datos observados de dos variables y se quiere hallar la relaci on entre ambas. Por ejemplo, la relaci on entre altitud y temperatura media en la estratosfera. Mediante un globo se puede medir la temperatura en distintas epocas del a no y la altura correspondiente. Suponga que el resultado de tales mediciones se ha incluido en dos vectores T de temperaturas (en grados Celsius) y A de alturas (en Kms). Para realizar este ejemplo se va a suponer que los vectores citados tienen como componentes:

A = [ 21

23

25

26

28

30

31

35

40

45

49]

T = [50 51 45 44 39 40 39 28 20 15 8] La gr aca que se muestra en la gura 10.2 muestra en el eje vertical (eje y) la altura y en el horizontal (eje x) la temperatura. Como puede verse, parece existir una relaci on entre las observaciones de ambas variables. M as a un, esta relaci on es aproximadamente lineal pues se asemeja a una recta.
Datos observados 50

45

40 altitud (Kms)

35

30

25

20 60

50

40

30 20 temperatura (oC)

10

Figura 10.2: Mediciones realizadas con globo en la estratosfera.

206

TEMA 10. ALGUNOS PROBLEMAS DE INGENIER IA

Una vez hecha esta observaci on es posible preguntarse si alguna recta del tipo y (x) = ax + b proporciona una relaci on v alida a la vista de las mediciones disponibles. Dada una observaci on consistente en el par (xk , yk ) se denomina error de ajuste a la diferencia entre el valor observado yk y el valor dado por la recta para el valor de x observado y (xk ) = axk + b. La desviaci on cuadr atica es es cuadrado de dicho error (yk y (xk ))2 . El m etodo de los m nimos cuadrados permite obtener los valores de a y b que producen el mejor ajuste posible en cierto sentido1 . Las f ormulas para obtener los valores de a y de b son de sobra conocidas:

n a=

k=1 n

xk yk x2 k

k=1

k=1 n

xk

xk

k=1

k=1 2

yk

b=

k=1

yk a n

k=1

xk

siendo n el n umero de observaciones. Estas f ormulas aplicadas a los datos de altitud y temperatura dan como resultado los valores

a=

11(10840) (379)(353) = 0.6242 11 15177 143641 b = (353 a (379))/11 = 53.6

En la gura 10.3 se muestran de nuevo los datos de temperatura y altitud incluyendo adem as la recta de ajuste obtenida con las f ormulas anteriores que resulta ser y = 0.624x + 53.6. El problema que se pretende resolver puede enunciarse como: dado un conjunto de medidas consistentes en pares (xi , yi ) acomodadas en dos vectores x IRn e y IRn (con n > 0 entero), hallar los par ametros a y b de la recta de ajuste por m nimos cuadrados. Suponga que los vectores y su dimensi on ya han sido le dos.
La recta de m nimos cuadrados, como indica su nombre, es la que hace m nima la suma de las desviaciones cuadr aticas.
1

c MRA & JAAR

2010 DISA. ESI. US.


Datos observados y recta de ajuste 50

207

45

40 altitud (Kms)

35

30

25

20 60

50

40

30 20 temperatura (oC)

10

Figura 10.3: Recta de ajuste de los datos experimentales.

10.3

C alculo aproximado de areas

Como es sabido, la integral denida de una funci on equivale al area que queda bajo la curva de dicha funci o n entre los l mites de integraci on. Por ejemplo, la integral indenida (o primitiva) de y = 1 es 1dx = x, por tanto la integral denida entre las abscisas 1 y 5 es:
5 1

1dx = (5 1) = 4

Este resultado puede comprobarse de manera inmediata sin m as que trazar la gr aca de y = 1 y observar que el area del rect angulo es igual al producto de la base por la altura 4 1 = 4. Seg un lo anterior, parece claro que para calcular el area de y =f(x) entre dos abscisas xi , xf basta con hallar la primitiva de f(x), digamos g(x) = f(x)dx y luego obtener la diferencia g(xf )g(xi ). Este m etodo presenta un inconveniente, y es que existen funciones para las cuales no se 2 conocen primitivas. Este es el caso, por ejemplo de la funci on f(x) = ex . El c alculo aproximado de integrales consiste en hallar un valor num erico h(xi , xf ) que sea lo m as parecido posible al area que se desea calcular g(xf )g(xi ).

208

TEMA 10. ALGUNOS PROBLEMAS DE INGENIER IA

Un m etodo muy simple consiste en dividir el area en rect angulos como los que se muestran en la gura 10.4. Obs ervese que se ha dividido el intervalo [xi , xf ] en n trozos iguales, resultando los subintervalos: [x1 , x2 ], [x2 , x3 ], ... [xn , xn+1 ], siendo x1 = xi y xn+1 = xf . La altura de cada rect angulo se calcula mediante el valor de la funci on. As , para el primer rect angulo la altura es f(x1 ), para el segundo rect angulo f(x2 ) y para el u ltimo rect angulo (el n) es f(xn ).

f(x) f(x1)

xi

xf

x1 x2

xk

xn xn+1

Figura 10.4: C alculo aproximado del area bajo la curva f mediante suma de rect angulos El area bajo la curva es aproximadamente igual a la suma de las areas de los n rect angulos. Se va a indicar mediante h(xi , xf , n) el valor de dicha suma. Puesto que la base de todos ellos es igual a d = (xf xi )/n se tiene que:

h(xi , xf , n) = d

n k=1

f(xk )

(10.1)

La suma anterior puede llevarse a cabo mediante un programa de computador. N otese que la f ormula (10.1) s olo contiene variables y funciones conocidas. Se supone que aunque no se conoce la expresi on anal tica de la funci on primitiva g(x) s se conoce la de f(x) y tambi en se supone que los valores de f(x) se pueden calcular para cualquier x [xi , xf ]. El problema que se pretende resolver puede enunciarse como: dados dos valores xi , xf (xi < xf ) y una funci on f(x), hallar el area bajo la curva f de forma aproximada. Resulta evidente que el resultado de (10.1) depende del n umero de rect angulos que se utilicen. Si se toma un valor demasiado bajo para n es resultado ser a poco aproximado pues la escalera de rect angulos ser a demasiado tosca. Por contra un valor demasiado alto de n producir a resultados nos a costa de un tiempo de c alculo elevado. En el algoritmo se dejar a que n sea una variable a elegir por el usuario.

c MRA & JAAR

2010 DISA. ESI. US.

209

10.4
10.4.1

Integraci on num erica de ecuaciones diferenciales


Introducci on

Un problema cl asico en ingenier a es el c alculo de soluciones aproximadas de ecuaciones diferenciales usando m etodos num ericos. Una ecuaci on diferencial es aquella en la que aparecen la inc ognita y sus derivadas. Por ejemplo la ecuaci on

dx +x=0 dt En esta ecuaci on x no representa un n umero sino una funci on del tiempo x(t). La soluci on de la ecuaci on es una funci on tal que derivada respecto al tiempo y sumada a s misma produzca el valor cero. En algunos casos es posible obtener la soluci on utilizando herramientas del c alculo. En el ejemplo mostrado es simple pasando dt al segundo miembro y tomando integral.

dx +x=0 dt dx = x dt dx =1 xdt

dx = dt x dx = dt x La integral de la izquierda es el logaritmo neperiano de x, la integral de la derecha es t, si suponemos que en el instante t = 0 se conoce el valor de x al cual simbolizamos mediante x(0) = x0 se tiene que:
t

dx = x

dt

210

TEMA 10. ALGUNOS PROBLEMAS DE INGENIER IA (ln x ln x0 ) = (t 0) x (ln ) = t x0 x (ln ) = t x0 x = et x0 x(t) = x0 et

Sin embargo hay ocasiones donde no se conocen maneras para calcular soluciones manipulando las ecuaciones como en el ejemplo anterior. Tal es el caso de ecuaciones diferenciales en las cuales aparecen t erminos que no son lineales. Como ejemplo considere el problema de un paracaidista cayendo en la atm osfera. La ca da est a gobernada por la acci on de la fuerza de gravedad y la fuerza de rozamiento con el aire. dv dt

Fg Fr = m

donde Fg es la fuerza de la gravedad que atrae al paracaidista hacia el suelo, Fr es la fuerza de rozamiento que se opone a la ca da, v es la velocidad vertical hacia abajo con la que viaja el m ovil y m es su masa. Se sabe que Fg = mg siendo g = 9.8m/s2 , por otra parte la resistencia aerodin amica depende 2 de muchos factores. Simplicando mucho se puede considerar que Fr = kv . Es decir, la resistencia es proporcional al cuadrado de la velocidad. La ecuaci on diferencial queda entonces: dv dt

mg kv 2 = m dividiendo por m y reagrupando t erminos se obtiene:

dv = g Bv 2 dt siendo B = k/m. Esta ecuaci on no puede resolverse con l apiz y papel por lo que se necesitan t ecnicas de integraci on num erica las cuales se pueden programar en un ordenador usando un lenguaje de alto nivel como MATLAB.

c MRA & JAAR

2010 DISA. ESI. US.

211

10.4.2

El m etodo de Euler

Una forma simple de obtener soluciones aproximadas a ecuaciones como la anterior es el m etodo de Euler. Sea la ecuaci on dx on inicial x(0) = x0 . En el instante de tiempo t = 0 se dt = f(t) con condici sabe que x(t) = x0 , adem as se sabe que

x (0) = f (0) = lim

x(t) x0 x(h) x0 t0 t0 h

tomando un valor h sucientemente peque no. Es decir, que el valor de x(t) en un instante t = h pr oximo a cero es aproximadamente x0 + hf (0) lo cual se indica mediante x(h) x0 + hf (0). Frecuentemente el valor calculado de forma aproximada se indica mediante x (h), por lo que x(h) x (h) = x0 + hf (0). Del mismo modo, para el instante 2h se puede escribir x(2h) x(h) + hf (h), como x(h) no es conocido se puede utilizar su valor aproximado x (h), por lo que x(2h) x(h) + hf (h) x (h) + hf (h) = x (2h). Procediendo de la misma manera se puede obtener una secuencia de valores aproximados {x (kh)}, k = 1, 2, . N otese que este m etodo equivale a hacer una extrapolaci on lineal usando la derivada en cada punto. Para ilustrar el m etodo de Euler se parte de la situaci on mostrada en la gura 10.5 (a). El eje horizontal representa la variable t, en el eje vertical se ha colocado el valor x(0) = x0 . A partir de este punto se traza una recta con pendiente f (0). Sobre esta recta se halla el punto de abcisa h y ordenada x (h) = x0 + hf (0) que constituye el primer valor aproximado. A partir de ah se pasa a una nueva situaci on, mostrada en 10.5 (b): ahora se toma x (h) como punto de partida para trazar una nueva recta de pendiente f (h) y obtener sobre ella el punto de abcisa 2h y ordenada x (2h) = x (h) + hf (h) que constituye el segundo punto de la soluci on aproximada. En la gura 10.5 (c) se muestra el resultado obtenido al repetir los pasos anteriores 50 veces con h = 0.1, siendo f (t) = cos(t) y x(0) = 0. Se observa que la soluci on proporcionada por la integraci on num erica es un conjunto de valores {x (kh)}, k = 1, 2, 50. Estos valores se han representado uniendo mediante segmentos los puntos (kh, x (kh)), de forma que se obtiene una aproximaci on mediante trozos rectos. En la citada gura se muestra tambi en con trazo dx punteado la soluci on exacta obtenida resolviendo dt = cos(t), con x(0) = 0 que da como resultado x(t) =sen(t). Puede observarse que la discrepancia no es muy alta. El problema que se pretende resolver puede enunciarse como: dada una ecuaci on diferencial dx de primer orden en la forma dt = f(t) con condici on inicial x(0) = x0 calcular de forma

212

TEMA 10. ALGUNOS PROBLEMAS DE INGENIER IA


1

0.9

0.8

^ x(h)
^ x(h) x0

^ x(2h)

0.7

0.6

x0

0.5

0.4

0.3

0.2

t 0 h

t 0 h 2h

0.1

0 0 0.5 1 1.5 2 2.5 3

(a)

(b)

(c)

Figura 10.5: El m etodo de Euler para integraci on num erica aproximada mediante el m etodo de Euler los valores de la trayectoria x(t) para t = h, 2h, , N h siendo h el paso de integraci on dado y N el n umero de pasos (tambi en dado).

10.5

Ecuaciones trascendentes

Existen ecuaciones cuyas soluciones no pueden hallarse con l apiz y papel intentando despejar la variable buscada. Este es el caso de ecuaciones como cos(x) = x. El problema se puede replantear como la b usqueda del punto de corte con el eje horizontal de la funci on y = cos(x) x. Para calcular (de forma num erica) el paso por cero de y (x) se pueden aplicar diversos m etodos. Uno de ellos se comenta a continuaci on.

10.5.1

M etodo de la bisecci on

Se quiere resolver el problema de hallar el paso por cero (o ra z) de una funci on y = f(x) dentro de un cierto intervalo [xi , xf ]. Se sabe que f es continua y tambi en que en los extremos del intervalo toma valores de distinto signo. Sin p erdida de generalidad se puede suponer que f(xi ) > 0 y f(xf ) < 0 (en caso contrario basta con buscar el paso por cero de f(x)). La situaci on comentada aparece descrita en la gura 10.6. De la propiedad de continuidad de la funci on f se obtiene que debe existir al menos un paso por cero en el intervalo citado. Interesa calcular ese valor x que cumple f(x ) = 0 aunque sea de modo aproximado. El m etodo de la bisecci on consiste en dividir el intervalo en otro m as peque no que siga conteniendo el punto de corte. Este procedimiento se repite varias veces hasta que el intervalo

c MRA & JAAR

2010 DISA. ESI. US.

213

f(x)

xi

x*

xf

Figura 10.6: Funci on con un pase por cero en el intervalo mostrado. sea lo bastante peque no. Llegado este momento se puede tomar como valor aproximado del cero el punto medio del u ltimo intervalo. Para realizar la bisecci on se toma el punto medio del intervalo actual xm = (xi + xf )/2 y se eval ua la funci on en dicho punto, pueden darse tres casos:

a) la funci on en xm es del mismo signo que f(xi ). En tal caso se toma como nuevo intervalo el [xm , xf ] y se repite el proceso. b) la funci on en xm es del mismo signo que f(xf ). En tal caso se toma como nuevo intervalo el [xi , xm ] y se repite el proceso. c) f(xm ) = 0 en tal caso no es preciso buscar m as, se ha hallado un pase por cero de la funci on.

El m etodo de la bisecci on termina o bien cuando se halla un punto en el que la funci on vale cero o cuando el intervalo es lo sucientemente peque no. Por ejemplo, si se necesita conocer el pase por cero con dos decimales el m etodo ha de aplicarse hasta que el intervalo tenga una longitud menor o igual a 0.01. En la gura 10.7 se muestra c omo actuar a el m etodo de la bisecci on con la misma funci on de la gura 10.6. Se han representado tres etapas con los pasos descritos anteriormente (indicadas mediante un n umero encuadrado situado en la parte superior de cada gr aca). La longitud del intervalo, que se ha indicado en la parte inferior, disminuye a la mitad en cada etapa con respecto a la anterior. Para ilustrar el m etodo se va a considerar la funci on cos x x. El intervalo en el que existe un pase por cero se obtiene f acilmente recordando que cos (0) = 1, por lo que f (0) = cos (0) 0 = 1 > 0 y por otra parte cos ( /2) = 1, por lo que f ( /2) = cos ( /2) pi/2 = 0 /2 < 0.

214
1

TEMA 10. ALGUNOS PROBLEMAS DE INGENIER IA


2 3

f(x)

f(x)

f(x)

xi

xm

xf

xi

xm

xf

xi xm xf

Figura 10.7: Funcionamiento del m etodo de la bisecci on.

Por tanto el primer intervalo considerado es [xi , xf ] = [0, /2]. El punto medio de este intervalo es xm = (xi + xf )/2 = /4. Al evaluar la funci on se obtiene que f(xm ) = 0.0783 < 0, por lo que se trata del caso b). El nuevo intervalo ha de ser [0, /4]. Repitiendo el proceso varias veces se obtienen los valores que guran en la tabla siguiente: Intervalo [0, /2] [0, /4] [ /8, /4] [3 /16, /4] [7 /32, /4] [15 /64, /4] [15 /64, 31 /128] [15 /64, 61 /256] [15 /64, 121 /512] Punto medio xm /4 /8 3 /16 7 /32 15 /64 31 /128 61 /256 121 /512 245 /1024 Valor de f(xm ) -0.0783 0.5312 0.2424 0.0858 0.0046 -0.0366 -0.0159 -0.0056 -0.0211 Longitud intervalo 1.5708 0.7854 0.3927 0.1963 0.0982 0.0491 0.0245 0.0123 0.0061

La columna de la derecha indica la longitud del intervalo considerado; es decir xf xi . Puede observarse que el valor en cada etapa es la mitad que en la anterior. Esta cantidad tiene gran importancia en el m etodo. Obs ervese que si se toma xm como valor aproximado de x el error cometido no ser a nunca mayor que la longitud del intervalo. Por tanto, si se desea la soluci on aproximada con un decimal exacto esta se puede tomar como 15 /64 (que se obtiene con tan s olo cinco iteraciones); si se precisan dos decimales exactos entonces hay que tomar 245 /1024 (son necesarias nueve iteraciones para ello). La gura 10.8 muestra la funci on f(x) = cos x x. Los c rculos y las l neas verticales indican los valores de xm en las cuatro primeras etapas. Los n umeros que guran encima de los c rculos indican la etapa en la que han sido obtenidos. Puede comprobarse que en la primera etapa se obtiene (por casualidad) un valor muy cercano al paso por cero. Una vez presentado el m etodo es posible enunciar el problema de forma sucinta como: dada

c MRA & JAAR

2010 DISA. ESI. US.


cos(x)x 1.5 1 2 0.5 0 1 0.5 1 1.5 0 y 3 4

215

0.5 x

1.5

Figura 10.8: Ejemplo de uso del m etodo de la bisecci on. una funci on f(x) y un intervalo inicial [xi , xf ] tales que f(xi ) f(xf ) < 0 aplicar el m etodo de la bisecci on hasta que el intervalo resultante tenga una longitud menor que cierto valor dado d. El algoritmo dar a como resultado xm, el punto medio del intervalo nal.

10.6

Supercies

Una supercie z = f(x, y ) denida en un rect angulo [xi , xf ] [yi , yf ] puede representarse mediante un conjunto discreto de alturas medidas en algunos puntos del dominio. Por ejemplo, si se toma una rejilla en el rect angulo con nx ny puntos, las alturas de los puntos (xj , yi ) ser an los valores zij = f (xj , yi ) para i = 1, , ny y j = 1, , nx que se pueden incluir en una matriz Z IRny nx . A modo de ejemplo considere la funci on z = f (x, y ) = x2 +y 2 en el rect angulo [1, 1] [2, 2]. Si se toma una rejilla de ancho 0.5 se obtienen los valores siguientes:

x = {1, 0.5, 0, 0.5, 1} y = {2, 1.5, 1, 0.5, 0, 0.5, 1, 1.5, 2}

216 5.00 4.25 Z= 4.00 4.25 5.00 3.25 2.50 2.25 2.50 3.25

TEMA 10. ALGUNOS PROBLEMAS DE INGENIER IA 2.00 1.25 1.00 1.25 2.00 1.25 0.50 0.25 0.50 1.25 1.00 0.25 0.00 0.25 1.00 1.25 0.50 0.25 0.50 1.25 2.00 1.25 1.00 1.25 2.00 3.25 2.50 2.25 2.50 3.25 5.00 4.25 4.00 4.25 5.00

La gura 10.9 muestra la rejilla en el rect angulo considerado y la supercie z = f(x, y ) calculada en los puntos de la rejilla.
superficie f(x,y) 5 4
rejilla 1.5 1

3 2

0.5 0 0.5 1 1.5 y

1 0 1 0
2 1 0 x 1 2

1 x

Figura 10.9: Ejemplo de uso del m etodo de la bisecci on. Una supercie cualquiera, como por ejemplo la formada por las monta nas y valles del terreno, puede ser representada aproximadamente por una matriz. Usando esta representaci on es posible resolver algunos problemas de ingenier a.

10.6.1

B usqueda de extremos

Dada una matriz de alturas como la descrita en 10.6 con ny las y nx columnas se desea determinar los m aximos y m nimos. El problema es equivalente a buscar las cimas y depresiones de un terreno. Para concretar m as lo expuesto consid erese la supercie mostrada en la gura 10.10 y su correspondiente gr aco de curvas de nivel. Puede observarse que existe m as de una cumbre y m as de una depresi on. El objetivo no es hallar la cumbre m as alta o la sima m as profunda sino indicar en qu e lugares existe alguna de estas caracter sticas del terreno. Para solucionar el problema se puede usar la idea de que una cumbre es un punto del terreno

c MRA & JAAR

2010 DISA. ESI. US.


superficie
55 50 45
25

217

30 20
i

40 35 30 25 20

20

15

10

10

50 40 30 20 10 i 10 30 20 j 40 50

60

15 10
5

5 10 20 30 j 40 50 60

Figura 10.10: Terreno con m ultiples cumbres y simas (izquierda) y mapa con curvas de nivel (derecha). La barra de la derecha indica la correspondencia entre tonos de gris y altura. que sobresale de los puntos vecinos. Este hecho ser a visible en la matriz de alturas pues la cumbre corresponder a a alg un elemento ai,j con la propiedad de ser mayor que sus vecinos. Por ejemplo, en la matriz siguiente 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 2 2 1 1 1 1 2 2 2 2 1 1 1 2 2 2 3 2 2 2 1 2 2 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

hay una sola cumbre, correspondiente al elemento a4,5 . Puede verse que los elementos adyacentes tienen menor valor. Ha de tenerse en cuenta que los vecinos que hay que comprobar son: el de arriba, el de abajo, el de la izquierda, el de la derecha y tambi en los cuatro situados en las diagonales; es decir, arriba a la izquierda, arriba a la derecha, abajo a la izquierda y abajo a la derecha. Los elementos que est an situados en los bordes de la matriz (los de las las primera y u ltima y los de las columnas primera y u ltima) no pueden ser comprobados porque no tienen todos sus vecinos, por ello se dejan fuera del an alisis. El algoritmo para detectar cumbres deber a analizar cada uno de los elementos interiores de

218

TEMA 10. ALGUNOS PROBLEMAS DE INGENIER IA

la matriz y comprobar si se cumple o no la condici on de ser mayor que los vecinos. De forma breve puede enunciarse el problema como: Dada una matriz de alturas z IRny nx con ny las y nx columnas y dos vectores x IRnx e y IRny , hallar las coordenadas (x, y, z ) de los extremos (cimas y depresiones) de la supercie representada por z .

10.7

Transporte

Se dispone de una lista de n aeropuertos y las distancias o tiempos de vuelo entre cada uno de ellos y los dem as. Esa informaci on se ha incluido en una matriz D IRnn siendo dkj la distancia (o tiempo de vuelo) para ir del aeropuerto k al j siguiendo la ruta establecida en cada caso. No todos los trayectos posibles tienen vuelos, por lo que se dispone de otra matriz C IRnn tal que sus elementos indican si existe o no vuelo directo entre dos aeropuertos. Esto se logra haciendo que ckj = 0 si no hay vuelo y que ckj = 1 en caso de que si haya vuelo. Dado un aeropuerto origen ao con ao 1, 2, , n y otro destino ad = ao con ad 1, 2, , n se desea calcular:

La lista de todos los trayectos posibles que parten de ao y que pasan s olo una vez o ninguna por cada uno de los aeropuertos acabando en ad . Distancia total de cada uno de los trayectos anteriores. Trayecto de m nima distancia entre el aeropuerto origen y el aeropuerto de destino.

10.8
10.8.1

Tratamiento de textos
Palabras en orden inverso

El problema consiste en leer una frase del teclado y escribirla luego al rev es. Por ejemplo, si se lee la frase Hola amigo. se ha de escribir en la pantalla .ogima aloH que es la frase escrita de derecha a izquierda.

c MRA & JAAR

2010 DISA. ESI. US.

219

10.8.2

Pal ndromo

Problema Leer una palabra y decidir si es pal ndromo. El nal de la palabra es indicado con el punto. Para ser pal ndromo debe ocurrir que exista un eje de simetr a en la palabra. La palabra puede tener un n umero par o impar de caracteres; en este u ltimo caso el eje de simetr a contendr a el car acter central. Ejemplos: abba, abcba.

10.8.3

Mensaje oculto

Una frase puede cambiarse para que resulte irreconocible. Una forma muy simple consiste en cambiar cada car acter por el siguiente del alfabeto. Por ejemplo, la palabra IBM se convierte en HAL. El programa que se desea construir ha de codicar, mediante esta t ecnica simple, una frase que se leer a del teclado. Considere que la frase le da consiste u nicamente en una palabra formada por letras (sin n umeros ni otros caracteres). Para simplicar no tenga en cuenta el caso de letras con tilde o di eresis.

10.8.4

Mensaje oculto II

Se puede expandir el programa anterior para que opere tambi en con frases que contienen caracteres que no son letras, tales como los n umeros y signos de puntuaci on. Los u nicos caracteres que se han de modicar son las letras. Por ejemplo, si la frase que se introduce es Quedamos a las 6h? el resultado ha de ser Rvfebnpt b mbt 6i? Para simplicar no tenga en cuenta el caso de letras con tilde o di eresis.

10.8.5

Descifrar mensaje

Se trata ahora de resolver el problema inverso: dado un mensaje codicado proporcionar la frase original.

220

TEMA 10. ALGUNOS PROBLEMAS DE INGENIER IA

El programa ha de leer del teclado una frase codicada, como por ejemplo Rvfebnpt b mbt 6i?. Como resultado el programa ha de escribir en la pantalla el mensaje sin codicar Quedamos a las 6h?. Para simplicar no tenga en cuenta el caso de letras con tilde o di eresis.

10.8.6

Mensaje oculto II

En los dos problemas anteriores se ha ignorado el caso de la letra z. Esta letra plantea un problema para ser codicada pues no existe otra letra posterior. Una forma de resolver este problema es asignar de forma articial la a como letra siguiente a la z. De este modo una frase como zona 3 se codica en apob 3. Para simplicar no tenga en cuenta el caso de letras con tilde o di eresis.

10.8.7

Pase a may usculas

Se desea cambiar una frase de forma que todas las letras queden en may usculas. El programa leer a una frase del teclado y escribir a como resultado la misma frase pero con las letras cambiadas de forma que todas est en en may usculas. Por ejemplo, la frase Tengo clase a las 16h en la planta E-2 ha de transformarse en TENGO CLASE A LAS 16H EN LA PLANTA E-2. Obs ervese que las letras que ya estaban en may usculas se quedan igual. Los caracteres que no son letras no se ven afectados. Para simplicar no tenga en cuenta el caso de letras con tilde o di eresis.

10.9
10.9.1

Tratamiento de archivos
Agenda telef onica

Se desea crear una agenda telef onica. Esta agenda consiste en un archivo de texto en el que aparecen nombres, apellidos y n umeros de tel efono. Esta tarea puede realizarse con la libreta de notas, pero en lugar de eso queremos desarrollar un programa en MATLAB que recoja los datos de la agenda y los introduzca en un archivo.

c MRA & JAAR

2010 DISA. ESI. US.

221

El programa ha de preguntar al usuario el nombre, apellidos y n umero de tel efono de una persona. Posteriormente preguntar a si desea a nadir otra persona a la agenda o grabar los datos. Si escoge a nadir el programa ha de volver a preguntar el nombre, apellidos y n umero de tel efono, en caso contrario el programa escribir a los datos en un archivo de texto. El archivo de texto ha de tener el formato siguiente: los dos primeros caracteres son un n umero de orden, a continuaci on viene un espacio. Los 15 caracteres siguientes se reservan para el nombre. A continuaci on debe aparecer una coma. Los 30 espacios siguientes se dejan para los dos apellidos. Despu es ha de aparecer la palabra Tel y un espacio en blanco. Finalmente se escribe el tel efono y se pasa a la l nea siguiente. En el recuadro siguiente se puede observar un ejemplo de dicho archivo de texto.

01 02 03 04

Pedro, Ana, Juan, Antonio,

P erez Repitre Regues D az Borda Ruiz Garc a Wrkczy

Tel Tel Tel Tel

56 11 34 21

90 32 43 32

02 45 78 43

10.9.2

Agenda telef onica II

Para consultar la lista de tel efonos confeccionada con el programa anterior es posible usar la libreta de notas. En lugar de eso se quiere crear un programa en MATLAB que lea el archivo y presente en la pantalla la informaci on que contiene. El programa no recibe dato alguno. Su misi on consiste en leer el archivo que contiene la agenda y mostrar en la pantalla la lista de nombres, apellidos y tel efonos exactamente en la misma forma en la que aparece en el archivo.

10.9.3

Agenda telef onica III

En una agenda es frecuente que haya que a nadir nuevos tel efonos o borrar alguno existente . Se ha de realizar un programa que lea el archivo (creado con el programa de 10.9.1), presente su contenido en pantalla y pregunte al usuario si desea a nadir o eliminar algo. En caso de que se desee a nadir el programa preguntar a al usuario los datos del mismo modo que en el programa de 10.9.1. Si se desea eliminar una entrada de la agenda (una l nea de datos) el programa preguntar a qu e n umero de l nea se desea eliminar. El programa concluye escribiendo un nuevo archivo con los cambios realizados.

c MRA & JAAR

2010 DISA. ESI. US.

223

Bibliograf a

B asica P. Anasagasti, Fundamentos de los computadores. Paraninfo, 1990. M. R. Arahal, Fundamentos de inform atica. Escuela Superior de Ingenieros, Universidad de Sevilla, 1999. T. Aranda, Notas sobre MATLAB. Universidad de Oviedo, Servicio de Publicaciones, 1999. D. C. Lay, Algebra Lineal y sus aplicaciones. Pearson,1999. Avanzada J. Mathews, M etodos num ericos con MATLAB. Prentice Hall, 2000. C. P erez L opez, Matem atica informatizada con MATLAB, Ra-Ma, 1996. K. Sigmon , Introducci on a MATLAB. University of Florida, 1992. (Traducci on de Celestino Montes. Escuela Superior de Ingenieros, Universidad de Sevilla). M. J. Soto Prieto, Algebra lineal con MATLAB y MAPLE. Prentice-Hall Internacional, 1995. G. Brassard y P. Bratley, Fundamentos de algoritmia. Prentice Hall, 1997.

Vous aimerez peut-être aussi