Está en la página 1de 12

UNIVERSIDAD NACIONAL AUTNOMA DE MXICO

FACULTAD DE QUMICA
DEPARTAMENTO DE INGENIERA METALRGICA
ANLISIS NUMRICO EN FENMENOS DE TRANSPORTE
SERIE No. 2 Tarea 4
24 de septiembre de 2012
Por: Guerrero Vidal Josue
Esta serie de problemas se deber resolver de manera individual y se entregar a ms tardar el da
jueves 3 de octubre a las 10 horas.
1.- (3 pts.) A) Resuelva analticamente el siguiente problema de valor inicial en el intervalo que va
de x=0 a 3:
Con la condicin inicial y(0)=1. Grafique la solucin.

| |

| |

Evaluando y(0)=1

Solucin de y analtica:
(

x
0.25
0.50
0.75
1.00
1.25
1.50
1.75
2.00

y
0.754
0.572
0.468
0.420
0.428
0.510
0.731
1.306

B) Utilice el mtodo de Euler con h=0.25 y con h=0.5 para resolver la EDO del inciso A.
C ANFT 2014-1 este programa resuelve EDO por el metodo de euler
C Josue Guerrero Vidal
c dy/dx=y*x**2-1.2*y
real ya, ye, xi, dx, err, dy, xf, yi
xi=0.0
yi=1.0
xf=3.0
dx=0.25
10
dy=yi*xi**2-1.2*yi
ye=yi+dy*dx
ya=exp((xi**3/3)-1.2)
err=abs((ye-ya)/ya)*100.0
write(*,*)xi+dx,ye,err
if((xi+dx).GE.xf)then
goto 20
else
xi=xi+dx
yi=ye
goto 10
endif
20
end

h=0.25

h=0.5

C) Use el mtodo de Heun con h=0.25 y h=0.5 para resolver numricamente el problema del inciso
A.
C ANFT 2014-1 Este programa resuelve la ecuacion diferencial mediante el
metodo Heun
C La derivada es dy/dx=yx2-1.2y con la condicin inicial Y(0)=1
C Guerrero Vidal Josue
real xi, yi, dx, xf, m1, yp, m2, mp, yn, err, ya
xi=0.0
yi=1.0
dx=0.25
xf=3
10
m1=yi*xi**2-1.2*yi
yp=yi+m1*dx
m2=yi*(xi+dx)**2-1.2*yi
mp=(m1+m2)/2.0
yn=yi+(mp*dx)
ya=exp((xi**3/3)-1.2)
err=abs((yn-ya)/ya)*100.
write(*,*) xi+dx, yn, err, mp
if((xi+dx).GE.xf) then
goto 20

20

else
yi=yn
xi=xi+dx
goto 10
endif
end

h=0.25

h=0.5

D) Con el mtodo de R-K de cuarto orden integre el problema del inciso A con h=0.25 y h=0.5.
Dibuje todos los resultados sobre la misma grfica para comparar visualmente la exactitud de los
dos tamaos de paso y las diferencias entre cada mtodo.
C ANFT 2014-1 Este programa resuelve una ecuacion diferencial ordinaria
por el Metodo de Runge-Kutta (4 Orden)
C Para la funcin, dy/dx=yx2-1.2y
C Guerrero Vidal Josue
real xi,yi,xf,dx,k1,k2,k3,k4,ya,yn,err
xi=0.0
yi=1.0
xf=3.0
dx=0.25
10
k1=yi*xi**2.-1.2*yi
k2=yi*(xi+(dx/2.))**2-1.2*yi
k3=yi*(xi+(dx/2.))**2-1.2*yi
k4=yi*(xi+dx)**2-1.2*yi
yn=yi+(1./6.)*(k1+2.*k2+2.*k3+k4)*dx
ya=exp((xi**3./3.)-1.2*xi)+1.
err=abs((yn-ya)/ya)*100.0
write(*,*)xi+dx, yn, err
if((xi+dx).GE.xf) then
goto 20

