/*************************************************************************************************************************************/ /* */ /* 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"); } }