/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*         D E V E L O P P E M E N T   E N   S E R I E   D U   C O S I N U S   E T   D U   S I N U S                                 */
/*         C I R C U L A I R E   E T   H Y P E R B O L I Q U E  :                                                                    */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xtc/DeveloppementCosinusSinusCirculaireHyperbolique.01$c' :                                                    */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, 20210208105035).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

#include  "INCLUDES.01.I"

#define   ANGLE_0                                                                                                                       \
                    0
#define   ANGLE_N                                                                                                                       \
                    PI_SUR_4
#define   PAS                                                                                                                           \
                    0.1

#define   N0                                                                                                                            \
                    0
#define   N                                                                                                                             \
                    9

double    CosinusSinus(u,Cosinus,CirculaireHyperbolique)
double    u;
int       Cosinus;
                                        /* Indicateur :                                                                              */
                                        /*                                                                                           */
                                        /*                  VRAI ==>  cos(...)                                                       */
                                        /*                  FAUX ==>  sin(...)                                                       */
                                        /*                                                                                           */
int       CirculaireHyperbolique;
                                        /* Indicateur :                                                                              */
                                        /*                                                                                           */
                                        /*                  -1   ==>  Circulaire                                                     */
                                        /*                  +1   ==>  Hyperbolique                                                   */
                                        /*                                                                                           */
          {
          double    serie=0;
          double    numerateur=1;
          double    denominateur=1;
          int       signe=+1;

          int       n;

          for       (n=N0 ; n<=N ; n++)
                    {
                    if        (EST_IMPAIR(n))
                              {
                              if        (IFEQ(Cosinus,FAUX))
                                        {
                                        serie = serie + (signe*(numerateur/denominateur));
                                        signe = CirculaireHyperbolique*signe;
                                        /* Cas du 'sin(...)'.                                                                        */
                                        }
                              else
                                        {
                                        }
                              }
                    else
                              {
                              if        (IFEQ(Cosinus,VRAI))
                                        {
                                        serie = serie + (signe*(numerateur/denominateur));
                                        signe = CirculaireHyperbolique*signe;
                                        /* Cas du 'cos(...)'.                                                                        */
                                        }
                              else
                                        {
                                        }
                              }

                    numerateur = numerateur*u;
                    denominateur = denominateur*(n+1);
                    }

          return(serie);
          }

main()
          {
          double    angle;

          for       (angle=ANGLE_0 ; angle<=ANGLE_N ; angle=angle+PAS)
                    {
                    printf("serie=%.8f --> cosc=%.8f          serie=%.8f --> sinc=%.8f"
                          ,CosinusSinus(angle,VRAI,-1),cos(angle)
                          ,CosinusSinus(angle,FAUX,-1),sin(angle)
                           );
                    printf("          ");
                    printf("serie=%.8f --> cosh=%.8f          serie=%.8f --> cosh=%.8f"
                          ,CosinusSinus(angle,VRAI,+1),cosh(angle)
                          ,CosinusSinus(angle,FAUX,+1),sinh(angle)
                           );
                    printf("\n");
                    }
          }



Copyright © Jean-François Colonna, 2021-2023.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2021-2023.