20

else
yi=yn
xi=xi+dx
goto 10
endif
end

h=0.25

h=0.5

2.- (3 pts.)Repita los incisos A, B, C y D del problema 2, pero ahora con el siguiente problema de
valor inicial sobre el intervalo que va de x=0 a 2:

Con la condicin inicial y(0)=1.


A)

Integrando

B) C ANFT 2014-1 este programa resuelve EDO por el metodo de euler


C
C
c
c
c

Josue Guerrero Vidal


28 de septiembre de 2013
la EDO dy/dx=(1+x)*sqrt(y) con condicion inicial y(0)=1
resolviendo con metodo de Euler
h=o.5 x=0-2
real ya, ye, xi, dx, err dy, xf, yi
xi=0.0
yi=1.0
xf=2.0
dx=0.5
10
dy=(1+xi)*sqrt(yi)
ye=yi+dy*dx
ya=(sqrt(yi)*xi)+((xi**2*sqrt(yi))/2.0)+1
err=abs((ye-ya)/ya)*100.0
write(*,*)xi+dx, ye,err
if((xi+dx).GE.xf) then
goto 20
else
xi=xi+dx
yi=ye
goto 10
endif
20
end
h=o.5

h= 0.25

C) c ANFT 2014-1 Este programa resuelve la ecuacion diferencial mediante


el metodo Heun
c De la derivada: dy/dx=(1+x)**1/2
dx=0.25
c Guerrero Vidal Josue
real xi, yi, dx, xf, m1, yp, m2, mp, yn, err, ya
xi=0.0
yi=1.0
dx=0.25
xf=2.0
10
m1=(((1.+xi)**4.)/16.)+(((1.+xi)**2.)/4.)+1./4.
yp=yi+m1*dx
m2=(((1.+(xi+dx))**4.)/16.)+((((1.+(xi+dx))**2.)/4.)+1./4.)
mp=(m1+m2)/2.0
yn=yi+mp*dx
ya=((1+xi)**4/16)+((3*(1+xi)**2/8)*2)+(1/4)
err=abs((yn-ya)/ya)*100.
write(*,*) xi+dx, yn, err
if((xi+dx).GE.xf) then
goto 20
else
yi=yn
xi=xi+dx
goto 10
endif
20
end
h=0.25

h=0.5

D) C ANFT 2014-1 Este programa resuelve una ecuacion diferencial


ordinaria por el Metodo de Runge-Kutta (4 Orden)
C Para la funcin, dy/dx=(1+x)y**1/2 dx=0.25
C Guerrero Vidal Josue
real xi,yi,xf,dx,k1,k2,k3,k4,ya,yn,err
xi=0.0
yi=1.0
xf=3.0
dx=0.25
10
k1=(1+xi)*yi**1/2
k2=(1+(xi+(dx/2.)))*yi**1/2
k3=(1+(xi+(dx/2.)))*yi**1/2
k4=(1+(xi+dx))*yi**1/2
yn=yi+(1./6.)*(k1+2.*k2+2.*k3+k4)*dx
ya=((1+xi)**4/16.)+(3./8.)*(1+xi)**2+(9./16)
err=abs((yn-ya)/ya)*100.0
write(*,*)xi+dx, yn, err
if((xi+dx).GE.xf) then
goto 20
else
yi=yn
xi=xi+dx
goto 10
endif
20
end
h=0.25

h=0.5

3.- (2 pts.) Resuelva el siguiente problema de forma numrica con el mtodo de R-K de 4 orden
con un paso igual a 0.5 desde t=0 hasta 10:
Con la condicin inicial y(0)=1.
C ANFT 2014-1 Este programa resuelve una ecuacion diferencial ordinaria
por el Metodo de Runge-Kutta (4 Orden)
C Para la funcin, dy/dx=(1+x)y**1/2 dx=0.25
C Guerrero Vidal Josue
C dx=0.5 ccon t=0-10

