Documente Academic
Documente Profesional
Documente Cultură
1.
Programacion en fortran 1
El primer programa se implemento para la resolucion de una EPDs parabolica en el metodo de LaPlace
Program Laplace
! declaracion de variables
real (8) P1 , P2 , P3 , P4 , P12 , P123
real (8) Ncont ,r , T1 , T2 , T3 , T4
Integer Nsamp ,i , j
Real (8) Temp (1000 ,1000) , Cuent (1000 ,1000)
open (1 , FILE = salida . dat )
Write (* ,*) = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Write (* ,*) Solucion de Edps parabolicos con el metodo
Write (* ,*)
de LaPlace
Write (* ,*) = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
! calculo de los valores iniciales
m1 =31
n1 =31
P1 =0.25
P2 =0.25
P3 =0.25
P4 =0.25
P12 = P1 + P2
P123 = P1 + P2 + P3
Nsamp =1000
! Condiciones Iniciales
T1 =100 ! T (0 , Y )=100
T2 =0 ! T (X ,0)=0
T3 =100 ! T ( m1 , Y )=0
T4 =0 ! T (X , n1 )=100
Do m =2 , m1 -1
Do n =2 , n1 -1
Ncont =0
Cuent (m , n )=0
10
i=m
j=n
66 Call RANDOM_NUMBER ( r )
If ( r . LE . P1 ) then
i = i +1
Goto 110
Else If ( r . LE . P12 ) then
j = j +1
1
Goto 110
Else If ( r . LE . P123 ) then
i =i -1
Goto 110
Else
j =j -1
Goto 110
End If
If ( j . EQ .1) then
Cuent (m , n )= Cuent (m , n )+ T2
Goto 88
Else If ( i . EQ . m1 ) then
Cuent (m , n )= Cuent (m , n )+ T3
Goto 88
Else If ( j . EQ . n1 ) then
Cuent (m , n )= Cuent (m , n )+ T4
Goto 88
Else If ( i . EQ .1) then
Cuent (m , n )= Cuent (m , n )+ T1
Goto 88
Else
Goto 66
End If
Ncont = Ncont +1
if ( Ncont . LE . Nsamp ) then
goto 10
Else
goto 50
end if
110
88
50
Xcuent = Ncont
Temp (m , n )= Cuent (m , n )/ Xcuent
End Do
End Do
Do I =1 ,31
Do J =1 ,31
Temp (i ,1)=0.0
Temp (i ,31)=0.0
Temp (1 , j )=100
Temp (31 , j )=100
End Do
End do
Do i =1 ,31
Write (* ,100) ( Temp (i , j ) , j =1 ,31)
Write (1 ,100) ( Temp (i , j ) , j =1 ,31)
End Do
Close (1)
100
Format (1 X ,100( F8 .2 ,1 X ))
End Program
2.
Programacion en fortran 2
El segundo programa se implemento para la resolucion de una EPDs parabolica en el metodo de MonteCarlo
Program Final
! declaracion de variables
real (8) P1 , P2 , P3 , P4 , P12 , P123
real (8) Xsamp ,r , T1 , T2 , T3 , T4
Integer Nsam , ktotal , m1 , n1 ,i ,j , kk ,n , m
Real (8) Temp (1000 ,1000) , C_Inic (1000 ,1000) , Cuent (1000 ,1000)
open (1 , FILE = salida . dat )
Write (* ,*) = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Write (* ,*) Examen Final - Metodos Computacionales 2
Write (* ,*) = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
! calculo de los valores iniciales
m1 =31
n1 =31
P1 =0.25
P2 =0.25
P3 =0.25
P4 =0.25
P12 = P1 + P2
P123 = P1 + P2 + P3
Nsam =1000
! Condiciones Iniciales
T1 =100 ! T (0 , Y )=100
T2 =0 ! T (X ,0)=0
T3 =100 ! T ( m1 , Y )=0
T4 =0 ! T (X , n1 )=100
Do i =2 ,30
Do j =2 ,30
C_Inic (i , j )=0
End Do
End Do
Xsamp = Nsam
Ktotal =10
Call RANDOM_SEED ()
Do m =2 ,30
Do n =2 ,30
Cuent (m , n )=0
do n_cuent =1 , Nsam
i=m
j=n
do kk =1 , Ktotal
66
Call RANDOM_NUMBER ( r )
If ( r . LE . P1 ) then
i = i +1
Goto 110
Else If ( r . LE . P12 ) then
j = j +1
Goto 110
Else If ( r . LE . P123 ) then
i =i -1
Goto 110
Else
j =j -1
Goto 110
End If
If ( j . EQ .1) then
Cuent (m , n )= Cuent (m , n )+ T2
Goto 88
Else If ( i . EQ . m1 ) then
Cuent (m , n )= Cuent (m , n )+ T3
Goto 88
Else If ( j . EQ . n1 ) then
Cuent (m , n )= Cuent (m , n )+ T4
Goto 88
Else If ( i . EQ .1) then
Cuent (m , n )= Cuent (m , n )+ T1
Goto 88
Else
Goto 66
End If
Temp (m , n )= Cuent (m , n )/ Xsamp
goto 77
110
88
End Do
Cuent (m , n )= Cuent (m , n )+ C_inic (i , j )
Temp (m , n )= Cuent (m , n )/ Xsamp
77
End Do
End Do
End Do
Do I =1 ,31
Do J =1 ,31
Temp (i ,1)=0.0
Temp (i ,31)=0.0
Temp (1 , j )=100
Temp (31 , j )=100
End Do
End do
Do i =31 ,1 , -1
Write (* ,100) ( Temp (i , j ) , j =1 ,31)
Write (1 ,100) ( Temp (i , j ) , j =1 ,31)
End Do
Close (1)
100
Format (1 X ,100( F8 .2 ,1 X ))
End Program
3.
Determinar la distribuci
on de calor en regimen permanente de una placa delgada de metal en forma cuadrada.
Dos fronteras se mantienen a 0 C, mientras que el calentamiento en las otras fronteras es de 100 C, como se
observa en la malla.
Figura 1: Malla de temperatura
2 (x, y) 2 (x, y)
+
=0
x2
y 2
al ingresar los datos en el programa nos queda dos salidas llamadas Datos 1 y Datos 2
Mediante la salida de datos por Archivo y un graficador obtenemos la imagen de la transmision de calor
4.
Conclusiones
Al revisar minuciosamente ambas salidas de datos, podemos ver que el metodo generado por el segundo
programa es m
as rspido y tiene soluciones mss exactas del rangos de las decimas, esto debido a la repetici
on del
algoritmo en la secci
on de la validaci
on de los kk
10