UNIVERSIDAD DE LA COSTA
DEPARTAMENTO DE CIENCIAS BÁSICAS
ÁREA DE ECUACIONES DIFERENCIALES
FACULTAD DE INGENIERÍA
“Flujos de calor en estado estacionario: comparación de
resultados con el método Runge-Kutta.”
Ecuaciones Diferenciales
Resumen simple para la solución de las ecuaciones
fundamentales, trascendiendo así, sin mayores
En el presente trabajo se busca realizar una
detalles, hacia la solución de otras aplicaciones
solución rápida y precisa a una ecuación
más complejas. El propósito de este trabajo es dar
diferencial ordinaria aplicada en el flujo de calor
en estado estacionario por medio de un programa a conocer una forma detallada del procedimiento
basado en el método de solución de E.D.O. de de solución de las ecuaciones fundamentales de
Runge-Kutta. El algoritmo de solución fue masa, cantidad de movimiento y energía, que se
programado en el software Visual Studio 2013 y utilizan para caracterizar los procesos de
se comprobó que con este programa se reduce el transferencia de calor.
tiempo en un x% en comparación con el método
analítico. En el siguiente trabajo se presentan dos formas de
solución a la ecuación de cantidad de transferencia
Abstract. de energía; la primera es una solución de la
ecuación de manera matemática-analítica y la
In this paper seeks and accurate an ordinary
segunda, una solución en donde se emplea un
differential equation applied to the heat flow in
steady state by a method based on the solution procedimiento de solución de ecuaciones
E.D.O. a quick solution program Runge-Kutta. diferenciales lineales basado en el método de
The solution algorithm was programmed in Runge-Kutta. El algoritmo de solución fue
Visual Studio C ++ 2015 software and it was programado en el software Visual Studio 2013
found that this program time is reduced by x% que nos permite determinar la transferencia de
compared to the analytical method. calor utilizando nuestras ecuaciones de cuarto
orden.
1. Introducción
Objetivos.
Los procesos de transferencia de calor son de gran
proyección para la industria y otros sectores de la Objetivo General
ingeniería, ya que a sus diversas aplicaciones, por
ejemplo , los aire acondicionados, los procesos de Diseñar un programa capaz de solucionar
la ecuación diferencial de flujo de calor
ebullición en calderas, la evaporación de
en estado estacionario aplicando el
refrigerantes en equipos de refrigeración, la
método numérico de Runge-Kutta.
refrigeración de equipos electrónicos, los procesos
de secado de alimentos, el aire acondicionado y el
confort térmico, los sistemas biológicos, entre
otras, en los cuales la transferencia de calor juega Objetivos específicos:
un papel muy importante para el mejoramiento y Demostrar que la interfaz del programa
el desempeño que tienen los procesos de es fácil de usar para cualquier estudiante
conversión de energía. que conozca el método de solución
aplicado
Algunos autores no miran el tema desde una
perspectiva didáctica con una metodología más
1
UNIVERSIDAD DE LA COSTA
DEPARTAMENTO DE CIENCIAS BÁSICAS
ÁREA DE ECUACIONES DIFERENCIALES
FACULTAD DE INGENIERÍA
2. Justificación.
Pregunta problema En la actualidad, existe una gran variedad de
¿Es posible solucionar de manera fácil, rápida y programas capaces de solucionar ecuaciones
precisa una Ecuación Diferencial Ordinaria de diferenciales ordinarias con gran exactitud, pero
cuarto orden? estos cuentan con un problema: tienen una interfaz
muy poco entendible para usuarios que usan este
programa por primera vez.
Con lo cual, buscamos diseñar un programa con
una interfaz simple y que por medio del método
de Runge-Kutta, sea capaz de resolver ecuaciones
diferenciales ordinarias.
3. Marco teórico:
Lenguaje de programación:
Un lenguaje de programación es una herramienta
que nos permite comunicarnos e instruir a la
computadora para que realice una tarea específica.
Cada lenguaje de programación posee una sintaxis
y un léxico particular, es decir, forma de escribirse
que es diferente en cada uno por la forma que fue
creado y por la forma que trabaja su compilador
para revisar, acomodar y reservar el mismo
programa en memoria.
Lenguaje C++:
C++ es un lenguaje de programación creado por
Bjarne Stroustrup en 1983, este lenguaje está
orientado a objetos que toma la base del lenguaje
C y le agrega la capacidad de abstraer tipos como
en Smalltalk.
La intención de su creación fue el extender al
exitoso lenguaje de programación C con
mecanismos que permitieran la manipulación de
objetos; Posteriormente se añadieron facilidades
de programación genérica, que se sumó a los otros
dos paradigmas que ya estaban admitidos, Por
esto se suele decir que el C++ es un lenguaje de
programación multiparadigma
Método de Runge-kutta:
2
UNIVERSIDAD DE LA COSTA
DEPARTAMENTO DE CIENCIAS BÁSICAS
ÁREA DE ECUACIONES DIFERENCIALES
FACULTAD DE INGENIERÍA
Los métodos de Runge-Kutta son una serie de
métodos numéricos usados para encontrar
aproximaciones de las soluciones de ecuaciones
diferenciales y sistemas de ecuaciones Figura 4. Ecuación Runge-Kutta de segundo orden.
diferenciales, lineales y no lineales.
Métodos lineales a un paso: En dicho método el error es de la forma
e ≤ Ch2 y por tanto el método del punto medio es
Son métodos numéricos que, para avanzar un de orden 2.
paso, sólo dependen del paso anterior, es decir el
paso n+1 solo depende del paso n o, con más Observación: El número de veces que se evalúa la
precisión, son métodos de la forma: función en cada paso del método es 2, número de
etapas: 2.
Runge-kutta estándar de orden 4
(Runge-Kutta de orden 4):
Figura 1. Ecuación Runge-Kutta de primer orden.
Donde xn is a Rn vector, tn es la variable
independiente, h el tamaño del paso, y F es una
función vectorial (posiblemente no lineal) xn, tn,
h, ie.
Figura 2. Ecuación Runge-Kutta de primer orden. Figura 5. Ecuaciones de Runge-Kutta.
Ahora el error es de la forma e ≤ Ch4 y por tanto
Nótese que lo que tenemos es en realidad un el método es de orden 4
sistema de n ecuaciones.
Observación: El número de veces que se evalúa la
El método de Euler (Runge-Kutta de función en cada paso del método es 4, número de
orden 1): etapas: 4.
Gráficas del error para estos métodos:
Gráfica en escala Logarítmica error frente al
tamaño de paso de los 3 métodos que veremos
Figura 3. Ecuación Runge-Kutta de primer orden.
aquí:
En dicho método el error es de la forma e ≤ Ch y En rojo el método de Euler.
por tanto el método de Euler es de orden 1. En verde el método del Punto medio de orden
2.
El método del punto medio (Runge- En negro el R/k Clásico de orden 4.
Kutta de orden 2):
3
UNIVERSIDAD DE LA COSTA
DEPARTAMENTO DE CIENCIAS BÁSICAS
ÁREA DE ECUACIONES DIFERENCIALES
FACULTAD DE INGENIERÍA
Obsérvese la diferencia de pendiente, que aumenta
en función del orden del método. Como otro ejemplo se considera un tubo de
material uniforme, cuyo corte transversal aparece
en la figura.
Figura 8 Corte transversal a tubo de material
uniforme.
Se supone que la parte exterior se mantiene a 80ºC
Figura 6. Grafica de error del método. y la interna a 40ºC.
Flujos de calor: Habrá una superficie (línea punteada) en la cual
cada punto estará a 60ºC. Sin embargo, ésta no
Considere una pieza de material de longitud está en la mitad entre las superficies interna y
indefinida acotada por dos planos paralelos A y B, externa.
según la figura, suponiendo que el material es
uniforme en todas sus propiedades, por ejemplo, Líneas paralelas a A y en un plano perpendicular a
calor específico, densidad, etc A (figura de la pared) se llaman líneas
isotérmicas.
Considere pequeñas porciones de dos superficies
isotérmicas contiguas (Figura 3.26) separadas por
una distancia . Asuma que la temperatura
correspondiente a la superficie es , y la
correspondiente a es . Llame la diferencia de
temperatura .
Experimentalmente se encuentra que la cantidad
Figura 7 Pieza de longitud indefinida, acotada por
dos planos, A y B de calor que fluye de a por unidad aérea y
por unidad de tiempo es aproximadamente
Considerando que los planos A y B se mantienen proporcional a . La aproximación llega a
a 50º C y 100ºC, respectivamente, todo punto en
la región entre A y B alcanza cierta temperatura ser más precisa a medida que (y desde luego
que no cambia posteriormente. Así todos los
puntos en el plano C entre A y B estarán a 75ºC, y ) se hace más pequeño. En el caso límite a
en el plano E a 90ºC. Cuando la temperatura en medida que A lo cual
cada punto de un cuerpo no varía con el tiempo
decimos que prevalecen las condiciones de estado se llama el gradiente de U (tasa de cambio de U en
estacionario o que tenemos un flujo de calor en la dirección normal a la superficie o curva
estado estacionario. isotérmica). Si H es la cantidad de flujo de calor
4
UNIVERSIDAD DE LA COSTA
DEPARTAMENTO DE CIENCIAS BÁSICAS
ÁREA DE ECUACIONES DIFERENCIALES
FACULTAD DE INGENIERÍA
por unidad de área y unidad de tiempo, tomamos retorna ningún valor, simplemente los escribe en
como nuestra ley física: pantalla con un formato deseado, en este caso, se
ayuda de la función de precisión decimal y de la
función que se encarga del espaciado llamada
setw(), y se logra armar una función que funciona
como tabla en la que se muestran los valores de i,
x, y. por último y lo más importante, es la función
main que es la que se encarga de llamar a las
demás funciones y procedimientos antes descritos,
Si deseamos considerar a U como una cantidad también se encarga de tomar los valores, en ella se
vectorial (teniendo dirección y magnitud), nuestro realiza la mayoría de procesos de cálculo y llama
razonamiento es el siguiente. Considere como a la función de representación de datos, y llama a
positiva la dirección de a . Si es sí misma para repetir el proceso en caso de ser
necesario.
positiva, entonces U aumenta y, por tanto,
debemos tener . Así, el calor realmente El seudocódigo C++ del programa es el siguiente:
fluye de a (de mayor a menor temperatura); #include <iostream>
#include <math.h>
esto es, el flujo de calor está en la dirección #include <iomanip>
#define _USE_MATH_DEFINES
negativa. Similarmente, si es negativa, U # define M_PI 3.14159265358979323846 /* pi */
disminuye, , y el flujo es de a ; esto using namespace std;
es, el flujo de calor está en la dirección positiva. float f(float r, float U) { // esto es lo que
simula evaluar la funcion
La dirección del flujo de’ calor puede tenerse en return -680 / (M_PI*r); /// aqui se
cuenta por un signo menos en (1); esto es, escribe la ecuacion
}
void resultado(float r, float U, int i) {
// esta funcion simula la tabla con
La cantidad de calor por unidad de tiempo que setw como las tabulaciones
fluye a través de un área A está dada por: cout.precision(5);
cout << setw(10) << (i) << setw(15) <<
r << setw(15) << U
<< endl;
La anterior constante de proporcional K depende void main() {
del material usado y se llama la conductividad int r = 0;
térmica. La cantidad de calor se expresa en float x0, y0, xf, h, k1, k2, k3, k4;
calorías en el sistema cgs, y en unidades térmicas int n, i;
británicas, Btu, en el sistema pls.
cout <<
"---------------------------------------------
---------" << endl;
4. Diseño del programa. cout << "Metodo de Runge - Kutta (use
punto para decimal) " << endl;
Por medio de la representación en una función del cout <<
"---------------------------------------------
lenguaje C++, se escribe la ecuación para ---------" << endl << endl;
evaluarla en los valores x y, esa función ya cout << "Digite el valor de r1: ";
descrita contiene la ecuación diferencial en cin >> x0;
términos de (x,y) y para su notación en cout << "Digite el valor de U1: ";
cin >> y0;
programación seria F(x,y), también para el cout << "Digite el valor de r2: ";
resultado se utiliza una función pero esta no
5
UNIVERSIDAD DE LA COSTA
DEPARTAMENTO DE CIENCIAS BÁSICAS
ÁREA DE ECUACIONES DIFERENCIALES
FACULTAD DE INGENIERÍA
cin >> xf; un radio exterior de 20 cm. La superficie interna
cout << "Digite el numero de pasos a
se mantiene a 200 C y la superficie exterior se
emplear: (debe ser entero) ";
cin >> n; mantiene a 50ª C.
h = (xf - x0) / n; A. Encuentre la temperatura como una
cout << endl; función de la distancia del eje común de
cout.precision(5); los cilindros concéntricos.
cout << setw(10) << "I" << setw(15) <<
"Xi" << setw(15) << "Yi" << endl;
B. Encuentre la temperatura cuando r=15
cout << setw(10) << "-" << setw(15) << cm.
"--" << setw(15) << "--" << endl;
cout << setw(10) << "0" << setw(15) <<
x0 << setw(15) << y0 << endl;
for (i = 1; i <= n; i++) { Solución tradicional:
k1 = f(x0, y0);
k2 = f(x0 + h / 2, y0 + h*k1 / Las superficies isotérmicas son cilindros
2); concéntricos con los cilindros dados. El área de tal
k3 = f(x0 + h / 2, y0 + h*k2 /
2); superficie con radio r y longitud l es .
k4 = f(x0 + h, y0 + h*k3);
y0 = y0 + (k1 + 2 * k2 + 2 *
Entonces,
k3 + k4)*h / 6;
x0 = x0 + h;
resultado(x0, y0, i); // no se
imprimen los valores de k1, k2... Se reemplazan los valores en la primera ecuación
} (Ecuación 1) obteniendo que:
cout << "\nLa temperatura cuando r = "
<< xf << " es: " << y0 << endl;
du
q k (2 rl )
cout << "Desea usar el programa dr
nuevamente? (1)Si,(2)No: ";
cin >> r; Donde k es la conductividad térmica y u es la
if (r == 1){ temperatura. En una dimensión, el gradiente es
main();
} una derivada espacial ordinaria. La distancia
else{
en este caso es . Puesto que:
exit(0);
}
} k 0.15
l 20m 2000cm
Al sustituir valores, se tiene que:
5. Resolución del problema
du
En esta sección, primero resolveremos el q (0.15)(2 r 2000)
problema del libro de Spiegel por la forma dr
tradicional de solución de E.D.O. y luego, se Se simplifica,
diseñará un algoritmo que sea capaz de solucionar
la E.D.O. por el método numérico de Runge- dU (2)
Kutta. q 600 r
dr
Entonces, se tiene el siguiente problema de flujo En este caso las condiciones iniciales son:
de calor en estado estacionario, extraído de la
página 103 del libro “Ecuaciones diferenciales U1 200C U 2 50C
aplicadas” de Murray R. Spiegel.
r1 10 r2 20
Un tubo largo de acero, de conductividad térmica
unidades CGS, tiene un radio interior de 10 cm y
6
UNIVERSIDAD DE LA COSTA
DEPARTAMENTO DE CIENCIAS BÁSICAS
ÁREA DE ECUACIONES DIFERENCIALES
FACULTAD DE INGENIERÍA
Esto quiere decir que la temperatura es 200°c en el 282743.34
radio interior del tubo de acero y la temperatura es q 408.000
0.693
50°c en el exterior del tubo de acero.
En esta ecuación, es constante. Y se observa que 912350.932
c 1317000
la ecuación obtenida es una ecuación diferencial 0.693
que puede ser solucionada por el método de
separación de variables: Se reemplazan los valores obtenido de q y c en la
ecuación 3,
1
qdU 600 r * 600 U (408.000)ln r 1.317.000
dr
Integramos en ambos lados de la ecuación:
(408.000) 1.317.000
U ln r
r 600 600
qdU 600 dr
Aplicando la integración conseguimos la siguiente
igualdad: Nota: los valores obtenidos en la ecuación (4) han
sido redondeados.
qU 600 *ln r c (3)
Si , encontramos por sustitución que,
Aplicando las condiciones iniciales en la ecuación
obtenida (3), tenemos que: U 699 216ln15
q ln10 c 600 (200) U 114C
q ln 20 c 600 (50) Cuando , la temperatura de tubo se
Utilizamos cualquier método para hallar las dos encuentra en los 114°C.
incógnitas.
Desarrollo de método Crammer:
Solución por el método numérico de
Runge-Kutta.
ln10 1
0.693 Para poder implementar el método de Runge-
ln 20 1 Kutta, se despeja el diferencial de la ecuación 2,
quedando de la siguiente forma:
376991.12 1
1 282743.34
94247.78 1
Se toma el valor de ,
ln10 376991.12
2 912350.932
ln 20 94247.78
Se introduce la ecuación 5 en el programa, y se
toman los siguientes valores:
7
UNIVERSIDAD DE LA COSTA
DEPARTAMENTO DE CIENCIAS BÁSICAS
ÁREA DE ECUACIONES DIFERENCIALES
FACULTAD DE INGENIERÍA
como valor teórico el dato obtenido por el
programa.
Se calculará el error entre estos valores.
Siendo las condiciones iniciales dadas por
el ejercicio, y la condición final en la cual se
debe hallar la temperatura.
Se introducen los datos en el programa (Fig. 9) y
se coloca a trabajar el programa, y estos son los
resultados arrojados (Fig. 10):
Esto se debe a que se redondearon datos al
momento de resolver la ecuación.
7. Conclusiones
Luego de realizar los análisis de los resultados, se
concluye que el programa arroja un resultado más
cercano al real, debido a que este utiliza todas las
cifras decimales obtenidas al momento de realizar
Figura 9. Introduciendo parámetros a los cálculos, y se obtuvo que el resultado obtenido
programa Runge-Kutta. de manera tradicional tiene un 1.568% de error
debido a que por este método se utilizó el
redondeo de cifras decimales al momento de
realizar los cálculos.
También se concluye que al usar el programa se
está reduciendo el tiempo en el cual se logra
solucionar la ecuación diferencial.
Bibliografía
Figura 10. Resultados programa Runge-Kutta.
[1] p. schmalbach, lenguaje de programacion c+
+, huaraz, 2001.
Dando como resultado que cuando,
[2] p. rodriguez, Método de Runge-
kutta/aplicabilidad- ecuaciones diferenciales,
.
brasil: matematicas, 2007.
[3] Muray R. Spiegel, Ecuaciones diferenciales
6. Análisis de resultados Aplicadas, 3ra edicion, Prentice Hall, 1998.
Teniendo en cuenta que los datos obtenidos de la
primera forma fueron redondeados, tomaremos
8
UNIVERSIDAD DE LA COSTA
DEPARTAMENTO DE CIENCIAS BÁSICAS
ÁREA DE ECUACIONES DIFERENCIALES
FACULTAD DE INGENIERÍA