10

20

real xi, yi, dx, xf, yn, ya, err, k1, k2, k3, k4
xi=0.0
yi=1.0
xf=10
dx=0.5
k1=-yi*xi+(xi**2)/2.
k2=-(yi+(.5*dx*k1))*(xi+.5*dx)+((xi+.5*dx)**2)/2.
k3=-(yi+(.5*dx*k2))*(xi+.5*dx)+((xi+.5*dx)**2)/2.
k4=-(yi+(dx*k1))*(xi+dx)+((xi+dx)**2)/2.
yn=yi+(1./6.)*(k1+2.*k2+2.*k3+k4)*dx
ya=-yi*(xi+dx)+((xi+dx)**2/2.)
err=abs((yn-ya)/ya)*100.0
write(*,*)xi+dx, yn, err
if((xi+dx).GE.xf) then
goto 20
else
xi=xi+dx
yi=yn
goto 10
endif
end

4.- (1 pto) Resuelva por Gauss-Seidel:


6x1+2x2+2x3=2
-3x1+4x2+x3=1
x1+x2-x3=-3
Serie problema 4
C 28 de septiembre de 2013
C *************** 6x1+2x2+2x3=2
C *************** -3x1+4x2+x3=1
C *************** x1+x2-x3=-3
C x1v,xv2,xv3 = valor de la anterior iteracion
C x1n,x2n,x3n = valor de la actual iteracion
C error1,error2,error3 = son los porcentajes de error de cada incognita
C CC = criterio de convergencia (error maximo permitido)
real x1v, x2v, x3v, x1n, x2n, x3n error1, error2, error3, cc
x1v=0.0
x2v=0.0
x3v=0.0
cc=0.0001
10
x1n=(2-2*x2v-2*x3v)/6.0
x2n=(1+3.*x1v-1*x3v)/4.0
x3n=(3+1*x1v+1*x2v)
error1=abs((x1n-x1v)/x1n)*100
error2=abs((x2n-x2v)/x2n)*100
error3=abs((x3n-x3v)/x3n)*100
if(error1.LE.cc.AND.error2.LE.cc.AND.error3.LE.cc) then
write(*,*)x1n,x2n,x3n
goto 20
else
x1v=x1n
x2v=x2n
x3v=x3n
goto 10
endif
20
end

5.- (1 pto) Resuelva por Gauss-Seidel:


12x1+x2-x3=-20
-2x1-4x2+2x3=10
X1+2x2+2x3=25
C ANFT 2014-1 este programa resuelve sistemas de ecuaciones 3x3 por el
metodo de Gauss Seidel
C Josue Guerrero Vidal
C 28 de septiembre de 2013
C *************** 12x1+x2-x3=-20
C *************** -2x1-4x2+2x3=10
C *************** x1+2x2-2x3=25
C x1v,xv2,xv3 = valor de la anterior iteracion
C x1n,x2n,x3n = valor de la actual iteracion
C error1,error2,error3 = son los porcentajes de error de cada incognita
C CC = criterio de convergencia (error maximo permitido)
real x1v, x2v, x3v, x1n, x2n, x3n error1, error2, error3, cc
x1v=0.0
x2v=0.0
x3v=0.0
cc=0.001
10
x1n=(-20-1*x2v+1*x3v)/12.0
x2n=(10+2*x1v-2*x3v)/-4.0
x3n=(25-1*x1v-2*x2v)/ 2.0
error1=abs((x1n-x1v)/x1n)*100
error2=abs((x2n-x2v)/x2n)*100
error3=abs((x3n-x3v)/x3n)*100
if(error1.LE.cc.AND.error2.LE.cc.AND.error3.LE.cc) then
write(*,*)x1n,x2n,x3n
goto 20
else
x1v=x1n
x2v=x2n

20

x3v=x3n
goto 10
endif
end