Ley de enfriamiento de Newton

11
PROBLEMA: LEY DE ENFRIAMIENTO DE NEWTON: Al sacar un eje de acero 4340 AISI de un proceso de revenido, su temperatura es de 800º F, después de 60 minutos, su temperatura es de 600ºF, ¿Cuál será su temperatura después de 3 horas de enfriamiento? 1. Solución por métodos analíticos (Solución exacta): dT dt =K( T100) , T (0)=800ºF dT ( T100 ) = Kdt ln ( T100 ) =Kt +C 1 T=100 +C 2 e Kt Para T (0)=800; tenemos 800=100 +C 2 C 2 =700 Entonces; T=100 + 700 e Kt Para T (60)=600; tenemos 600=100 +700 e 60K Donde; K= 1 60 ln 5 7 K=−0.00560787 Por lo tanto, T ( t) =100+ 700 e 0.00560787t Nuestra solución exacta es:

description

Solución de un problema de la ley de enfriamiento de Newton por medio del programa Matlab. Se encuentra todo el programa y las posibles soluciones.

Transcript of Ley de enfriamiento de Newton

Page 1: Ley de enfriamiento de Newton

PROBLEMA: LEY DE ENFRIAMIENTO DE NEWTON:

Al sacar un eje de acero 4340 AISI de un proceso de revenido, su temperatura es de 800º F, después de 60 minutos, su temperatura es de 600ºF, ¿Cuál será su temperatura después de 3 horas de enfriamiento?

1. Solución por métodos analíticos (Solución exacta):

dTdt

=K (T−100), T (0)=800ºF

∫ dT(T−100 )

=∫Kdt

ln (T−100 )=Kt+C1

T=100+C2 eKt

Para T (0)=800; tenemos800=100+C2C2=700

Entonces;

T=100+700eKt

Para T (60)=600; tenemos

600=100+700e60K

Donde;

K= 160ln57

K=−0.00560787

Por lo tanto, T (t )=100+700 e−0.00560787t

Nuestra solución exacta es:

T (180 )=100+700e−0.00560787(180)

T=355.10204℉

Page 2: Ley de enfriamiento de Newton

2. Soluciones referenciadas:

Por el método de Euler: La forma de programar el método en Matlab es

error=zeros(1,n+1);x=zeros(1,n+1);y=zeros(1,n+1);yverd=zeros(1,n+1);yverd(1)=y0;x(1)=x0; y(1)=y0;error(1)=0;h=(xf-x0)/n;for i=2:n+1 x(i)=x(i-1)+h; k1=f(x(i-1),y(i-1)); k2=f(x(i-1)+h/2,y(i-1)+k1*h/2); k3=f(x(i-1)+h/2,y(i-1)+k2*h/2); k4=f(x(i-1)+h,y(i-1)+k3*h); y(i)=y(i-1)+(h/6)*(k1+2*k2+2*k3+k4); yverd(i)=yexacta(x(i)); error(i)=yverd(i)-y(i);endplot(x,y,x,yverd)xlabel('Tiempo')ylabel('Temperatura')legend('Tº verd','Tº aprox')title(' Método RK4 para PVI dT/dt=-0.00560787*(T-100), T(0)=800ºF')fid=fopen('rk4.txt','w');fprintf(fid, '%s\n','------------------------------');fprintf(fid,'%s\n', ' RESULTADOS RK4');fprintf(fid, '%s\n','------------------------------');fprintf(fid,'%s\n','');fprintf(fid,'%s\n', ' NÚMERO DE PASOS ');fprintf(fid,'%4.0f', n);fprintf(fid,'%s\n','');fprintf(fid, '%s\n','-----------------------------------------------');fprintf(fid,'%s\n', ' TAMAÑO DE PASO ');fprintf(fid,'%10.3f', h);fprintf(fid,'%s\n','');fprintf(fid, '%s\n','------------------------------------------------');fprintf(fid,'%s\n','');fprintf(fid,'%s\n', ' x yaprox yverd error');fprintf(fid, '%s\n','------------------------------------------------');for i=1:length(x) fprintf(fid,'%10.7f %10.7f %10.7f %10.7f\n', x(i),y(i),yverd(i),error(i));endfprintf(fid, '%s\n','-------------------------------------------------');fclose(fid);fprintf(' Los resultados se hallan en el archivo rk4.txt')function yprima=f(x,y)

Page 3: Ley de enfriamiento de Newton

yprima=-0.00560787*(y-100);function u=yexacta(x)u=100+700*exp(-0.00560787*x);

