Page 844 - Chapra y Canale. Metodos Numericos para Ingenieros 5edición_Neat
P. 844
820 PROBLEMAS DE VALORES EN LA FRONTERA Y DE VALORES PROPIOS
IVPRK se implementa con la siguiente instrucción CALL:
CALL IVPRK (IDO, N, FCN, T, TEND, TOL, PARAM, Y)
donde
IDO = Bandera que indica el estado de los cálculos. Normalmente, el llamado inicial
se hace con IDO = 1. La rutina después hace a IDO = 2, y este valor se usa
para todos, menos el último llamado que se hace con IDO = 3. Este llamado
final se utiliza para liberar espacio de trabajo, el cual se alojó automática-
mente mediante el llamado inicial con IDO = 1. No se realiza ninguna inte-
gración en este llamado final.
N = Número de ecuaciones diferenciales. (Entrada)
FCN = SUBRUTINA hecha por el usuario para evaluar funciones.
T = Variable independiente. (Entrada/Salida) En la entrada, T contiene el valor
inicial. En la salida; T se reemplaza por TEND, a menos que se hayan pre-
sentado condiciones de error.
TEND = Valor de t donde se requiere la solución. (Entrada) El valor TEND puede ser
menor que el valor inicial de t.
TOL = Tolerancia para el control del error. (Entrada) Se hace un intento para con-
trolar la norma del error local, de tal forma que el error global sea propor-
cional a TOL.
PARAM = Arreglo de punto flotante de tamaño 50, que contiene parámetros opciona-
les.
Y = Arreglo de tamaño N de las variables dependientes. (Entrada/Salida) En la
entrada, Y contiene los valores iniciales. En la salida, Y contiene la solución
aproximada.
La subrutina FCN debe escribirse de tal manera que contenga a las ecuaciones di-
ferenciales. Deberá ser de la forma general,
subroutine fcn (n, t, y, yprime)
integer n
real t, y(n), yprime(n)
yprime(1) = . . .
yprime(2) = . . .
return
end
donde la línea “yprime(i) = …” es donde se escribe la i-ésima EDO. FCN debe decla-
rarse EXTERNAL en el programa de llamado.
EJEMPLO 27.11 Uso de IMSL para resolver EDO
Planteamiento del problema. Con IVPRK resuelva el mismo sistema de EDO de-
predador-presa del ejemplo 27.9.
Solución. Un ejemplo de un programa principal en Fortran 90, utilizando la función
IVPRK para resolver este problema, se puede escribir como:
6/12/06 14:03:10
Chapra-27.indd 820 6/12/06 14:03:10
Chapra-27.indd 820

