papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Calcul des fonctions trigonométriques réciproques Dim 29 Mar 2020 - 20:30 | |
| - Code:
-
rem ============================================================================ rem Programme universel pour le calcul des 9 fonctions suivantes : rem ============================================================================ rem Paramètres rem Valeur calculé Domaine de définition S C rem ____________________________________________________________________________ rem Arc sinus x -1 <= x <= +1 x sqr(1-x²) rem Arc cosinus x -1 <= x <= +1 sqr(1-x²) x rem Arc tangente x -INf < x < +INF x/sqr(1+x²) 1/sqr(1+x²) rem Arc cotangente x -INF < x < +INF 1/sqr(1+x²) x/sqr(1+x²) rem Logarithme Neperien x x > 0 0.5*(x-1/x) 0.5*(x+1/x) rem Arc sinus hyperbolique x -INF < x < +INF x sqr(1+x²) rem Arc cosinus hyperbolique x x >= +1 sqr(x²-1) x rem Arc tangente hyperbolique x -1 x < +1 x/sqr(1-x²) 1/sqr(1-x²) rem Arc cotangente hyperbolique x -1 < x < +1 1/sqr(1-x²) x/(sqr(1-x²) rem ============================================================================ dim x,s,c width 0,800 : font_bold 0 caption 0,"Calcul des fonctions trigonométriques réciproques par une fonction Universelle" x = rnd(1) : s = x : c = sqr(1-x*x) print : print print " Calculs par la fonction Universelle" + string$(80," ") + "Calculs par Panoramic"
print print " ArcSinus(" + str$(x) + ") = " + str$(Universelle(s,c)) + string$(25," ")+"asin(" + str$(x) + ") = " + str$(asin(x)) x = rnd(1) : s = sqr(1-x*x) : c = x print " ArcCosinus(" + str$(x) + ") = " + str$(Universelle(s,c)) + string$(25," ")+"acos(" + str$(x) + ") = " + str$(acos(x)) print x = rnd(1000) : s = x/sqr(1+x*x) : c = 1/sqr(1+x*x) print " ArcTangente(" + str$(x) + ") = " + str$(Universelle(s,c)) + string$(25," ")+"atn(" + str$(x) + ") = " + str$(atn(x)) x = rnd(1000) : s = 1/sqr(1+x*x) : c = x/sqr(1+x*x) print " ArcCoTangente(" + str$(x) + ") = " + str$(Universelle(s,c)) + string$(25," ") print x = rnd(1000) : s = 0.5*(x-1/x) : c = 0.5*(x+1/x) print " Logarithme Néperien(" + str$(x) + ") = " + str$(Universelle(s,c)) + string$(25," ") + "Log(" + str$(x) + ") = " + str$(log(x)) print x = rnd(1000) : s = x : c = sqr(1+x*x) print " ArcSinusHyperbolique(" + str$(x) + ") = " + str$(Universelle(s,c)) x = rnd(1000) : s = sqr(1+x*x) : c = x print " ArcCoSinusHyperbolique(" + str$(x) + ") = " + str$(Universelle(s,c)) print x = rnd(1) : s = x/sqr(1-x*x) : c = 1/sqr(1-x*x) print " ArctangenteHyperbolique(" + str$(x) + ") = " + str$(Universelle(s,c)) print x = rnd(1) : s = 1/sqr(1-x*x) : c = x/sqr(1-x*x) print " ArcCotangenteHyperbolique(" + str$(x) + ") = " + str$(Universelle(s,c))
end rem ============================================================================ ' Selon les paramètres s et c, la fonction Universelle calcule les 9 fonctions ' trigonométriques inverses ou réciproques suivantes (y compris le Logarithme Népérien) ' s = x et c = sqr(1-x*x) ===> Arc sin x avec -1 <= x <= +1 ' s = sqr(1-x*x) et c = x ===> Arc cos x avec -1 <= x <= +1 ' s = x/sqr(1+x*x) et c = 1/sqr(1+x*x) ===> Arc tan x avec -INFINI < x < + INFINI ' s = 1/sqr(1+x*x) et c = x/sqr(1+x*x) ===> Arc cot x avec -INFINI < x < + INFINI ' s = 0.5*(x-1/x) et c = 0.5*(x+1/x) ===> Ln x avec x > 0 ' s = x et c = sqr(1+x*x) ===> Arc Sinh x avec -INFINI < x +INFINI ' s = sqr(x*x-1) et c = x ===> Arc Cosh x avec x >= 1 ' s = x/sqr(1-x*x) et c = 1/sqr(1-x*x) ===> Arc Tanh x avec -1 < x < +1 ' s = 1/sqr(1-x*x) et c = x/sqr(1-x*x) ===> Arc Coth x avec -1 < x < +1 FNC Universelle(s,c) dim_local epsilon epsilon = power(10,0-20) : ' erreur relative <= epsilon while abs(1-c) >= epsilon c = sqr((1+c)/2) : s = s/c end_while result s END_FNC rem ============================================================================
Comme d'habitude, tout est dans le code. Appréciez la simplicité de la fonction FN Universelle(s,c) - Code:
-
while abs(1-c) >= epsilon c = sqr((1+c)/2) : s = s/c end_while
Difficile de faire mieux! | |
|
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Calcul des fonctions trigonométriques réciproques Mar 31 Mar 2020 - 10:15 | |
| Trop cool Papydall ! Merci pour cette fonction universelle ! La précision est excellente ! Bonne continuation ! | |
|