Cuando ponemos a correr el programa con Xo=0; Xf=180, Yo=800, n=10; donde, Xo es el tiempo inicial, Xf es el tiempo final, Yo es la temperatura inicial y n es el número de pasos; la gráfica que nos muestra es:

RESULTADOS EULER----------------------------------------------- NÚMERO DE PASOS 10----------------------------------------------- TAMAÑO DE PASO 18.000----------------------------------------------- x yaprox yverd % error----------------------------------------------- 0.0000000 800.0000000 800.0000000 0.0000000 18.0000000 729.3408380 732.7900389 0.4706943 36.0000000 665.8141291 672.0331905 0.9254099 54.0000000 608.6999117 617.1098641 1.3627966 72.0000000 557.3508981 567.4599586 1.7814579 90.0000000 511.1851393 522.5771506 2.1799674

Page 4: Ley de enfriamiento de Newton

108.0000000 469.6794288 482.0037308 2.5568893126.0000000 432.3633735 445.3259367 2.9108035144.0000000 398.8140629 412.1697327 3.2403325162.0000000 368.6512754 382.1969962 3.5441725180.0000000 341.5331697 355.1020688 3.8211265-----------------------------------------------

Por el método de Heun: La forma de programar el método en Matlab es

error=zeros(1,n+1);x=zeros(1,n+1);y=zeros(1,n+1);yverd=zeros(1,n+1);yverd(1)=y0;x(1)=x0; y(1)=y0;error(1)=0;h=(xf-x0)/n;for i=2:n+1 x(i)=x(i-1)+h; k1=f(x(i-1),y(i-1)); k2=f(x(i),y(i-1)+h*k1); y(i)=y(i-1)+(h/2)*(k1+k2); yverd(i)=yexacta(x(i)); error(i)=abs(yverd(i)-y(i))/abs(yverd(i))*100;endplot(x,y,x,yverd)xlabel('Tiempo')ylabel('Temperatura')legend('Tº verd','Tº aprox')title(' Metodo de Heun para PVI dT/dt=-0.00560787*(T-100), T(0)=800ºF')fid=fopen('heun.txt','w');fprintf(fid, '%s\n','--------------------------------------------');fprintf(fid,'%s\n', ' RESULTADOS HEUN');fprintf(fid, '%s\n','--------------------------------------------');fprintf(fid,'%s\n','');fprintf(fid,'%s\n', ' NUMERO DE PASOS ');fprintf(fid,'%4.0f', n);fprintf(fid,'%s\n','');fprintf(fid, '%s\n','--------------------------------------------');fprintf(fid,'%s\n', ' TAMAÑO DE PASO ');fprintf(fid,'%10.3f', h);fprintf(fid,'%s\n','');fprintf(fid, '%s\n','--------------------------------------------');fprintf(fid,'%s\n','');fprintf(fid,'%s\n', ' x yaprox yverd % error');fprintf(fid, '%s\n','--------------------------------------------');for i=1:length(x) fprintf(fid,'%10.7f %10.7f %10.7f %10.7f\n', x(i),y(i),yverd(i),error(i));endfprintf(fid, '%s\n','--------------------------------------------');fclose(fid);fprintf(' Los resultados se hallan en el archivo heun.txt')function yprima=f(x,y)yprima=-0.00560787*(y-100);function u=yexacta(x)

Page 5: Ley de enfriamiento de Newton

u=100+700*exp(-0.00560787*x);

Corriendo el programa con los mismos valores para las variables del método de heun, (esto lo hago para comparar el grado de aproximación del método de heun con el de Euler), la gráfica es:

RESULTADOS HEUN-------------------------------------------- NUMERO DE PASOS 10-------------------------------------------- TAMAÑO DE PASO 18.000-------------------------------------------- x yaprox yverd % error-------------------------------------------- 0.0000000 800.0000000 800.0000000 0.0000000 18.0000000 732.9070646 732.7900389 0.0159699 36.0000000 672.2447891 672.0331905 0.0314863 54.0000000 617.3968138 617.1098641 0.0464990 72.0000000 567.8058552 567.4599586 0.0609552

Page 6: Ley de enfriamiento de Newton

90.0000000 522.9680437 522.5771506 0.0748010108.0000000 482.4278042 482.0037308 0.0879814126.0000000 445.7732271 445.3259367 0.1004411144.0000000 412.6318831 412.1697327 0.1121262162.0000000 382.6670392 382.1969962 0.1229845180.0000000 355.5742371 355.1020688 0.1329669--------------------------------------------

