Este documento presenta un algoritmo para resolver numéricamente la ecuación del calor unidimensional utilizando el método de diferencias finitas de Crank-Nicolson. El algoritmo discretiza el dominio espacial y temporal, establece las condiciones de frontera, y resuelve de manera iterativa el sistema lineal tridiagonal que surge de la aplicación del método para cada paso de tiempo, exportando los resultados a un archivo de texto.
0 calificaciones0% encontró este documento útil (0 votos)
59 vistas8 páginas
Este documento presenta un algoritmo para resolver numéricamente la ecuación del calor unidimensional utilizando el método de diferencias finitas de Crank-Nicolson. El algoritmo discretiza el dominio espacial y temporal, establece las condiciones de frontera, y resuelve de manera iterativa el sistema lineal tridiagonal que surge de la aplicación del método para cada paso de tiempo, exportando los resultados a un archivo de texto.
Este documento presenta un algoritmo para resolver numéricamente la ecuación del calor unidimensional utilizando el método de diferencias finitas de Crank-Nicolson. El algoritmo discretiza el dominio espacial y temporal, establece las condiciones de frontera, y resuelve de manera iterativa el sistema lineal tridiagonal que surge de la aplicación del método para cada paso de tiempo, exportando los resultados a un archivo de texto.
Este documento presenta un algoritmo para resolver numéricamente la ecuación del calor unidimensional utilizando el método de diferencias finitas de Crank-Nicolson. El algoritmo discretiza el dominio espacial y temporal, establece las condiciones de frontera, y resuelve de manera iterativa el sistema lineal tridiagonal que surge de la aplicación del método para cada paso de tiempo, exportando los resultados a un archivo de texto.
Descargue como PDF, TXT o lea en línea desde Scribd
Descargar como pdf o txt
Está en la página 1de 8
ALGORITMO MEDIANTE EL METODO EXPLICITO PARA LA ECUACION DEL CALOR
ALGORITMO MEDIANTE EL METODO DE CRANK NICOLSON PARA LA ECUACION DEL CALOR
! PROGRAMA QUE HACE EL METODO DE DIFERENCIAS FINITAS CRANK NICOLSON ! PARA ECUACIONES DIFERENCIALES PARACIALES PARABOLICOS ! CURSO DE FISICA TEORICA COMPUTACIONAL II-FCNM ! ! LOS DATOS SON EXPORTADOS A: NICOLSON.TXT !CONDICIONES DE FRONTERA (U(0,T)=U(L,T)=0;U(X,0)=SIN(pi*x) ) ! 0<=X<=L ! ALFA CONSTANTE !-----------------------------------------------------------------
REAL::T,ALF,L1,M,N,LAMD,K,H,X,F,MMM INTEGER ::I,J,II REAL,DIMENSION(50)::W, L, U, Z OPEN(20,FILE = 'NICOLSON.TXT',STATUS = 'UNKNOWN') WRITE(*,*) 'INGRESE EL PUNTO FINAL L1' READ(*,*) L1 WRITE(*,*) 'INGRESE EL VALOR MAXIMO DE T' READ(*,*) T WRITE(*,*) ' NUMERO DE INTERVALOS M' READ(*,*)M WRITE(*,*) 'NUMERO DE INTERVALOS N' READ(*,*) N WRITE(*,*) 'METODO DE DIFERENCIAS FINITAS EXPLICITO PARA ECUACION DEL CALOR'
ALF=1 ! PASO 1
H=L1/M K=T/N
LAMD=ALF*ALF*K/(H*H) PRINT*,LAMD,ALF W(M)=0
! PASO 2 DO I=1,M-1 ! VALORES INICIALES W(I)=F(I*H) END DO ! PASO 3 HASTA LA 11 RESUELVE EL SISTEMA TRIGONAL LINEAL ! H PARA L, X PARA U
L(1)=1+LAMD U(1)=-LAMD/(2*L(1))
! PASO 4
DO I=2,M-2 L(I)=1+LAMD+ (LAMD*U(I-1)/2 ) U(I)=- LAMD/(2*L(I)) END DO ! PASO 5 L(M-1)=1+ LAMD+ (LAMD*U(M-2)/2)
! PASO 6 DO J=1,N ! PASO 7 T=J*K Z(1)=((1-LAMD)*W(1)+(LAMD*W(2)/2))/L(1) ! PASO 8 DO I=2,M-1 Z(I)=((1-LAMD)*W(I)+((LAMD/2)*(W(I+1)+W(I-1)+Z(I-1))))/L(I) END DO ! PASO 9 W(M-1)= Z(M-1) ! PASO 10 MMM=M-2 DO II=1,MMM I=MMM-II+1 W(I)=Z(I) -U(I)*W(I+1) END DO END DO ! PASO 11 ! SALIDA DE DATOS WRITE(*,1) T DO I=1,M-1 X=I*H WRITE(20,2) I,X,W(I) END DO ! PASO 12 1 FORMAT(1X,'VALOR DE TIEMPO FINAL ES',1X,E15.8) 2 FORMAT(1X,I3,2(1X,E15.8)) END PROGRAM
FUNCTION F(X) IMPLICIT NONE REAL::X,PI,F PI=4*ATAN(1.0) F=SIN(PI*X) RETURN END