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

574                     APROXIMACIÓN DE FOURIER

                                           x   0.05   0.12    0.15   0.30    0.45    0.70   0.84     1.05
                                           y   0.957  0.851   0.832  0.720   0.583   0.378  0.295   0.156


                                      Solución.  Un ejemplo de un programa principal y una función en Fortran 90 usando
                                      RCURV para resolver este problema se escribe como sigue:
                                         PROGRAM Fitpoly
                                         use msimsl
                                         IMPLICIT NONE
                                         INTEGER::ndeg,nobs,i,j
                                         PARAMETER (ndeg=3, nobs=8)
                                         REAL::b(ndeg+1),sspoly(ndeg+1),stat(10),x(nobs),y(nobs),
                                            ycalc(nobs)
                                         DATA x/0.05,0.12,0.15,0.30,0.45,0.70,0.84,1.05/
                                         DATA y/0.957,0.851,0.832,0.720,0.583,0.378,0.295,
                                            0.156/
                                         CALL RCURV(nobs,x,y,ndeg,B,sspoly,stat)
                                         PRINT *, ‘El polinomio ajustado es’
                                         DO i = 1,ndeg+1
                                           PRINT ‘(1X, “X ˆ Y”, I1,“ TERM: “,F8.4)’, i-1, b(i)
                                         END DO
                                         PRINT *
                                         PRINT ‘(1X,“R ˆ Y2: “,F5.2,“%”)’,stat(5)
                                         PRINT *
                                         PRINT *, ‘NO. X Y YCALC’
                                         DO i = 1, nobs
                                           ycalc=0.
                                           DO j = 1,ndeg+1
                                             ycalc(i)=ycalc(i)+b(j)*x(i)**(j-1)
                                           END DO
                                           PRINT ‘(1X,I8,3(5X,F8.4))’, i, x(i), y(i), ycalc(i)
                                         END DO
                                         END

                                      Un ejemplo corrido es
                                         El polimomio ajustado es
                                         X^0 TERM:   .9909
                                         X^1 TERM: -1.0312
                                         X^2 TERM:   .2785
                                         X^3 TERM:  -.0513
                                         R^2: 99.81%
                                                  NO.          X             Y           YCALC
                                                   1         .0500         .9570         .9401
                                                   2         .1200         .8510         .8711
                                                   3         .1500         .8320         .8423
                                                   4         .3000         .7200         .7053
                                                   5         .4500         .5830         .5786
                                                   6         .7000         .3780         .3880
                                                   7         .8400         .2950         .2908
                                                   8        1.0500         .1560         .1558





                                                                                                         6/12/06   13:58:30
          Chapra-19.indd   574
          Chapra-19.indd   574                                                                           6/12/06   13:58:30
   593   594   595   596   597   598   599   600   601   602   603