Por el método de Runge - Kutta (RK4): La forma de programar el método en Matlab es

error=zeros(1,n+1);x=zeros(1,n+1);y=zeros(1,n+1);yverd=zeros(1,n+1);yverd(1)=y0;x(1)=x0; y(1)=y0;error(1)=0;h=(xf-x0)/n;for i=2:n+1 x(i)=x(i-1)+h; k1=f(x(i-1),y(i-1)); k2=f(x(i-1)+h/2,y(i-1)+k1*h/2); k3=f(x(i-1)+h/2,y(i-1)+k2*h/2); k4=f(x(i-1)+h,y(i-1)+k3*h); y(i)=y(i-1)+(h/6)*(k1+2*k2+2*k3+k4); yverd(i)=yexacta(x(i)); error(i)=yverd(i)-y(i);endplot(x,y,x,yverd)xlabel('Tiempo')ylabel('Temperatura')legend('Tº verd','Tº aprox')title(' Método RK4 para PVI dT/dt=-0.00560787*(T-100), T(0)=800ºF')fid=fopen('rk4.txt','w');fprintf(fid, '%s\n','------------------------------');fprintf(fid,'%s\n', ' RESULTADOS RK4');fprintf(fid, '%s\n','------------------------------');fprintf(fid,'%s\n','');fprintf(fid,'%s\n', ' NÚMERO DE PASOS ');fprintf(fid,'%4.0f', n);fprintf(fid,'%s\n','');fprintf(fid, '%s\n','-----------------------------------------------');fprintf(fid,'%s\n', ' TAMAÑO DE PASO ');fprintf(fid,'%10.3f', h);fprintf(fid,'%s\n','');fprintf(fid, '%s\n','------------------------------------------------');fprintf(fid,'%s\n','');fprintf(fid,'%s\n', ' x yaprox yverd error');fprintf(fid, '%s\n','------------------------------------------------');for i=1:length(x) fprintf(fid,'%10.7f %10.7f %10.7f %10.7f\n', x(i),y(i),yverd(i),error(i));endfprintf(fid, '%s\n','-------------------------------------------------');fclose(fid);fprintf(' Los resultados se hallan en el archivo rk4.txt')function yprima=f(x,y)

Page 7: Ley de enfriamiento de Newton

yprima=-0.00560787*(y-100);function u=yexacta(x)u=100+700*exp(-0.00560787*x);

La gráfica que nos muestra el programa para el método RK4; con los mismos valores de Xo, Xf, Yo, n; utilizados anteriormente en los métodos de Euler y Heun es:

RESULTADOS RK4------------------------------ NÚMERO DE PASOS 10-----------------------------------------------TAMAÑO DE PASO 18.000------------------------------------------------ x yaprox yverd % error------------------------------------------------ 0.0000000 800.0000000 800.0000000 0.0000000 18.0000000 732.7900990 732.7900389 -0.0000601 36.0000000 672.0332992 672.0331905 -0.0001087 54.0000000 617.1100115 617.1098641 -0.0001474 72.0000000 567.4601363 567.4599586 -0.0001776

Page 8: Ley de enfriamiento de Newton

90.0000000 522.5773513 522.5771506 -0.0002007108.0000000 482.0039486 482.0037308 -0.0002178126.0000000 445.3261663 445.3259367 -0.0002297144.0000000 412.1699700 412.1697327 -0.0002373162.0000000 382.1972375 382.1969962 -0.0002413180.0000000 355.1023112 355.1020688 -0.0002424

Conclusiones:

Al comparar las gráficas de cada método y los porcentajes de error respecto a la solución exacta, nos damos cuenta que, con un n=10, la gráfica del método de Euler es la más alejada de la curva que corresponde a la solución exacta, por lo tanto su porcentaje de error es el más alto de los tres métodos de solución referenciados.

Por el contrario, para un numero de pasos igual a 10, la gráfica del método Rk4 es la que mejor se acerca a la curva de la solución exacta y su porcentaje de error es el más bajo de los tres métodos antes analizados.

Page 9: Ley de enfriamiento de Newton

SOLUCION DE ECUCIONES DIFERENCIALES ORDINARIAS CON PVI EN MATLAB

Trabajo presentado por:

RICARDO ANDRES ARIAS RENDON

Page 10: Ley de enfriamiento de Newton

UNIVERSIDAD AUTONOMA DE MANIZALES

ANALISIS NUMERICO

MANIZALES, 20 DE NOVIEMBRE DEL 2010