Section courante

A propos

Section administrative du site

En LotusScript, il n'existe une fonction «Atn» permettant de calculer l'ArcTangente d'un cercle. Cependant, il peut être intéressant d'en reproduire une pour notre plaisir personnel. Pour remédier à se problème, il suffit de créer une fonction ressemblant à ceci avec un préalable la fonction de racine carré :

  1. Function SquareRoot(X As Double) As Double
  2.      Dim A,B,M,XN As Double
  3.      If X=0.0Then
  4.           SquareRoot =0.0
  5.      Else
  6.           M=1.0
  7.           XN=X
  8.           Do While XN>=2.0
  9.                XN=0.25*XN
  10.                M=2.0*M
  11.           Loop
  12.           Do While XN<0.5
  13.                XN=4.0*XN
  14.                M=0.5*M
  15.           Loop
  16.           A=XN
  17.           B=1.0-XN
  18.           Do
  19.                A=A*(1.0+0.5*B)
  20.                B=0.25*(3.0+B)*B*B
  21.           Loop Until B<1.0E-15
  22.           SquareRoot=A*M
  23.      End If
  24. End Function
  25.  
  26. Function ArcTan(X As Double) As Double
  27.      Dim A,B As Double
  28.      A = 1.0 / SquareRoot(1.0 + (X * X))
  29.      B = 1.0
  30.      For N=1 To 11
  31.           A = (A + B) / 2.0
  32.           B = SquareRoot(A * B)
  33.      Next
  34.      ArcTan=X/(SquareRoot(1.0+(X*X))*A)
  35. End Function
  36.  
  37. Sub Main()
  38.      Dim R As Double
  39.      R=0.0
  40.      Do While R<=1.1
  41.           Print "ArcTan(" & Str$(R) & ")=" & Atn(R) & " " & ArcTan(R)
  42.           R=R+0.1
  43.      Loop 
  44. End Sub

on obtiendra le résultat suivant :

ArcTan(0.00000)= 0.000000
ArcTan(0.10000)= 0.099668
ArcTan(0.20000)= 0.197396
ArcTan(0.30000)= 0.291457
ArcTan(0.40000)= 0.380506
ArcTan(0.50000)= 0.463648
ArcTan(0.60000)= 0.540420
ArcTan(0.70000)= 0.610726
ArcTan(0.80000)= 0.674741
ArcTan(0.90000)= 0.732815
ArcTan(1.00000)= 0.785398


Dernière mise à jour : Dimanche, le 18 janvier 2015