Report about FORTRAN90 calculation based in the speed of fall of a parachute. Mathematical resolution and implementantion of several methods. Numerical Methods subject at Universidad de Córdoba (Spain) in 2004.
PIAR v 015. 2024 Plan Individual de ajustes razonables
Velocidad de descenso de un paracaídas
1. Javier García Molleja Métodos Numéricos
1
VELOCIDAD DE DESCENSO DE UN PARACAÍDAS
DEFINICIÓN DEL PROBLEMA
Cuando un objeto se mueve a través de un fluido, tal como el aire o el agua, el fluido
ejerce una fuerza de resistencia o fuerza de arrastre que tiende a reducir la velocidad del
objeto. Esta fuerza depende de la forma del objeto, de las propiedades del fluido y de la
velocidad del objeto respecto al fluido. A diferencia de la fuerza de rozamiento, la fuerza de
arrastre crece con la velocidad del objeto, Para pequeñas velocidades es aproximadamente
proporcional a la velocidad del objeto; para velocidades superiores es casi proporcional al
cuadrado de la velocidad.
Consideremos un objeto que cae libremente desde el reposo bajo la influencia de la
gravedad supuesta constante. Ahora agreguemos una fuerza de arrastre de magnitud cvn
, en
donde c es una constante que depende de la forma del objeto y de las propiedades del aire y el
exponente n es aproximadamente igual a 1 a bajas velocidades y aproximadamente 2 para
altas velocidades. Así tenemos una fuerza hacia abajo constante, mg, y una fuerza hacia arriba
cvn
. Si tomamos positiva la dirección hacia abajo, resulta según la segunda ley de Newton
Σ Fy = mg – cvn
= may
mg – cv
n
= m(dvy/dt)
g – cv
n
/m = dvy/dt
dt = dvy/(g – cvn
/m)
∫dt =∫dvy(g – cv
n
/m)
t = -m/c Ln (1 – vn
c/gm)
vn
= gm/c (1 – e-ct/m
)
Para t = 0, cuando se deja caer el objeto, la velocidad es nula, de modo que la fuerza
de arrastre es cero y la aceleración g es hacia abajo. Cuando la velocidad del objeto crece, la
fuerza de arrastre se incrementa y la aceleración es menor que g. Eventualmente, la velocidad
se hace suficientemente grande para que la fuerza de arrastre cvn
sea igual a la fuerza de
gravedad mg, de modo que la aceleración se hace cero. El objeto continúa entonces
moviéndose a la velocidad constante vl, llamada velocidad límite. Haciendo a = 0 resulta de la
ecuación dinámica
cvl
n
= mg
Y por tanto, resulta para la velocidad límite
vl = (mg/c)
1/n
Cuanto mayor sea la constante c, menor es la velocidad límite.
MÉTODO DE RESOLUCIÓN
Si una partícula se mueve bajo la influencia de una fuerza constante, su aceleración es
constante y podemos determinar su velocidad y posición a partir de las fórmulas
correspondientes a la cinemática. Sin embargo, consideremos una partícula que se mueva a
través del espacio en donde la fuerza que actúa sobre ella, y por tanto, su aceleración,
depende de su posición y velocidad. La velocidad y la aceleración de la partícula en un instante
determinan su posición y velocidad en el instante siguiente y estas magnitudes determinan su
aceleración en ese instante. La posición, velocidad y aceleración de un objeto cambian
continuamente con el tiempo. Podemos hacer una aproximación reemplazando las variaciones
continuas del tiempo por pequeños intervalos de tiempo de duración ∆t. La aproximación más
simple es suponer constante la aceleración durante cada intervalo. Esta aproximación se
denomina método de Euler. Si el intervalo de tiempo es suficientemente pequeño, el cambio de
aceleración durante el intervalo será pequeño y podrá despreciarse.
Sean x0, v0, a0 los valores conocidos de la posición, velocidad y aceleración de una
partícula en un tiempo inicial t0. Si suponemos que la aceleración es constante durante ∆t, la
velocidad en el instante t1 = t0 + ∆t viene dada por
v1 = v0 + a∆t
De modo semejante, si despreciamos el cambio de velocidad durante el intervalo de
tiempo, la nueva posición viene dada por
x1 = x0 + v0∆t
2. Javier García Molleja Métodos Numéricos
2
Existen otros métodos de integraciones numéricas más exactas, pero de uso más
complejo. Por ejemplo, la exactitud aumenta si a y v se reemplazan por los valores en el punto
medio del intervalo, en lugar de usar los correspondientes al comienzo del intervalo.
Los nuevos valores v1, y x1 se utilizan ahora para calcular la nueva aceleración a1 a
partir de la segunda ley de Newton y después utilizar a1 para el siguiente intervalo y calcular así
v2 y x2:
v2 = v1 + a1∆t
x2 = x1 + v1∆t
En general, la conexión entre la posición y la velocidad en el tiempo tn y en el tiempo
t n+1 = tn + ∆t viene dada por
V n+1 = vn + an∆t
X n+1 = xn + vn∆t
Para determinar la velocidad y posición en cierto momento t, dividiremos el intervalo de
tiempo t – t0 en un gran número de intervalos más pequeños ∆t y aplicaremos las ecuaciones
de recurrencia comenzando por el tiempo inicial t0. Esto supone un gran número de cálculos
simples y repetitivos que se realizan fácilmente mediante un ordenador. La técnica de dividir en
intervalo de tiempo en pequeñas etapas y calcular la aceleración, la velocidad y la posición en
cada etapa utilizando los datos de la anterior, se denomina integración numérica.
Para ilustrar el uso de los métodos numéricos, consideremos un problema en el cual un
paracaidista de apertura manual se lanza desde el reposo a cierta altura bajo la influencia de la
gravedad y una fuerza de arrastre que es proporcional al cuadrado de la velocidad v y a la
distancia x recorrida en función del tiempo.
La ecuación que describe el movimiento de un cuerpo de masa m que se deja caer
desde el reposo es la segunda ley de Newton con n = 1
Σ Fy = mg – cv1
= may
La aceleración es, por tanto,
a = g – (c/m) v
Es conveniente escribir la constante b/m en función de la velocidad límite vl. Haciendo
a = 0 en esta última ecuación obtenemos
0 = g – (b/m) vl
b/m = g/vl
Sustituyendo b/m por g/vl en la ecuación de aceleración resulta
a = g (1 – v/vl)
En el caso de que realicemos la integración para conocer la expresión de la velocidad
sin conocer la aceleración, tendremos el siguiente resultado:
v = gm/c (1 – e-ct/m
)
Para resolverla numéricamente, necesitamos valores numéricos para g y vl, m, t. En
nuestro caso queremos determinar el coeficiente de arrastre, por lo iniciaremos por fijar un
valor de c0 y variarlo en cada iteración. Para que el tratamiento sea análogo a los métodos
numéricos estudiados será necesario dar origen a un programa que calcule un intervalo de diez
unidades en el que podría estar la solución. Para ello, calcularemos los valores
correspondientes a los extremos del intervalo y veremos si cambian de signo, de ser así es el
momento de aplicar el siguiente programa: el método de la bisección, por el que encontraremos
un valor bastante aproximado a la solución verdadera. Si no es el intervalo adecuado el
programa deberá pasar inmediatamente al siguiente y así de manera sucesiva, dando valores
contiguos a la variable que representa el coeficiente de arrastre.
Una vez obtenida la solución aproximada es obligado aplicar el método de Newton,
encontrando una solución aún más próxima debido a su rápida convergencia. Los criterios de
parada que se utilizarán serán los habituales (en el caso de número de iteraciones) o los
indicados por la sesión (en el caso de la tolerancia).
Es de suponer que el problema está bien condicionado, ya que la función de la que
partimos es una ley física bastante contrastada. También podemos admitir la existencia y
unicidad de la solución, puesto que ha sido encontrada por el primer programa diseñado.
También sería muy importante estar prevenidos por los posibles errores de redondeo (ya que
los de truncamiento son inherentes a la ley y además son bastante despreciables): el
3. Javier García Molleja Métodos Numéricos
3
argumento de la exponencial, al ser tan elevado, podría desbordarse por abajo y no dar la
solución correcta. Si estos errores son encontrados deberíamos encontrar otros procesos que
los eliminasen (como utilizar la doble precisión para manejar números reales).
En esta ecuación hemos omitido las unidades, así que supondremos que estamos
utilizando el Sistema Internacional. Entonces, la unidad de v es el metro por segundo, la de g el
metro por segundo al cuadrado, la de m el kilogramo, la de t el segundo y la de c el kilogramo
por segundo. Si elegimos los datos de la sesión, lo que en realidad haremos será dividir el
intervalo principal en una gran cantidad de intervalos más pequeños. Utilizando los programas
de cálculo en el ordenador podremos tener una idea intuitiva de la solución, tan exacta como
nos permita la tolerancia.
La exactitud de estos cálculos puede variar según la tolerancia permitida, si ésta es
muy alta se alejará del valor teórico exacto en un porcentaje, que será inaceptable si se supera
el 10%. Estas son nuestras estimaciones sobre la exactitud de los cálculos originales.
Como la diferencia de la c calculada con la verdadera disminuye conforme baja la
tolerancia, parece lógico que sería mejor utilizar intervalos muy pequeños. Sin embargo, hay
dos razones para no usar tolerancias muy pequeñas. En primer lugar, cuanta más pequeña es
la tolerancia, mayor es el número de cálculos requeridos y mayor el tiempo empleado por el
ordenador. En segundo lugar, el ordenador mantiene sólo un número de dígitos en cada etapa
del programa, de tal modo que en cada etapa hay un error de redondeo. Estos errores de
redondeo se suman y por tanto, crecen con el número de cálculos. Al principio, cuando
disminuíamos la tolerancia, la exactitud se mejoraba porque c se aproximaba cada vez más al
valor c verdadero del intervalo. Sin embargo, si seguimos disminuyendo la tolerancia, los
errores de redondeo se acumulan y la exactitud del cálculo disminuye. Una buena regla
práctica es no utilizar más de unos 10
4
ó 10
5
decimales en la integración numérica típica.
SEUDOCÓDIGOS
INTERVALO DE SOLUCIÓN
PROGRAMA Intervalo
SIN CRITERIO IMPLÍCITO
REAL*8::w, c
c = 1
w = f(c)*f(c+10)
HACER MIENTRAS (w>0)
c = c +1
w = f(c)*f(c+10)
FIN HACER
IMPRIMIR*,”La solución está entre”, c,”y”, c+10
CONTIENE
FUNCIÓN f(c) RESULTADO (res)
REAL*8::c, res, m, g, t, v
m = 50.0
g = 9.81
t = 300.0
v = 30.0
res = (g*m/c)*(1-(1/EXP(c*t/m)))-v
FIN FUNCIÓN f
FIN PROGRAMA Intervalo
4. Javier García Molleja Métodos Numéricos
4
BISECCIÓN DE BOLZANO
PROGRAMA Bolzano
SIN CRITERIO IMPLÍCITO
REAL*8:: a, b, c, delta, epsilon, u, v, w, e
ENTERO:: m, k
LLAMAR Datos
u = f(a)
v = f(b)
e = b-a
IMPRIMIR*,”Los extremos son”, a,”y”, b, &
“de valores”, u,”y”, v,”respectivamente.”
SI ((u*v) <0) ENTONCES
PARA k = 1, m
e = e/2
c = a+e
w = f(c)
SI ((ABS (w) <epsilon).O. (e < delta)) ENTONCES
IMPRIMIR*,”La raíz es”, c,”encontrada en la”, &
“iteración”, k,”en el intervalo”, e,”con valor”, w
PARAR
SI NO
SI ((w*u) <0) ENTONCES
b = c
v = w
SI NO
a = c
u = w
FIN SI
FIN SI
FIN PARA
IMPRIMIR*,”El método falló en la iteración”, m
FIN SI
CONTIENE
SUBRUTINA Datos
IMPRIMIR*,”Puntos extremos”
LEER*, a, b
IMPRIMIR*,”Tolerancia de amplitud de intervalo.”
LEER*, delta
IMPRIMIR*,”Tolerancia para valor de función.”
LEER*, epsilon
IMPRIMIR*,”Número de iteraciones.”
LEER*, m
FIN SUBRUTINA Datos
FUNCIÓN f(c) RESULTADO (res)
REAL*8::c, res, m, g, t, v
m = 50.0
g = 9.81
5. Javier García Molleja Métodos Numéricos
5
t = 300.0
v = 30.0
res = (g*m/c)*(1-(1/EXP(c*t/m)))-v
FIN FUNCIÓN f
FIN PROGRAMA Bolzano
NEWTON-RAPHSON
PROGRAMA Newton_Raphson
SIN CRITERIO IMPLÍCITO
REAL*8::x0, x1, epsilon, num, den, error
ENTERO::k, m
LLAMAR Datos
PARA k =1, m
num = f(x0)
den = df(x0)
x1 = x0 – (num/den)
error = ABS ((x1-x0)/x0)
SI (error < epsilon) ENTONCES
IMPRIMIR*,”La solución es”, x1,”situada en el intervalo”, error, &
“encontrada en la iteración”, k
PARAR
SI NO
x0 = x1
FIN SI
FIN PARA
IMPRIMIR*,”El método falló después de”, m,”iteraciones.”
CONTIENE
SUBRUTINA Datos
IMPRIMIR*,”Aproximación inicial”
LEER*, x0
IMPRIMIR*,”Tolerancia.”
LEER*, epsilon
IMPRIMIR*,”Número máximo de iteraciones”
LEER*, m
FIN SUBRUTINA Datos
FUNCIÓN f(c) RESULTADO (res)
REAL*8::c, res, m, g, t, v
m = 50.0
g = 9.81
t = 300.0
v = 30.0
res = (g*m/c)*(1-(1/EXP(c*t/m)))-v
FIN FUNCIÓN f
6. Javier García Molleja Métodos Numéricos
6
FUNCIÓN df(c) RESULTADO (res2)
REAL*8::c, res, m, g, t
m = 50.0
g = 9.81
t = 300.0
res2 = (g/c)*(-(m/c) + ((m/c) + t)*(1/EXP(c*t/m)))
FIN FUNCIÓN df
FIN PROGRAMA Newton_Raphson
PROGRAMACIÓN
Los programas utilizados para la consecución de la sesión se adjuntarán al final en una
copia en soporte magnético para compilarlos con el lenguaje FORTRAN90 para verificar los
resultados obtenidos.
JUEGO DE DATOS
Los datos que se utilizan en esta práctica son los propuestos y con ellos se calculará
de manera detallada el valor del coeficiente de arrastre:
⊗ Velocidad: v = 30 m/s
⊗ Aceleración de la gravedad: g = 9.81 m/s2
⊗ Masa: m = 50 kg
⊗ Tiempo: t = 300 s
⊗ Tolerancias: 0.01
⊗ Número de iteraciones máximo: 100
⊗ Valores extremales: los calculados con el primer programa.
⊗ Valor arbitrario: el obtenido con el método de la bisección.
RESULTADOS
Al ejecutar el programa que determinaba el intervalo en donde se encuentra la solución
se ha recibido el siguiente mensaje: La solución estará entre 7 y 17.
En el momento de utilizar el programa de la dicotomía e introducir los valores pedidos
llegamos a leer el mensaje del programa ejecutable: Los valores extremales son 7 y 17, que
dan un valor de 40.0714315686907, -1.14705758936265, respectivamente, con una tolerancia
de 10-2
. La raíz es 16.345703125 conseguida en la iteración 10, situada en el intervalo
9.765625 10-3
con un valor 7.887530432249434 10-3
.
Para refinar la solución obtenida por el anterior método utilizamos el método de
Newton-Raphson, en el que al ejecutar el programa podemos ver: La raíz el
16.3500006993611 con error 6.908937245445475 10-8
, encontrado en la iteración 2.
A continuación discutiremos de manera experimental si las ecuaciones estaban bien
condicionadas, para ello daremos una lista de datos y tolerancias para ver si las soluciones
obtenidas son parecidas entre sí.
Intervalo de solución
Extremo inicial Extremo final
7 17
Bisección de Bolzano
Coef. De arrastre Tolerancia Iteración Error
16.3499755859375 1E-4 14 6.103515625E-4
16.3500006943941 1E-8 27 7.450580596293828E-8
7. Javier García Molleja Métodos Numéricos
7
Método de Newton-Raphson
Valor inicial Coef. De arrastre Tolerancia Iteración Error
16.3499755859375 16.3500006993226 1E-4 1 1.5359891493641E-6
16.3500006993612 1E-8 2 2.359132156632576E-12
16.3500006943941 16.3500006993612 1E-4 1 3.037959017878663E-3
16.3500006993612 1E-8 1 3.037959017878663E-10
DISCUSIÓN DE RESULTADOS
La sesión en la que hemos trabajado ha resultado ser grata en el sentido del uso de
métodos numéricos sencillos y fáciles de manejar, pero con unos criterios de convergencia y
órdenes muy exigentes, por lo que la posibilidad de error es mínima. Además, el manejo de la
ecuación de caída libre nos ha permitido tener un conocimiento más exacto sobre el uso de la
precisión a la hora de declarar variables, que en los cálculos en los que entraran, tendrían la
posibilidad de desborde hacia abajo. Todo esto nos ayuda en el caso de una comprensión más
eficaz sobre el método en el que estemos trabajando. También se nos da la posibilidad de
diseñar nuestro propio programa para encontrar el intervalo donde se encuentra la solución,
cosa útil para poner en práctica la capacidad de síntesis del programador.
El tema utilizado es de gran relevancia, ya que el uso de paracaídas es bastante
utilizado en la industria aeronáutica, ya como dispositivo de salvamento, ya como parte de un
proyecto espacial, por lo que la relevancia y el rigor de la Física es requerido.
A la hora de trabajar con el primer programa es necesario tener en cuenta que el
extremo del intervalo más alejado del origen llega a un orden de -43, por lo que se requiere un
manejo bastante importante de la precisión. Sin embargo, este valor es tan pequeño que
apenas afecta a la solución.
En el segundo programa tenemos el inconveniente de su lenta convergencia y la
posible acumulación de errores de redondeo. Este aspecto queda anulado si lo consideramos
como una primera aproximación en nuestros cálculos. También la magnitud del intervalo no es
muy acertada, ya que por lógica la solución estará entre el extremo más alejado y el
inmediatamente anterior (ya calculado).
Para utilizar el último método se utiliza la solución del anterior. Aquí se ha utilizado una
tolerancia de 0.000001, ya que se consiguen mejores resultados sin muchas iteraciones con
este valor. Si la tolerancia es el doble de baja se obtiene una solución muy parecida, que sólo
difiere de ésta en la última cifra decimal y el intervalo de error es casi la mitad de éste. Por
tanto, parece más conveniente utilizar esta tolerancia que la definida en la sesión.
BIBLIOGRAFÍA
P. A. Tipler: “Física para la ciencia y la tecnología, volumen 1”; editorial Reverté (Barcelona, 6ª
edición).
Cruz Soto J. L. y Ventura Soto S.: “Programación científica”; licenciatura en Física (Universidad
de Córdoba, 2003).