1. ” Año de la Promoción de la Industria Responsable y Compromiso
Climático
UNIVERSIDAD NACIONAL
DEL CALLAO
FACULTAD DE CIENCIAS
NATURALES Y MATEMÁTICA
FÍSICA TEÓRICA COMPUTACIONAL I
TRABAJO DE EXPOSICIÓN
“VIBRACIONES MECÁNICAS-APLICACIÓN
INSTRUMENTO SÍSMICO”
ALUMNO:
MARCO ANTONIO ALPACA CHAMBA
ESCUELA PROFESIONAL DE:
FÍSICA
CON PROBLEMAS ADICIONALES EN FORTRAN 90
24 de Noviembre del 2014
INTRODUCCIÓN
2. Las vibraciones han sido de interés en la ingeniería, por lo menos desde el principio de la
revolución industrial. Los movimientos oscilatorios de los motores rotatorios y alternativos
someten a sus partes a grandes cargas que deben ser considerados en su diseño. Los
operadores y pasajeros de los vehículos movidos por estos motores deben quedar aislados de
sus vibraciones. Comenzando con el desarrollo de dispositivos electromecánicos capaces de
generar y medir vibraciones mecánicas, tales como altoparlantes y micrófonos, las aplicaciones
en ingeniería de las vibraciones han incluido las diversas áreas de la acústica, desde la acústica
arquitectónica hasta la detección y análisis de sismos.
En este trabajo se considera un sistema vibratorio de un grado de libertad; es decir, la posición,
o la configuración, del sistema se especifica con una sola variable. Muchos sistemas vibratorios
reales, ya sea con un solo grado de libertad o sus movimientos se pueden modelar por medio de
un sistema de un grado de libertad en circunstancias particulares.
MARCO TEÓRICO
Conceptos básicos de la vibración.
Cualquier movimiento que se repite después de un intervalo de tiempo se llama vibración u
oscilación.
La oscilación de un péndulo y el movimiento de una cuerda pulsada son ejemplos típicos de
vibración. La teoría de la vibración tiene que ver con el estudio de los movimientos oscilatorios
de los cuerpos y las fuerzas asociadas con ellos
Un sistema vibratorio, en general, incluye un medio para almacenar energía potencial (resorte o
elasticidad), un medio para almacenar energía cinética (masa o inercia), y un medio por el cual
la energía se pierde gradualmente (amortiguador).
La vibración de un sistema implica la transformación de su energía potencial en energía cinética
y de la energía cinética en energía potencial, alternativamente. Si el sistema se amortigua, una
parte de la energía se disipa en cada ciclo de la vibración y debe ser reemplazada por una fuente
externa para que se mantenga un estado de vibración constante.
Clasificación de la vibración
La vibración puede ser clasificada de varias maneras. Algunas de las clasificaciones importantes
son como sigue.
Vibración libre. Si se deja que un sistemavibre por sí mismo,después de una perturbación inicial,
la vibración resultante se conoce como vibración libre. Ninguna fuerza externa actúa sobre el
sistema. La oscilación de un péndulo simple es un ejemplo de vibración libre.
Vibración forzada. Si un sistema se somete a una fuerza externa (a menudo, un tipo repetitivo
de fuerza), la vibración resultante se conoce como vibración forzada. La oscilación que surge en
máquinas tales como motores diesel es un ejemplo de vibración forzada.
Si la frecuencia de la fuerza externa coincide con una de las frecuencias naturales del sistema,
ocurre una condición conocida como resonancia, y el sistema sufre oscilaciones peligrosamente
grandes. Las fallas de estructuras tales como edificios, puentes, turbinas, y alas de avión se han
asociado con la ocurrencia de resonancia.
Vibración no amortiguada y amortiguada
Si no se pierde energía o disipa energía por fricción u otra resistencia durante la oscilación, la
vibración se conoce como la vibración no amortiguada. Sin embargo, si toda la energía se pierde
de esta manera, se llama vibración amortiguada. En muchos sistemas físicos, la cantidad de
amortiguamiento es tan pequeña que puede ignorarse en la mayoría de las aplicaciones de la
ingeniería. Sin embargo, la consideración del amortiguamiento se vuelve extremadamente
importante en el análisis de sistemas vibratorios cerca a la resonancia.
Vibración lineal y no lineal:
Si todos los componentes básicos de un sistemavibratorio, el resorte, la masa,y el amortiguador,
se comportan linealmente, la vibración resultante se conoce como vibración lineal. Pero, si
cualquiera de los componentes básicos se comporta de manera no lineal, la vibración se conoce
como vibración no lineal. Las ecuaciones diferenciales que rigen el comportamiento de los
sistemas vibratorios lineales y no lineales son lineal y no lineal, respectivamente. Si la vibración
es lineal, el principio de superposición es válido, y las técnicas matemáticas de análisis están
3. bien desarrolladas. Para vibración no lineal, el principio de superposición no es válido, y las
técnicas de análisis son menos conocidas. Dado que todos los sistemas vibratorios tienden a
comportarse de forma no lineal al aumentar la amplitud de oscilación, es deseable un
conocimiento de la vibración no lineal cuando se trate con sistemas vibratorios prácticos.
SISTEMA MASA-RESORTE: MOVIMIENTO FORZADO
ECUACIÓN DIFERENCIAL DEL MOVIMIENTO FORZADO CON AMORTIGUAMIENTO
En el estudio de la mecánica, las fuerzas amortiguadas que
actúan sobre un cuerpo son consideradas proporcionales a
una potencia de la velocidad instantánea. Considerando una
fuerza externa f(t) que actúa sobre una masa vibrante en un
resorte. Por ejemplo, f(t) podría representar una fuerza motriz
que usa un movimiento vertical oscilatorio del soporte del
resorte ver figura . La inclusión de f(t) en la formulación de la
segunda ley de Newton da la ecuación diferencial de
movimiento forzado:
Al dividir la ecuación entre m, se obtiene:
Donde F(t)=f(t)/m y, 2λ=β/m, ω2
=k/m. Para resolver la última ecuación homogénea, se puede
usar ya sea el método de coeficientes indeterminados o variación de parámetros.
PROBLEMADE APLICACIÓN:
INSTRUMENTO SÍSMICO
En la figura (1) se muestra un modelo general utilizado para la medición de vibraciones. La base
se sujeta al cuerpo, el cual tiene una vibración desconocida Asin(ωt), considere m = 120kg, ω =
5.81778, A = 0.1, k = 400, 𝜔 𝑛 = √
𝑘
𝑚
y c=𝜔 𝑛 𝑚. Para hallar el movimiento y la velocidad relativa
del sistema durante 15 segundos
Figura1
SOLUCIÓN:
4. Hacemos el diagrama de cuerpo libre de la masa m.
Las fuerzas que actúan sobre la masason la fuerza del resorte y la fuerza
de amortiguamiento suponiendo que x1 es mayor x2, la ecuación de movimiento es:
Sea el movimiento relativo x1-x2=x, entonces x1=x+x2 y x1’=x’+x2’ y la ecuación de movimiento
toma la forma:
o bien
Pero x2=Asinωt es la vibración del cuerpo libre, sustituyendo tenemos:
5. FIGURA 2: Gráficas del desplazamiento y velocidad de un instrumento sísmico
MÉTODO COMPUTACIONAL
PROGRAM ADAMS_BASHFORTH
PARAMETER (IDM=150)
DIMENSION
D(IDM,IDM),X(IDM),Y(IDM),F(IDM),Z(IDM),SUM1(IDM),VAL(IDM),VAL1(IDM),SUM2(IDM),R(I
DM,IDM)
REAL(4) H,P,P1
DIMENSION CP(4)
REAL ,PARAMETER::CP=(/55.0,-59.0,37.0,-9.0/)
!REAL ,PARAMETER::CC=(/9.0,19.0,-5.0,1.0/)
PRINT*,
'==================================================================='
PRINT*,'METHOD DE ADAMS-BASHFORTH PARAEDO DE LAFORMAy''=F(x,y(x),z) '
PRINT*,'==================================================================
=='
PRINT*,''
PRINT*,'INGRESAR EL VALOR DE N'
READ(5,*)N
PRINT*,''
PRINT*, 'INGRESAR LOS VALORES INICIALES X0 E Y0 Y Z(0)'
READ*, X(0),Y(0),Z(0)
PRINT*,''
PRINT*, 'INGRESAR H'
READ*, H
PRINT*,''
PRINT*,('*',I=1,79)
PRINT '(5X,"RESULTADOS")'
PRINT*,('*',I=1,79)
!APLICANDO EULER- CAUCHY
PRINT 90
90 FORMAT(3X,'EULER-CAUCHY APROXIMATION :'/)
PRINT 100
100 FORMAT(4X,'ITERATION',5X ,'X',16X,'Y',18X,'Z')
DO I=0,N
X(I+1)=X(I)+H
ENDDO
DO J=0,N
6. F(J)=-1.825746*(Z(J))-(400/120)*(Y(J))+0.1*(5.81778)**2*(SIN(5.81778*(X(J))))
IF (J.EQ.N) GOTO 10
Z(J+1)=Z(J)+H*F(J)
Y(J+1)=Y(J)+H*Z(J)
PRINT*,J+1,X(J+1),Y(J+1),Z(J+1)
10 ENDDO
PRINT 110
110 FORMAT(/3X,'ADAMS-BASHFORTH APROXIMATION:'/)
DO 6 L=0,N
D(0,L)=F(L)
WRITE (*,9)L,D(0,L)
9 FORMAT (2X,'F(',I3,')=',F12.4)
6 CONTINUE
PRINT*,''
DO I=0,N
K=I+1
IF(K.GE.5) GOTO 1
IF(I.EQ.0) THEN
SUM1(I)=0.0
ENDIF
SUM1(I+1)=(SUM1(I)+(CP(K)*H/24*D(0,N-I)))
WRITE (*,112)I+1,CP(K)
112 FORMAT (2X,'CP(',I2,')=',F12.4)
VAL(N+1)=Z(N)+SUM1(I+1)
1 ENDDO
PRINT*,''
P=VAL(N+1)
PRINT 115
115 FORMAT(/3X,'LAPREDICTOR FORMULADA:'/)
WRITE (*,116)N+1,P
116 FORMAT (2X,'ZP(',I3,')=',F12.4)
PRINT 117
117 FORMAT(/3X,'ADAMS-BASHFORTH APROXIMATION:'/)
DO L=0,N
R(0,L)=Z(L)
ENDDO
DO I=0,N
K=I+1
IF(K.GE.5)GOTO 2
IF(I.EQ.0) THEN
SUM1(I)=0.0
ENDIF
SUM2(I+1)=(SUM2(I)+(CP(K)*H/24*R(0,N-I)))
VAL1(N+1)=Y(N)+SUM2(I+1)
2 ENDDO
P1=VAL1(N+1)
PRINT 119
119 FORMAT(/3X,'LAPREDICTOR FORMULADA:'/)
WRITE (*,120)N+1,P1
120 FORMAT (2X,'YP(',I3,')=',F12.4)
PRINT*,''
PRINT*,'POR LO TANTO,LUEGO DE',N,'-ITERACIONES OBTENEMOS:'
PRINT*,''
WRITE (*,121) X(N+1),P1
PRINT*,''
10. CONCLUSIÓN
Luego de haber usado el método de Adams –Bashforth y el método de Euler mejorado
obtenemos las alturas en diferentes instantes de tiempo los cuales están en óptimo acuerdo
con los valores obtenidos mediante MATLAB en las gráficas. Además, observamos de la
gráfica que el movimiento y velocidad del sistema es oscilatorio, y no está en resonancia
REFERENCIABIBLIOGRÁFICA
J.B. Marion, 1984; Dinámica clásica de las partículas y sistemas. Reverté, 1984.
REFERNCIAS WEB
http://www.monografias.com/trabajos81/vibraciones-mecanicas/vibraciones-mecanicas.shtml
11. APLICACIONES ADICIONALES:
MÉTODO DE ADAMS-BASHFORTH CON CAMBIO DE VARIABLE
APLICACIÓN FÍSICA:
El sistema de la figura está formado por dos varillas AB y CD de longitud L y masa M,
articuladas en sus extremos A y C a sendos puntos fijos, y en sus extremos B y D a un
bastidor de masa despreciable (verfigura).El bastidor tiene una ranura enla que se mueve
sin rozamiento un oscilador lineal formado por una masa m, un resorte de rigidez k y un
amortiguador viscoso de constante c. En el instante inicial la masa m se encuentra en
reposo relativo al bastidor y las varillas AB y CD son perpendiculares a dicho bastidor.
Calcular la posición en t=0.2 s.
SOLUCIÓN:
Suponiendo que las varillas giran con velocidad angular impuesta 𝜃̇ = Ω constante, de 0.1 rad/s,
L=1m, m=1kg, c=1.56 Nm/s, k=70N/m y ciertas condiciones iniciales tenemos
La ecuación diferencial del movimiento de la partícula en el bastidor es:
Usando Euler:
𝑌𝑛+1 = 𝑌𝑛 + ∆𝑥 𝐹(𝑋 𝑛, 𝑌𝑛)
Usando Adams-Bashforth:
𝑌𝑛+1 = 𝑌𝑛 +
∆𝑋
24
[55𝐹𝑛 − 59𝐹𝑛−1 + 37𝐹𝑛−2 − 9𝐹𝑛−3]
Usando fortran tenemos:
PROGRAM ADAMS_BASHFORTH
PARAMETER (IDM=150)
DIMENSION
D(IDM,IDM),X(IDM),Y(IDM),F(IDM),Z(IDM),SUM1(IDM),VAL(IDM),VAL1(IDM),SUM2(IDM),R(I
DM,IDM)
REAL(4) H,P,P1
DIMENSION CP(4)
REAL ,PARAMETER::CP=(/55.0,-59.0,37.0,-9.0/)
!REAL ,PARAMETER::CC=(/9.0,19.0,-5.0,1.0/)
12. PRINT*,
'==================================================================='
PRINT*,'METHOD DE ADAMS-BASHFORTH PARAEDO DE LAFORMAy''=F(x,y(x),z) '
PRINT*,'==================================================================
=='
PRINT*,''
PRINT*,'INGRESAR EL VALOR DE N'
READ(5,*)N
PRINT*,''
PRINT*, 'INGRESAR LOS VALORES INICIALES X0 E Y0 Y Z(0)'
READ*, X(0),Y(0),Z(0)
PRINT*,''
PRINT*, 'INGRESAR H'
READ*, H
PRINT*,''
PRINT*,('*',I=1,79)
PRINT '(5X,"RESULTADOS")'
PRINT*,('*',I=1,79)
!APLICANDO EULER- CAUCHY
PRINT 90
90 FORMAT(3X,'EULER-CAUCHY APROXIMATION :'/)
PRINT 100
100 FORMAT(4X,'ITERATION',5X ,'X',16X,'Y',18X,'Z')
DO I=0,N
X(I+1)=X(I)+H
ENDDO
DO J=0,N
F(J)=-1.56*(Z(J))-(70)*(Y(J))+(0.1)**2*(SIN(X(J)))
IF (J.EQ.N) GOTO 10
Z(J+1)=Z(J)+H*F(J)
Y(J+1)=Y(J)+H*Z(J)
PRINT*,J+1,X(J+1),Y(J+1),Z(J+1)
10 ENDDO
PRINT 110
110 FORMAT(/3X,'ADAMS-BASHFORTH APROXIMATION:'/)
DO 6 L=0,N
D(0,L)=F(L)
WRITE (*,9)L,D(0,L)
9 FORMAT (2X,'F(',I3,')=',F12.4)
6 CONTINUE
PRINT*,''
DO I=0,N
K=I+1
IF(K.GE.5) GOTO 1
IF(I.EQ.0) THEN
SUM1(I)=0.0
ENDIF
SUM1(I+1)=(SUM1(I)+(CP(K)*H/24*D(0,N-I)))
WRITE (*,112)I+1,CP(K)
112 FORMAT (2X,'CP(',I2,')=',F12.4)
VAL(N+1)=Z(N)+SUM1(I+1)
1 ENDDO
PRINT*,''
P=VAL(N+1)
PRINT 115
13. 115 FORMAT(/3X,'LAPREDICTOR FORMULADA:'/)
WRITE (*,116)N+1,P
116 FORMAT (2X,'ZP(',I3,')=',F12.4)
PRINT 117
117 FORMAT(/3X,'ADAMS-BASHFORTH APROXIMATION:'/)
DO L=0,N
R(0,L)=Z(L)
ENDDO
DO I=0,N
K=I+1
IF(K.GE.5)GOTO 2
IF(I.EQ.0) THEN
SUM1(I)=0.0
ENDIF
SUM2(I+1)=(SUM2(I)+(CP(K)*H/24*R(0,N-I)))
VAL1(N+1)=Y(N)+SUM2(I+1)
2 ENDDO
P1=VAL1(N+1)
PRINT 119
119 FORMAT(/3X,'LAPREDICTOR FORMULADA:'/)
WRITE (*,120)N+1,P1
120 FORMAT (2X,'YP(',I3,')=',F12.4)
PRINT*,''
PRINT*,'POR LO TANTO,LUEGO DE',N,'-ITERACIONES OBTENEMOS:'
PRINT*,''
WRITE (*,121) X(N+1),P1
PRINT*,''
121 FORMAT (10X,'Y(',F7.2,')=',F12.4)
PRINT*,''
STOP
END PROGRAM
14. MÉTODO DE STORMER
Enunciado del problema: Considere el circuito que se muestra en la figura 1.el cual consta de
un inductor L, un resistor R y un capacitor C. Cuando se aplica un voltaje E(t), hace que una
corriente de magnitud i fluya a través del circuito. Cuando la corriente fluye más allá del inductor
la caída de voltaje es L(di/dt), cuando fluye a través del resistor la caída es Ri, y cuando llega al
capacitor la caída es (1/C)q. Como la corriente no puede fluir más allá del capacitor, sólo es
posible medir la carga q que actúa en el capacitor. Por lo tanto, las caídas de voltaje que ocurren
a través del inductor, resistor y capacitor son Ld2
q/dt2
, Rdq/dt, y q//C, respectivamente. De
acuerdo con la ley del voltaje de Kirchhoff, el voltaje aplicado es igual a la suma de caídas de
voltaje alrededor del circuito. Por consiguiente,
, donde E(t)=ωVpcosωt, R=1.0Ω, C=0.08F, L=0.0088H, Vp=4,
f=1Hz, usando el método de Stormer con h=0.05 resolver el problema de valores iniciales
i(0)=1.632 A, i(0.05) =1.813 A, con tol=0.05
Figura1
SOLUCIÓN:
Reemplazando los datos tenemos:
𝑑2 𝑖
𝑑𝑡2 = 2854.55cos(6.283𝑥) − 113.636𝑑𝑖/𝑑𝑡 − 1420.454𝑦
Usando el método de Stormer:
𝑖 𝑛+1 = 2𝑖 𝑛 − 𝑖 𝑛−1 + [2854.55cos(6.283𝑥) − 113.636𝑑𝑖/𝑑𝑡 − 1420.454𝑦](∆𝑡2)
15. Usando fortran 90 tenemos:
PROGRAM STORMER_VERLET
PARAMETER (IDM=100)
DIMENSION X(IDM), Y(IDM)
REAL H,N,DY,B,EE,TOL
PRINT*,''
PRINT*,
'====================================================================='
PRINT*,'METHOD DE STORMER VERLET PARA EDO'
PRINT*,'DE SEGUNDO ORDENCON CONDICIONES INICIALES'
PRINT*,'==================================================================
===='
PRINT*,''
PRINT*,'INGRESAR EL NUMERO DE PUNTOS N'
READ(5,*)N
PRINT*, 'INGRESAR LOS VALORES INICIALES X0 E Y0'
READ*, X(0),Y(0)
PRINT*, 'INGRESAR LOS VALORES INICIALES X1 E Y1'
READ*, X(1),Y(1)
PRINT*, 'INGRESAR H'
READ*, H
PRINT*, 'INGRESAR LA TOL'
READ*, TOL
PRINT*,''
PRINT*,('*',I=1,79)
PRINT '(5X,"RESULTADOS")'
PRINT*,('*',I=1,79)
PRINT*,''
PRINT 100
100 FORMAT(11X,'N',7X ,'X(N)',14X,'Y(N)')
DO I=2,N
X(I)=X(0)+I*H
ENDDO
PRINT*,0,X(0),Y(0)
PRINT*,1,X(1),Y(1)
DO J=2,N
A=Y(J-1)
10 DY=0.5*(A-Y(J-2))/H
B=F(X(J-1),Y(J-1),DY)
Y(J)=2*Y(J-1)-Y(J-2)+B*H**2
EE=ABS(Y(J)-A) !ERROR ENCONTRADO
IF (EE.GT.TOL) THEN
A=(Y(J)+A)/2
GOTO 10
END IF
PRINT*,J,X(J),Y(J)
END DO
PRINT*,''
PRINT*,' POR LO TANTO,LUEGO DE LAS ITERACIONES OBTENEMOS:'
PRINT*,''
WRITE (*,121) X(N),Y(N)
121 FORMAT (10X,'Y(',F7.2,')=',F12.4)
PRINT*,''
END PROGRAM
16. FUNCTION F(X,Y,Z)
F=2854.55*COS(6.283*X)-113.636*Z-1420.454*Y
RETURN
END FUNCTION
MÉTODO DE ADAMS-MOULTON
IMPACTO DE UN COCHE CONTRAUNABARRERA DE PROTECCIÓN.
Una barrera de protección se sitúa al final de un
circuito con el objeto de parar coches que han
perdido el control. Esta barrera se ha diseñado de
forma que la fuerza que la barrera aplica al coche
viene dada en función de la velocidad v y del
desplazamiento x de la parte frontal de la barrera,
según la expresión:
Donde k=30 s-kg/m5
es una constante.
Un coche, con una masa m de 1500 kg, impacta contra la barrera de protección a una
velocidad de 90 km/h. Calcular la velocidad en la posición x =0.8 m.
SOLUCIÓN:
La desaceleración del coche, una vez que éste ha impactado contra la barrera, se puede calcular
utilizando la segunda Ley de Newton:
Esta ecuación se puede resolver para la aceleración a en función de v y x:
17. La velocidad, en función de x, se puede calcular sustituyendo la aceleración en la ecuación:
, lo que resulta:
Esta última ecuación es una ecuación diferencial ordinaria de primer orden, que se resolverá en
X=0.8 m con la condición inicial v=90 km/h en x=0
Usando Euler Mejorado:
𝑌𝑛+1 = 𝑌𝑛 + ∆𝑥 (𝐹( 𝑋 𝑛, 𝑌𝑛)+ 𝐹( 𝑋 𝑛+1, 𝑌𝑛+1
∗ ))∗ 0.5
𝑌𝑛+1
∗
= 𝑌𝑛 + ∆𝑥 (𝐹( 𝑋 𝑛, 𝑌𝑛)
Usando Adams-Moulton:
𝑌𝑛+1 = 𝑌 𝑛 +
∆𝑋
24
[9𝐹𝑛+1 − 19𝐹𝑛 − 5𝐹𝑛−1 + 𝐹𝑛−2]
Utilizando fortran 90 tenemos:
PROGRAM ADAMS_MOULTON
PARAMETER (IDM=150)
DIMENSION Z(IDM,IDM),X(IDM), Y(IDM),R(IDM)
REAL H,M,N,TOL
DIMENSION CC(4)
REAL ,PARAMETER::CC=(/9.0,19.0,-5.0,1.0/)
PRINT*,''
PRINT*, '=========================================================='
PRINT*,'METHOD DE ADAMS-MOULTON-PARA EDO DE LA FORMA DY/DX=F(X,Y)'
PRINT*,'============================================================'
PRINT*,''
PRINT*,'INGRESAR EL NUMBER DE PUNTOS'
READ(5,*)N
PRINT*, 'INGRESAR LOS VALORES INICIALES X0 E Y0'
READ*, X(0),Y(0)
PRINT*, 'INGRESAR H'
READ*, H
PRINT*, 'INGRESAR TOLERANCIA'
READ*, TOL
PRINT*,('*',I=1,79)
PRINT '(5X,"RESULTADOS")'
PRINT*,('*',I=1,79)
!APLICANDO EULER- CAUCHY MEJORADO
PRINT 90
90 FORMAT(3X,'EULER-CAUCHY APROXIMATION MEJORADA:'/)
PRINT 100
100 FORMAT(7X,'ITERATION',5X ,'X',16X,'Y')
DO I=1,N
X(I)=X(0)+I*H
ENDDO
PRINT*,0,X(0),Y(0)
DO J=1,3
18. R(J)= Y(J-1)+H*F(X(J-1),Y(J-1))
Y(J)=Y(J-1)+(0.5)*H*(F(X(J-1),Y(J-1))+F(X(J),R(J)))
PRINT*,J,X(J),Y(J)
END DO
PRINT*,''
PRINT 110
110 FORMAT(/3X,'METHOD DE ADMS MOULT:'/)
DO I=1,4
WRITE (*,112)I,CC(I)
112 FORMAT (2X,'CC(',I2,')=',F12.4)
ENDDO
PRINT 113
113 FORMAT(9X ,'X',19X,'Y')
DO J=3,N
IF(J.EQ.3)THEN
Z(0,J)=Y(J)
Y(J)=Z(0,J)
ELSE
Z(0,J)=Y(J-1)
Y(J)=Z(0,J)
ENDIF
M=0
10 M=M+1
Z(M,J)=Y(J-1)+H/24*(9*F(X(J),Y(J))+19*F(X(J-1),Y(J-1))-5*F(X(J-2),Y(J-2))+F(X(J-
3),Y(J-3)))
Y(J)=Z(M,J)
!CALCULAMOS LA TOLERANCIA
EE=ABS(Z(M,J)-Z(M-1,J)) !ERROR ENCONTRADO
IF (EE.GT.TOL) THEN
GOTO 10
END IF
PRINT*, X(J),Y(J)
ENDDO
PRINT*,''
PRINT*,' POR LO TANTO,LUEGO DE LAS ITERACIONES OBTENEMOS:'
PRINT*,''
WRITE (*,121) X(N),Y(N)
121 FORMAT (10X,'Y(',F7.2,')=',F12.4)
PRINT*,''
END PROGRAM
FUNCTION F(X,Y)
F=(-0.02)*Y**2*(X+1)**3
RETURN
END FUNCTION
19. MÉTODO DE NUMEROV
Enunciado del problema: Si el bloque está sometido a la fuerza impresa F= F0cosωt, las leyes
básicas de la física dan lugar a la ecuación diferencial de movimiento:
, donde F0/m=16, ω=8, k/m=64 e y se mide desde la
posición de equilibrio del bloque, usando el método de Numerov con h=0.1 resolver el problema
de valores iniciales y(0)=0.0,y(0.1) =0.07174, t Є (0,0.5)
20. SOLUCIÓN:
Reemplazando los datos tenemos:
𝑑2 𝑦
𝑑𝑡2 = −64𝑦 + 16𝑐𝑜𝑠8𝑡
Usando el método de Numerov:
𝑦 𝑛+1 = [2𝑦𝑛 𝐵 − 𝑦 𝑛−1 𝐶 + 𝐷]
1
𝐴
Siendo g(t)=64+0.0t , s(t)=16cos8t
Usando fortran 90 tenemos:
PROGRAM NUMEROV
PARAMETER (IDM=100)
DIMENSION X(IDM), Y(IDM)
REAL H,N,A,B,C,D
PRINT*,''
PRINT*,
'====================================================================='
PRINT*,'METHOD DE NUMEROV PARA EDOS DE SEGUNDO ORDENCON CONDICIONES
INICIALES'
PRINT*,'==================================================================
===='
PRINT*,''
PRINT*,'INGRESAR EL NUMERO DE PUNTOS N'
READ(5,*)N
PRINT*, 'INGRESAR LOS VALORES INICIALES X0 E Y0'
READ*, X(0),Y(0)
PRINT*, 'INGRESAR LOS VALORES INICIALES X1 E Y1'
READ*, X(1),Y(1)
PRINT*, 'INGRESAR H'
READ*, H
PRINT*,''
PRINT*,('*',I=1,79)
21. PRINT '(5X,"RESULTADOS")'
PRINT*,('*',I=1,79)
PRINT*,''
PRINT 100
100 FORMAT(5X,'ITERATION',5X ,'X',16X,'Y')
DO I=2,N
X(I)=X(0)+I*H
ENDDO
PRINT*,0,X(0),Y(0)
PRINT*,1,X(1),Y(1)
DO J=2,N
A=1+(G(X(J))*H**2)/12
B=1-(G(X(J-1))*H**2)*5/12
C=1+(G(X(J-2))*H**2)/12
D=((S(X(J))+10*S(X(J-1))+S(X(J-2)))/12)*H**2
Y(J)=(2*Y(J-1)*B-Y(J-2)*C+D)/A
PRINT*,J,X(J),Y(J)
END DO
PRINT*,''
PRINT*,''
PRINT*,' POR LO TANTO,LUEGO DE LAS ITERACIONES OBTENEMOS:'
PRINT*,''
WRITE (*,121) X(N),Y(N)
121 FORMAT (10X,'Y(',F7.2,')=',F12.4)
PRINT*,''
END PROGRAM
FUNCTION G(X)
G=64+0*X
RETURN
END FUNCTION
FUNCTION S(X)
S=16*COS(8*X)
RETURN
END FUNCTION
22. METODO DE RELAJACION DE GAUSS-SEIDEL
Las superficies interior y exterior de una chimenea cuya sección transversal se muestra en el
esquema de la figura 5 se encuentran a 100 y 0°C, respectivamente. Calcular las temperaturas
T1, T2, T3, T4.
Usando la ecuación:
Solución:
23. De la ecuación (13):
Nodo 1:
entonces,
Nodo 2:
entonces,
Nodo 3:
entonces,
Nodo 4: entonces,
Ordenando tenemos:
2T2+100-4T1=0
T1+100+T3-4T2=0
T2+100+T4-4T3=0
2T3-4T4=0
Resolviendo el sistema de ecuaciones por el método iterativo de relajación de gauss seidel
tenemos:
T1=48.89°C
T2=47.78°C
T3=42.22°C
T4=21.11°C
PROGRAM GAUSS_SEIDEL
REAL(4) A(10,10) , B(10), X(10,10), TOL
WRITE(*,*)''
WRITE(*,*)' ================================================'
WRITE(*,*)' SOUCION DE SISTEMAS DE ECUACIONES LINEALES'
WRITE(*,*)' ================================================'
WRITE(*,*)''
WRITE(*,*)''
WRITE(*,*)' ================================================'
WRITE(*,*)' METODO DE RELAJACION DE GAUSS-SEIDEL A.X=B'
WRITE(*,*)' ================================================'
WRITE(*,*)''
WRITE(*,*)''
WRITE(*,*)'INGRESE EL ORDEN DE LA MATRIZ A'
READ(*,*) N
WRITE(*,*)''
WRITE(*,*)'INGRESE LOS ELEMENTOS DE LA MATRIZ A'
DO I=1,N
READ(*,*) (A(I,J),J=1,N)
24. END DO
WRITE(*,*) ''
WRITE(*,*) 'INGRESE LOS ELEMENTOS DEL VECTOR B'
DO I=1,N
READ(*,*) B(I)
END DO
WRITE(*,*) ''
WRITE(*,*) 'INGRESE LOS ELEMENTOS DEL VECTOR APROXIMADO X'
DO I=1,N
READ(*,*)X(0,I)
END DO
WRITE(*,*) ''
WRITE(*,*)'INGRESE LA TOLERANCIA %'
READ(*,*)TOL
WRITE(*,*)''
WRITE(*,*)''
WRITE(*,*)''
WRITE(*,*)'================================================================
='
WRITE(*,*)''
WRITE(*,*)''
WRITE(*,*)' =================='
WRITE(*,*)' MATRIZ INGRESADA'
WRITE(*,*)' =================='
WRITE(*,*)''
DO I=1,N
WRITE(*,2)(A(I,J),J=1,N)
END DO
WRITE(*,*)''
WRITE(*,*)''
WRITE(*,*)' ============================================='
WRITE(*,*)' ORDEN DE RESULTADOS DEL '
WRITE(*,*)' APROXIMACION K VECTOR SOLUCION "X"'
WRITE(*,*)' ============================================='
K=0
3 DO I=1,N
SUMA1=0
DO J=1,N
IF (J.GT.I)THEN
SUMA1= SUMA1 + A(I,J)*X(K,J)
END IF
END DO
SUMA2=0
DO J=1,N
IF (J.LT.I)THEN
SUMA2= SUMA2 + A(I,J)*X(K+1,J)
END IF
END DO
X(K+1, I)= (B(I) - SUMA1-SUMA2)/A(I,I)
END DO
WRITE(*,5)K,(X(K+1,J),J=1,N)
!EVALUAMOS LA CONVERGENCIA
DO I=1,N
EA=ABS(X(K+1,I)-X(K,I))
IF(EA.GT.TOL)THEN
25. K=K+1
GOTO 3
END IF
END DO
WRITE(*,*)''
WRITE(*,*)''
WRITE(*,*)' ORDEN K:',K
WRITE(*,*)''
WRITE(*,*)' COMPONENTES DEL VECTOR SOLUCION "X"'
WRITE(*,*)' ===================================='
DO I=1,N
WRITE(*,10)I,X(K+1,I)
END DO
WRITE(*,*) ''
WRITE(*,*) ''
WRITE(*,*) ''
2 FORMAT(2X,7(F8.2))
5 FORMAT(3X,(I2,9X),10(F9.4,3X))
10 FORMAT (2X,I2,10(F9.4,3X))
END
26.
27. SOLUCIÓN BASADA EN LA INTEGRACIÓN NUMÉRICA (MÉTODO ADAMS-
MOULTON-BASHFORTH).
Enunciado del problema: Al modelar la velocidad de los aviones y la pérdida de altitud
cuando se emerge de un picado, las leyes básicas de la física dan lugar a la ecuación
diferencial
, donde θ denota el ángulo de picado (en radianes), V =
V (θ) es la velocidad del avión, g = 9,8 m/s2 es la constante de aceleración, y k es una
constante relacionada con el área de superficie del ala. Para un avión concreto, k =
0,00145, θ0 = -0,786, y V (θ0)=V0 = 150 m/s. Utilice h = 0,006 (que divide θ0 en segmentos
iguales) y n = 131 para estimar, la velocidad del avión a la finalización del picado, es
decir, cuando se endereza hasta θ = 0. (¡Por supuesto, utilice herramientas
tecnológicas!)
SOLUCIÓN:
Usando Euler Mejorado:
𝑌𝑛+1 = 𝑌𝑛 + ∆𝑥 (𝐹( 𝑋 𝑛, 𝑌𝑛) + 𝐹( 𝑋 𝑛+1, 𝑌𝑛+1
∗ )) ∗ 0.5
𝑌𝑛+1
∗
= 𝑌𝑛 + ∆𝑥 (𝐹( 𝑋 𝑛, 𝑌𝑛)
Usando Adams-Moulton-Bashforth:
𝑌𝑛+1
0
= 𝑌𝑛 +
∆𝑋
24
[55𝐹𝑛 − 59𝐹𝑛−1 + 37𝐹𝑛−2 − 9𝐹𝑛−3 ]
𝑌𝑛+1
𝑖+1
= 𝑌𝑛 +
∆𝑋
24
[9𝐹𝑛+1
𝑖
+ 19𝐹𝑛 − 5𝐹𝑛 −1 + 𝐹𝑛 −2]
Utilizando fortran 90 tenemos:
PROGRAM PREDICTOR_CORRECTOR
PARAMETER (IDM=150)
DIMENSION Z(IDM,IDM),X(IDM), Y(IDM),R(IDM)
REAL H,M,N,TOL
DIMENSION CP(4),CC(4)
REAL ,PARAMETER::CP=(/55.0,-59.0,37.0,-9.0/)
REAL ,PARAMETER::CC=(/9.0,19.0,-5.0,1.0/)
PRINT*,''
PRINT*, '=========================================================='
PRINT*,'METHOD DE ADAMS-MOULTON-BASHFORTH PARA EDO DE LA FORMA
DY/DX=F(X,Y)'
PRINT*,'============================================================
'
PRINT*,''
PRINT*,'INGRESAR EL NUMBER DE PUNTOS'
READ(5,*)N
PRINT*, 'INGRESAR LOS VALORES INICIALES X0 E Y0'
READ*, X(0),Y(0)
PRINT*, 'INGRESAR H'
28. READ*, H
PRINT*, 'INGRESAR TOLERANCIA'
READ*, TOL
PRINT*,('*',I=1,79)
PRINT '(5X,"RESULTADOS")'
PRINT*,('*',I=1,79)
!APLICANDO EULER- CAUCHY MEJORADO
PRINT 90
90 FORMAT(3X,'EULER-CAUCHY APROXIMATION MEJORADA:'/)
PRINT 100
100 FORMAT(7X,'ITERATION',5X ,'X',16X,'Y')
DO I=1,N
X(I)=X(0)+I*H
ENDDO
PRINT*,0,X(0),Y(0)
DO J=1,3
R(J)= Y(J-1)+H*F(X(J-1),Y(J-1))
Y(J)=Y(J-1)+(0.5)*H*(F(X(J-1),Y(J-1))+F(X(J),R(J)))
PRINT*,J,X(J),Y(J)
END DO
PRINT*,''
PRINT 110
110 FORMAT(/3X,'PROCEDIMIENTO PREDICTOR-CORRECTOR:'/)
DO J=1,4
WRITE (*,111)J,CP(J)
111 FORMAT (2X,'CP(',I2,')=',F12.4)
ENDDO
PRINT*,''
DO I=1,4
WRITE (*,112)I,CC(I)
112 FORMAT (2X,'CC(',I2,')=',F12.4)
ENDDO
PRINT 113
113 FORMAT(9X ,'X',19X,'Y')
DO J=4,N
Z(0,J)=Y(J-1)+H/24*(55*F(X(J-1),Y(J-1))-59*F(X(J-2),Y(J-2))+37*F(X(J-3),Y(J-
3))-9*F(X(J-4),Y(J-4)))
Y(J)=Z(0,J)
M=0
10 M=M+1
Z(M,J)=Y(J-1)+H/24*(9*F(X(J),Y(J))+19*F(X(J-1),Y(J-1))-5*F(X(J-2),Y(J-
2))+F(X(J-3),Y(J-3)))
Y(J)=Z(M,J)
!CALCULAMOS LA TOLERANCIA
EE=ABS(Z(M,J)-Z(M-1,J)) !ERROR ENCONTRADO
IF (EE.GT.TOL) THEN
GOTO 10
END IF
PRINT*, X(J),Y(J)
ENDDO
PRINT*,''
29. PRINT*,' POR LO TANTO,LUEGO DE LAS ITERACIONES OBTENEMOS:'
PRINT*,''
WRITE (*,121) X(N),Y(N)
121 FORMAT (10X,'Y(',F7.2,')=',F12.4)
PRINT*,''
END PROGRAM
FUNCTION F(X,Y)
!F=4*Y+COS(X**2)
F=-9.8*Y*SIN(X)/(0.00145*(Y**2)-9.8*COS(X))
RETURN
END FUNCTION
30.
31.
32. PROBLEMA1
Elaborar una codificación para el método del Predictor-Corrector Adams
Bashforth-Moulton, y hallar la solución de la siguiente ecuación diferencial.
Y’=4y+cos(x2), considere: x0=0, y0=1.2, xf=1, N=10, tol=0.01.
33. SOLUCIÓN:
PROGRAM PREDICTOR_CORRECTOR
PARAMETER (IDM=150)
DIMENSION Z(IDM,IDM),X(IDM), Y(IDM),R(IDM)
REAL H,M,N,TOL
DIMENSION CP(4),CC(4)
REAL ,PARAMETER::CP=(/55.0,-59.0,37.0,-9.0/)
REAL ,PARAMETER::CC=(/9.0,19.0,-5.0,1.0/)
PRINT*,''
PRINT*, '=========================================================='
PRINT*,'METHOD DE ADAMS-MOULTON-BASHFORTH PARA EDO DE LA FORMA
DY/DX=F(X,Y)'
PRINT*,'============================================================
'
PRINT*,''
PRINT*,'INGRESAR EL NUMBER DE PUNTOS'
READ(5,*)N
PRINT*, 'INGRESAR LOS VALORES INICIALES X0 E Y0'
READ*, X(0),Y(0)
PRINT*, 'INGRESAR H'
READ*, H
PRINT*, 'INGRESAR TOLERANCIA'
READ*, TOL
PRINT*,('*',I=1,79)
PRINT '(5X,"RESULTADOS")'
PRINT*,('*',I=1,79)
!APLICANDO EULER- CAUCHY MEJORADO
PRINT 90
90 FORMAT(3X,'EULER-CAUCHY APROXIMATION MEJORADA:'/)
PRINT 100
100 FORMAT(7X,'ITERATION',5X ,'X',16X,'Y')
DO I=1,N
X(I)=X(0)+I*H
ENDDO
PRINT*,0,X(0),Y(0)
DO J=1,3
R(J)= Y(J-1)+H*F(X(J-1),Y(J-1))
Y(J)=Y(J-1)+(0.5)*H*(F(X(J-1),Y(J-1))+F(X(J),R(J)))
PRINT*,J,X(J),Y(J)
END DO
PRINT*,''
PRINT 110
110 FORMAT(/3X,'PROCEDIMIENTO PREDICTOR-CORRECTOR:'/)
DO J=1,4
WRITE (*,111)J,CP(J)
111 FORMAT (2X,'CP(',I2,')=',F12.4)
ENDDO
PRINT*,''
DO I=1,4
WRITE (*,112)I,CC(I)
112 FORMAT (2X,'CC(',I2,')=',F12.4)
34. ENDDO
PRINT 113
113 FORMAT(9X ,'X',19X,'Y')
DO J=4,N
Z(0,J)=Y(J-1)+H/24*(55*F(X(J-1),Y(J-1))-59*F(X(J-2),Y(J-2))+37*F(X(J-3),Y(J-
3))-9*F(X(J-4),Y(J-4)))
Y(J)=Z(0,J)
M=0
10 M=M+1
Z(M,J)=Y(J-1)+H/24*(9*F(X(J),Y(J))+19*F(X(J-1),Y(J-1))-5*F(X(J-2),Y(J-
2))+F(X(J-3),Y(J-3)))
Y(J)=Z(M,J)
!CALCULAMOS LA TOLERANCIA
EE=ABS(Z(M,J)-Z(M-1,J)) !ERROR ENCONTRADO
IF (EE.GT.TOL) THEN
GOTO 10
END IF
PRINT*, X(J),Y(J)
ENDDO
PRINT*,''
PRINT*,' POR LO TANTO,LUEGO DE LAS ITERACIONES OBTENEMOS:'
PRINT*,''
WRITE (*,121) X(N),Y(N)
121 FORMAT (10X,'Y(',F7.2,')=',F12.4)
PRINT*,''
END PROGRAM
FUNCTION F(X,Y)
F=4*Y+COS(X**2)
!F=-9.8*Y*SIN(X)/(0.00145*(Y**2)-9.8*COS(X))
RETURN
END FUNCTION
35. PROGRAM NUMEROV
PARAMETER (IDM=100)
DIMENSION X(IDM), Y(IDM)
REAL H,N,A,B,C,D
PRINT*,''
PRINT*,
'==================================================================
==='
PRINT*,'METHOD DE NUMEROV PARA EDOS DE SEGUNDO ORDEN CON
CONDICIONES INICIALES'
PRINT*,'============================================================
=========='
PRINT*,''
36. PRINT*,'INGRESAR EL NUMERO DE PUNTOS N'
READ(5,*)N
PRINT*, 'INGRESAR LOS VALORES INICIALES X0 E Y0'
READ*, X(0),Y(0)
PRINT*, 'INGRESAR LOS VALORES INICIALES X1 E Y1'
READ*, X(1),Y(1)
PRINT*, 'INGRESAR H'
READ*, H
PRINT*,''
PRINT*,('*',I=1,79)
PRINT '(5X,"RESULTADOS")'
PRINT*,('*',I=1,79)
PRINT*,''
PRINT 100
100 FORMAT(5X,'ITERATION',5X ,'X',16X,'Y')
DO I=2,N
X(I)=X(0)+I*H
ENDDO
PRINT*,0,X(0),Y(0)
PRINT*,1,X(1),Y(1)
DO J=2,N
A=1+(G(X(J))*H**2)/12
B=1-(G(X(J-1))*H**2)*5/12
C=1+(G(X(J-2))*H**2)/12
D=((S(X(J))+10*S(X(J-1))+S(X(J-2)))/12)*H**2
Y(J)=(2*Y(J-1)*B-Y(J-2)*C+D)/A
PRINT*,J,X(J),Y(J)
END DO
PRINT*,''
PRINT*,''
PRINT*,' POR LO TANTO,LUEGO DE LAS ITERACIONES OBTENEMOS:'
PRINT*,''
WRITE (*,121) X(N),Y(N)
121 FORMAT (10X,'Y(',F7.2,')=',F12.4)
PRINT*,''
END PROGRAM
!FUNCTION G(X)
!G=-3*X
!RETURN
!END FUNCTION
!FUNCTION S(X)
!S=5*COS(2*X)
!RETURN
!END FUNCTION
FUNCTION G(X)
G=64+0*X
RETURN
END FUNCTION
37. FUNCTION S(X)
S=16*COS(8*X)
RETURN
END FUNCTION
PROBLEMA1
Elaborar una codificación por el método del Corrector Adams Moulton, y hallar la
solución de la siguiente ecuación diferencial.
Y’=4y+cos(x2), considere: x0=0, y0=1.2, xf=1, n=10, tol=0.01.
SOLUCIÓN:
PROGRAM ADAMS_MOULTON
PARAMETER (IDM=150)
DIMENSION Z(IDM,IDM),X(IDM), Y(IDM),R(IDM)
REAL H,M,N,TOL
DIMENSION CC(4)
REAL ,PARAMETER::CC=(/9.0,19.0,-5.0,1.0/)
PRINT*,''
PRINT*, '=========================================================='
PRINT*,'METHOD DE ADAMS-MOULTON PARA EDO DE LA FORMA DY/DX=F(X,Y)'
PRINT*,'============================================================
'
PRINT*,''
PRINT*,'INGRESAR EL NUMBER DE PUNTOS'
READ(5,*)N
PRINT*, 'INGRESAR LOS VALORES INICIALES X0 E Y0'
READ*, X(0),Y(0)
PRINT*, 'INGRESAR H'
READ*, H
38. PRINT*, 'INGRESAR TOLERANCIA'
READ*, TOL
PRINT*,('*',I=1,79)
PRINT '(5X,"RESULTADOS")'
PRINT*,('*',I=1,79)
!APLICANDO EULER- CAUCHY MEJORADO
PRINT 90
90 FORMAT(3X,'EULER-CAUCHY APROXIMATION MEJORADA:'/)
PRINT 100
100 FORMAT(7X,'ITERATION',5X ,'X',16X,'Y')
DO I=1,N
X(I)=X(0)+I*H
ENDDO
PRINT*,0,X(0),Y(0)
DO J=1,3
R(J)= Y(J-1)+H*F(X(J-1),Y(J-1))
Y(J)=Y(J-1)+(0.5)*H*(F(X(J-1),Y(J-1))+F(X(J),R(J)))
PRINT*,J,X(J),Y(J)
END DO
PRINT*,''
PRINT 110
110 FORMAT(/3X,'PROCEDIMIENTO PREDICTOR-CORRECTOR:'/)
DO I=1,4
WRITE (*,112)I,CC(I)
112 FORMAT (2X,'CC(',I2,')=',F12.4)
ENDDO
PRINT 113
113 FORMAT(9X ,'X',19X,'Y')
DO J=3,N
Z(0,J)=Y(J)
M=0
10 M=M+1
Z(M,J)=Y(J-1)+H/24*(9*F(X(J),Y(J))+19*F(X(J-1),Y(J-1))-5*F(X(J-2),Y(J-
2))+F(X(J-3),Y(J-3)))
Y(J)=Z(M,J)
!CALCULAMOS LA TOLERANCIA
EE=ABS(Z(M,J)-Z(M-1,J)) !ERROR ENCONTRADO
IF (EE.GT.TOL) THEN
GOTO 10
END IF
Y(J+1)=Z(M,J)
PRINT*, X(J),Y(J)
ENDDO
PRINT*,''
PRINT*,' POR LO TANTO,LUEGO DE LAS ITERACIONES OBTENEMOS:'
PRINT*,''
WRITE (*,121) X(N),Y(N)
121 FORMAT (10X,'Y(',F7.2,')=',F12.4)
PRINT*,''
END PROGRAM
FUNCTION F(X,Y)
39. F=4*Y+COS(X**2)
!F=-9.8*Y*SIN(X)/(0.00145*(Y**2)-9.8*COS(X))
RETURN
END FUNCTION
PROGRAM ADAMS_MOULTON
PARAMETER (IDM=150)
DIMENSION Z(IDM,IDM),X(IDM), Y(IDM),R(IDM)
REAL H,M,N,TOL
DIMENSION CC(4)
REAL ,PARAMETER::CC=(/9.0,19.0,-5.0,1.0/)
PRINT*,''
PRINT*, '=========================================================='
PRINT*,'METHOD DE ADAMS-MOULTON-PARA EDO DE LA FORMA DY/DX=F(X,Y)'
PRINT*,'============================================================
'
PRINT*,''
40. PRINT*,'INGRESAR EL NUMBER DE PUNTOS'
READ(5,*)N
PRINT*, 'INGRESAR LOS VALORES INICIALES X0 E Y0'
READ*, X(0),Y(0)
PRINT*, 'INGRESAR H'
READ*, H
PRINT*, 'INGRESAR TOLERANCIA'
READ*, TOL
PRINT*,('*',I=1,79)
PRINT '(5X,"RESULTADOS")'
PRINT*,('*',I=1,79)
!APLICANDO EULER- CAUCHY MEJORADO
PRINT 90
90 FORMAT(3X,'EULER-CAUCHY APROXIMATION MEJORADA:'/)
PRINT 100
100 FORMAT(7X,'ITERATION',5X ,'X',16X,'Y')
DO I=1,N
X(I)=X(0)+I*H
ENDDO
PRINT*,0,X(0),Y(0)
DO J=1,3
R(J)= Y(J-1)+H*F(X(J-1),Y(J-1))
Y(J)=Y(J-1)+(0.5)*H*(F(X(J-1),Y(J-1))+F(X(J),R(J)))
PRINT*,J,X(J),Y(J)
END DO
PRINT*,''
PRINT 110
110 FORMAT(/3X,'METHOD DE ADMS MOULT:'/)
DO I=1,4
WRITE (*,112)I,CC(I)
112 FORMAT (2X,'CC(',I2,')=',F12.4)
ENDDO
PRINT 113
113 FORMAT(9X ,'X',19X,'Y')
DO J=3,N
IF(J.EQ.3)THEN
Z(0,J)=Y(J)
Y(J)=Z(0,J)
ELSE
Z(0,J)=Y(J-1)
Y(J)=Z(0,J)
ENDIF
M=0
10 M=M+1
Z(M,J)=Y(J-1)+H/24*(9*F(X(J),Y(J))+19*F(X(J-1),Y(J-1))-5*F(X(J-2),Y(J-
2))+F(X(J-3),Y(J-3)))
Y(J)=Z(M,J)
!CALCULAMOS LA TOLERANCIA
EE=ABS(Z(M,J)-Z(M-1,J)) !ERROR ENCONTRADO
IF (EE.GT.TOL) THEN
GOTO 10
41. END IF
PRINT*, X(J),Y(J)
ENDDO
PRINT*,''
PRINT*,' POR LO TANTO,LUEGO DE LAS ITERACIONES OBTENEMOS:'
PRINT*,''
WRITE (*,121) X(N),Y(N)
121 FORMAT (10X,'Y(',F7.2,')=',F12.4)
PRINT*,''
END PROGRAM
FUNCTION F(X,Y)
F=4*Y+COS(X**2)
!F=-9.8*Y*SIN(X)/(0.00145*(Y**2)-9.8*COS(X))
RETURN
END FUNCTION
42. PROBLEMA 2
Elaborar una codificación por el método predictor corrector, y hallar la solución
de la siguiente ecuación diferencial.
Y’=4y+cos(x2), considere: x0=0, y0=1.2, xf=1, n=10, tol=0.01.
SOLUCIÓN:
PROGRAM PREDICTOR_CORRECTOR
PARAMETER (IDM=150)
DIMENSION Z(IDM,IDM),X(IDM), Y(IDM),R(IDM)
REAL H,M,N,TOL
DIMENSION CP(4),CC(4)
REAL ,PARAMETER::CP=(/55.0,-59.0,37.0,-9.0/)
REAL ,PARAMETER::CC=(/9.0,19.0,-5.0,1.0/)
PRINT*,''
PRINT*, '=========================================================='
PRINT*,'METHOD DE ADAMS-MOULTON-BASHFORTH PARA EDO DE LA FORMA
DY/DX=F(X,Y)'
PRINT*,'============================================================
'
PRINT*,''
PRINT*,'INGRESAR EL NUMBER DE PUNTOS'
READ(5,*)N
PRINT*, 'INGRESAR LOS VALORES INICIALES X0 E Y0'
READ*, X(0),Y(0)
PRINT*, 'INGRESAR H'
READ*, H
PRINT*, 'INGRESAR TOLERANCIA'
READ*, TOL
PRINT*,('*',I=1,79)
PRINT '(5X,"RESULTADOS")'
PRINT*,('*',I=1,79)
!APLICANDO EULER- CAUCHY MEJORADO
PRINT 90
90 FORMAT(3X,'EULER-CAUCHY APROXIMATION MEJORADA:'/)
PRINT 100
100 FORMAT(7X,'ITERATION',5X ,'X',16X,'Y')
DO I=1,N
X(I)=X(0)+I*H
ENDDO
PRINT*,0,X(0),Y(0)
DO J=1,3
R(J)= Y(J-1)+H*F(X(J-1),Y(J-1))
Y(J)=Y(J-1)+(0.5)*H*(F(X(J-1),Y(J-1))+F(X(J),R(J)))
PRINT*,J,X(J),Y(J)
END DO
PRINT*,''
PRINT 110
110 FORMAT(/3X,'PROCEDIMIENTO PREDICTOR-CORRECTOR:'/)
DO J=1,4
WRITE (*,111)J,CP(J)
43. 111 FORMAT (2X,'CP(',I2,')=',F12.4)
ENDDO
PRINT*,''
DO I=1,4
WRITE (*,112)I,CC(I)
112 FORMAT (2X,'CC(',I2,')=',F12.4)
ENDDO
PRINT 113
113 FORMAT(9X ,'X',19X,'Y')
DO J=4,N
Z(0,J)=Y(J-1)+H/24*(55*F(X(J-1),Y(J-1))-59*F(X(J-2),Y(J-2))+37*F(X(J-3),Y(J-
3))-9*F(X(J-4),Y(J-4)))
Y(J)=Z(0,J)
M=0
10 M=M+1
Z(M,J)=Y(J-1)+H/24*(9*F(X(J),Y(J))+19*F(X(J-1),Y(J-1))-5*F(X(J-2),Y(J-
2))+F(X(J-3),Y(J-3)))
Y(J)=Z(M,J)
!CALCULAMOS LA TOLERANCIA
EE=ABS(Z(M,J)-Z(M-1,J)) !ERROR ENCONTRADO
IF (EE.GT.TOL) THEN
GOTO 10
END IF
PRINT*, X(J),Y(J)
ENDDO
PRINT*,''
PRINT*,' POR LO TANTO,LUEGO DE LAS ITERACIONES OBTENEMOS:'
PRINT*,''
WRITE (*,121) X(N),Y(N)
121 FORMAT (10X,'Y(',F7.2,')=',F12.4)
PRINT*,''
END PROGRAM
FUNCTION F(X,Y)
F=4*Y+COS(X**2)
!F=-9.8*Y*SIN(X)/(0.00145*(Y**2)-9.8*COS(X))
RETURN
END FUNCTION
44. PROBLEMA 3
Elaborar una codificaciónpara el Método de Stormer-Verlet pero adaptado por el método
de cambio de variable a una ecuación diferencial de segundo orden; luego resolver los
siguientes problemas:
a) Resolver la ecuación diferencial: Y”=5XY’+COS(Y),considere lo siguiente x0=0,
y0=1.7; x1=0.1,y1=1.715; xf=1, tol=0.01.
SOLUCIÓN:
PROGRAM STORMER_VERLET
PARAMETER (IDM=100)
DIMENSION X(IDM), Y(IDM)
REAL H,N,DY,B,EE,TOL
PRINT*,''
45. PRINT*,
'==================================================================
==='
PRINT*,'METHOD DE STORMER VERLET PARA EDO'
PRINT*,'DE SEGUNDO ORDEN CON CONDICIONES INICIALES'
PRINT*,'============================================================
=========='
PRINT*,''
PRINT*,'INGRESAR EL NUMERO DE PUNTOS N'
READ(5,*)N
PRINT*, 'INGRESAR LOS VALORES INICIALES X0 E Y0'
READ*, X(0),Y(0)
PRINT*, 'INGRESAR LOS VALORES INICIALES X1 E Y1'
READ*, X(1),Y(1)
PRINT*, 'INGRESAR H'
READ*, H
PRINT*, 'INGRESAR LA TOL'
READ*, TOL
PRINT*,''
PRINT*,('*',I=1,79)
PRINT '(5X,"RESULTADOS")'
PRINT*,('*',I=1,79)
PRINT*,''
PRINT 100
100 FORMAT(11X,'N',7X ,'X(N)',14X,'Y(N)')
DO I=2,N
X(I)=X(0)+I*H
ENDDO
PRINT*,0,X(0),Y(0)
PRINT*,1,X(1),Y(1)
DO J=2,N
A=Y(J-1)
10 DY=0.5*(A-Y(J-2))/H
B=F(X(J-1),Y(J-1),DY)
Y(J)=2*Y(J-1)-Y(J-2)+B*H**2
EE=ABS(Y(J)-A) !ERROR ENCONTRADO
IF (EE.GT.TOL) THEN
A=(Y(J)+A)/2
GOTO 10
END IF
PRINT*,J,X(J),Y(J)
END DO
PRINT*,''
PRINT*,' POR LO TANTO,LUEGO DE LAS ITERACIONES OBTENEMOS:'
PRINT*,''
WRITE (*,121) X(N),Y(N)
121 FORMAT (10X,'Y(',F7.2,')=',F12.4)
PRINT*,''
END PROGRAM
FUNCTION F(X,Y,Z)
46. F=5*X*Z+COS(Y)
RETURN
END FUNCTION
PROBLEMA 4
Elaborar una codificación por el Método de Numerov, y hallar la solución de la siguiente
ecuación diferencial de segundo orden:
Y”=3XY+5 COS(2X),considere: x0=0,y0=1.8; x1=0.1, y1=1.825; xf=1
PROGRAM NUMEROV
PARAMETER (IDM=100)
DIMENSION X(IDM), Y(IDM)
REAL H,N,A,B,C,D
PRINT*,''
PRINT*,
'====================================================================
='
PRINT*,'METHOD DE NUMEROV PARA EDOS DE SEGUNDO ORDEN CON
CONDICIONES INICIALES'
PRINT*,'==============================================================
========'
PRINT*,''
PRINT*,'INGRESAR EL NUMERO DE PUNTOS N'
47. READ(5,*)N
PRINT*, 'INGRESAR LOS VALORES INICIALES X0 E Y0'
READ*, X(0),Y(0)
PRINT*, 'INGRESAR LOS VALORES INICIALES X1 E Y1'
READ*, X(1),Y(1)
PRINT*, 'INGRESAR H'
READ*, H
PRINT*,''
PRINT*,('*',I=1,79)
PRINT '(5X,"RESULTADOS")'
PRINT*,('*',I=1,79)
PRINT*,''
PRINT 100
100 FORMAT(5X,'ITERATION',5X ,'X',16X,'Y')
DO I=2,N
X(I)=X(0)+I*H
ENDDO
PRINT*,0,X(0),Y(0)
PRINT*,1,X(1),Y(1)
DO J=2,N
A=1+(G(X(J))*H**2)/12
B=1-(G(X(J-1))*H**2)*5/12
C=1+(G(X(J-2))*H**2)/12
D=((S(X(J))+10*S(X(J-1))+S(X(J-2)))/12)*H**2
Y(J)=(2*Y(J-1)*B-Y(J-2)*C+D)/A
PRINT*,J,X(J),Y(J)
END DO
PRINT*,''
PRINT*,''
PRINT*,' POR LO TANTO,LUEGO DE LAS ITERACIONES OBTENEMOS:'
PRINT*,''
WRITE (*,121) X(N),Y(N)
121 FORMAT (10X,'Y(',F7.2,')=',F12.4)
PRINT*,''
END PROGRAM
FUNCTION G(X)
G=-3*X
RETURN
END FUNCTION
FUNCTION S(X)
S=5*COS(2*X)
RETURN
END FUNCTION