papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Calul des fonctions circulaires et hyperboliques Ven 2 Sep 2016 - 17:32 | |
| - Code:
-
rem ============================================================================ rem Programme universel pour les fonctions circulaires et hyperboliques rem Par Papydall rem Ref : Le livre de Arthur Engel "Mathématique et Informatique" rem Frankfort, 16 Janvier 1977 rem ============================================================================ rem Calcul de : rem Sinus(x), Cosinus(x) rem Ln(x) rem ArcSin(x), ArcCos(x), ArcTan(x), ArcCot(x) rem ArgSinh(x), ArgCosh(x), ArgTanh(x), ArgCoth(x)
rem ============================================================================ dim resultat font_bold 0 : print : print ' Exemples d'appel
Arc_Sinus(-1) : print resultat; : print " ---> " ; : print asin(-1) Arc_Cosinus(-1) : print resultat; : print " ---> " ; : print acos(-1) Arc_Tangente(-1) : print resultat; : print " ---> " ; : print atn(-1) print " ===========================================" Arc_CoTangente(-1) : print resultat print " ===========================================" Argument_Sinus_Hyperbolique(1) : print resultat Argument_CoSinus_Hyperbolique(5) : print resultat Argument_Tangente_Hyperbolique(0.5) : print resultat Argument_CoTangente_Hyperbolique(.99999) : print resultat print " ===========================================" Logarithme_Neperien(10) : print resultat; : print " ---> " ; : print log(10) print " ===========================================" Sinus(0) : print resultat; : print " ---> " ; : print sin(0) Sinus(pi/6) : print resultat; : print " ---> " ; : print sin(pi/6) Sinus(pi/2) : print resultat; : print " ---> " ; : print sin(pi/2) Sinus(pi) : print resultat; : print " ---> " ; : print sin(pi) Sinus(pi/180) : print resultat; : print " ---> " ; : print sin(pi/180) print " ==========================================" Cosinus(0) : print resultat; : print " ---> " ; : print cos(0) Cosinus(pi/6) : print resultat; : print " ---> " ; : print cos(pi/6) Cosinus(pi/2) : print resultat; : print " ---> " ; : print cos(pi/2) Cosinus(pi) : print resultat; : print " ---> " ; : print cos(pi) Cosinus(pi/180) : print resultat; : print " ---> " ; : print cos(pi/180) print " ==========================================" end rem ============================================================================ ' Ce très court code permet de calculer pas moins de 9 fonctions. ' Les paramètres s et c déterminent quelle fonction à calculer : ' Ln(x) ' ArcSin(x), ArcCos(x), ArcTan(x), ArcCot(x) ' ArgSinh(x), ArgCosh(x), ArgTanh(x), ArgCoth(x)
SUB Programme_universel(s,c) dim_local epsilon : epsilon = power(10,0-10) while abs(1-c) >= epsilon c = sqr((1+c)/2) s = s/c end_while resultat = s END_SUB rem ============================================================================ SUB Erreur() message "Erreur dans le domaine de définition" END_SUB rem ============================================================================ ' Domaine de définition : -1 <= x <= 1 SUB Arc_Sinus(x) if abs(x) > 1 then Erreur() : exit_sub Programme_Universel(x,sqr(1-x*x)) END_SUB rem ============================================================================ ' Domaine de définition : -1 < x <= 1 SUB Arc_Cosinus(x) dim_local epsilon : epsilon = power(10,0-10) if abs(x) > 1 then Erreur() : exit_sub if x <= -1 then x = x + epsilon Programme_Universel(sqr(1-x*x),x) END_SUB rem ============================================================================ ' Domaine de définition : quelque soit x SUB Arc_Tangente(x) dim_local aux : aux = sqr(1+x*x) Programme_Universel(x/aux,1/aux) END_SUB rem ============================================================================ ' Domaine de définition : quelque soit x SUB Arc_CoTangente(x) dim_local aux : aux = sqr(1+x*x) Programme_Universel(1/aux,x/aux) END_SUB rem ============================================================================ ' Domaine de définition : x > 0 SUB Logarithme_Neperien(x) dim_local aux1,aux2 if x <= 0 then Erreur() : exit_sub aux1 = .5*(x-1/x) : aux2 = .5*(x+1/x) Programme_Universel(aux1,aux2) END_SUB rem ============================================================================ ' Domaine de définition : quelque soit x SUB Argument_Sinus_Hyperbolique(x) dim_local aux : aux = sqr(1+x*x) Programme_Universel(x,aux) END_SUB rem ============================================================================ ' Domaine de définition : x >= 1 SUB Argument_CoSinus_Hyperbolique(x) if x < 1 then Erreur() : exit_sub dim_local aux : aux = sqr(x*x-1) Programme_Universel(aux,x) END_SUB rem ============================================================================ ' Domaine de définition : -1 < x < 1 SUB Argument_Tangente_Hyperbolique(x) if abs(x) >= 1 then Erreur() : exit_sub dim_local aux : aux = sqr(1-x*x) Programme_Universel(x/aux,1/aux) END_SUB rem ============================================================================ ' Domaine de définition : -1 < x < 1 SUB Argument_CoTangente_Hyperbolique(x) if abs(x) >= 1 then Erreur() : exit_sub dim_local aux : aux = sqr(1-x*x) Programme_Universel(1/aux,x/aux) END_SUB rem ============================================================================ ' calcul de sins(x) SUB sinus(x) dim_local n : n = 15 dim_local zero : zero = power(10,0-9) dim_local s s = 2*x/power(3,n) while n > 0 s = s*(3-s*s) n = n - 1 end_while resultat = s/2 if abs(resultat) < zero then resultat = 0 END_SUB rem ============================================================================ ' Calcul de cosinus(x) SUB Cosinus(x) dim_local n : n = 15 dim_local zero : zero = power(10,0-9) dim_local c,s : s = 2 c = x*x/(2*power(4,n)) while n > 0 c = 2*c*(2-c) n = n-1 end_while resultat = 1-c if abs(resultat) < zero then resultat = 0 END_SUB rem ============================================================================
| |
|
mindstorm
Nombre de messages : 685 Age : 55 Localisation : charente Date d'inscription : 13/02/2013
| Sujet: Re: Calul des fonctions circulaires et hyperboliques Mar 6 Sep 2016 - 21:31 | |
| Bonsoir a tous enfin du papydall Il vas me falloir au moins une semaine pour décortiquer tous ça encore Merci | |
|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Calul des fonctions circulaires et hyperboliques Mar 6 Sep 2016 - 23:20 | |
| Salut mindstorm. Rappel du programme universel : - Code:
-
SUB Programme_universel(s,c) dim_local epsilon : epsilon = power(10,0-10) while abs(1-c) >= epsilon c = sqr((1+c)/2) s = s/c end_while resultat = s END_SUB
Les deux paramètres d’entrée S et C déterminent la fonction à calculer selon le tableau suivant : Données =========== > Valeur calculéeS = x ; C = sqr(1-x*x) ====== > Arc Sin x S = sqr(1-x*x) ; C = x ====== > Arc cos x S = x/sqr(1+x*x) ; C = 1/sqr(1+x*x) ==== > Arc tan x S = 1/sqr(1+x*x) ; C = x/sqr(1+x*x) ==== > Arc cot x S= 0.5*(x-1/x) ; C = 0.5*(x+1/x) ==== > ln x S = x ; C = sqr(1+x*x) ==== > Arc sinh x S = sqr(x*x-1) ; C = x ==== > Arc cosh x S = x/sqr(1-x*x) ; C = 1/sqr(1-x*x) ==== > Arc tanh x S = 1/sqr(1-x*x) ; C = x/sqr(1-x*x) == == > Arc coth x | |
|
Contenu sponsorisé
| Sujet: Re: Calul des fonctions circulaires et hyperboliques | |
| |
|