Les Chevaliers de Malte/Développeur - Visual Basic .NET (VB .NET) - Atn/ATan/ArcTan/ArcTangente


En Visual Basic .NET (VB .NET), il existe déjà une fonction permettant de connaitre l'ArcTangente. 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é:
Module Module1

    Function SquareRoot(ByVal X As Double) As Double
        Dim A, B, M, XN As Double
        If X = 0.0 Then
            Return 0.0
        Else
            M = 1.0
            XN = X
            While XN >= 2.0
                XN = 0.25 * XN
                M = 2.0 * M
            End While
            While XN < 0.5
                XN = 4.0 * XN
                M = 0.5 * M
            End While
            A = XN
            B = 1.0 - XN
            Do
                A = A * (1.0 + 0.5 * B)
                B = 0.25 * (3.0 + B) * B * B
            Loop While B >= 0.000000000000001
            Return A * M
        End If
    End Function

    Function ArcTan(ByVal X As Double) As Double
        Dim A As Double = 1.0 / SquareRoot(1.0 + (X * X))
        Dim B As Double = 1.0
        Dim N As Integer = 1
        While N <= 11
            A = (A + B) / 2.0
            B = SquareRoot(A * B)
            N += 1
        End While
        Return X / (SquareRoot(1.0 + (X * X)) * A)
    End Function

    Sub Main()
        Dim R As Double = 0.0
        While R <= 1.1
            Console.WriteLine("ArcTan(" &R &")=" &ArcTan(R))
            R += 0.1
        End While
    End Sub

End Module

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: Mardi, le 7 février 2006