Page 220 - Chapra y Canale. Metodos Numericos para Ingenieros 5edición_Neat
P. 220

196                     RAÍCES DE POLINOMIOS

                                         X0 = Longitud del vector NROOT que contiene los valores iniciales. (Entrada)
                                         X = Longitud del vector NROOT que contiene las raíces calculadas. (Salida)
                                         INFO = Longitud del vector entero NROOT. (Salida)
                                                Contiene el número de iteraciones para encontrar cada raíz.
                                         Observe que las iteraciones terminan cuando se satisface cualquiera de los criterios
                                      de terminación o cuando se excede el número máximo de iteraciones. La función F
                                      tiene el formato general
                                         FUNCTION F(X)
                                         REAL F,X
                                         F = ...
                                         END

                                      donde la línea “F = ...” es donde se escribe la función de la variable desconocida X.
                        EJEMPLO 7.8  Uso de IMSL para localizar una raíz simple

                                      Planteamiento del problema.  Use ZREAL para determinar la raíz de la función
                                      trascendente
                                         ƒ(x) = x – cos x

                                      Solución.  Un ejemplo del programa principal en Fortran 90 y del uso de la función
                                      ZREAL para resolver este problema se escribe como

                                         PROGRAM Root
                                         IMPLICIT NONE
                                         INTEGER::nroot
                                         PARAMETER (nroot=1)
                                         INTEGER::itmax=50
                                         REAL::errabs=0.,errrel=1.E-5,eps=0.,eta=0.
                                         REAL::f,x0(nroot),x(nroot)
                                         EXTERNAL f
                                         INTEGER::info(nroot)
                                         PRINT *, “Introduzca los valores iniciales”
                                         READ *, x0
                                         CALL ZREAL(f,errabs,errrel,eps,eta,nroot,itmax,x0,x,info)
                                         PRINT *, “raíz = ”, x
                                         PRINT *, “iteraciones = ”, info
                                         END PROGRAM

                                         FUNCTION f(x)
                                         IMPLICIT NONE
                                         REAL::f,x
                                         f = x – cos(x)
                                         END FUNCTION
                                         La salida es:
                                         Introduzca el valor inicial
                                         0.5
                                         raíz =       7.390851E-01
                                         iteraciones =               5





                                                                                                         6/12/06   13:51:29
          Chapra-07.indd   196                                                                           6/12/06   13:51:29
          Chapra-07.indd   196
   215   216   217   218   219   220   221   222   223   224   225