Republic of Computing - Forum
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment :
LEGO Icons 10331 – Le martin-pêcheur
Voir le deal
35 €

[VB.NET] Calcul déterministe d'une approximation d'intégrale (méthode des rectangles)

Aller en bas

[VB.NET] Calcul déterministe d'une approximation d'intégrale (méthode des rectangles) Empty [VB.NET] Calcul déterministe d'une approximation d'intégrale (méthode des rectangles)

Message par Skynyrd777 Mar 3 Aoû 2010 - 20:48

Bonjour,

L'intégrale est une valeur analytique qui représente l'aire se trouvant sous une fonction f(x) sur un ensemble donné de x (en abscisse). Cet algorithme permet de calculer une approximation de cette intégrale sur un intervalle [a;b], la valeur de précision infinitésimale dx est à renseigner permettant ainsi à l'algorithme de tourner à des précisions différentes.

Algorithme en VB.NET
Code:
    Sub Main()

        ' Définitions et assignations
        Dim dx As Decimal, a As Decimal, b As Decimal, res As Decimal = 0
        Console.Out.WriteLine("dx=") : dx = Console.In.ReadLine()
        Console.Out.WriteLine("a=") : a = Console.In.ReadLine()
        Console.Out.WriteLine("b=") : b = Console.In.ReadLine()

        ' Somme des rectangles
        For i As Decimal = a To b Step dx
            res += ((f(i) + f(i + dx)) / 2) * dx
        Next i

        ' Affichage de l'approximation de l'intégrale
        Console.Out.WriteLine("intégrale de f(x) sur [" & a & ";" & b & "]=" & res)
        Console.In.ReadLine()

    End Sub

    Function f(ByVal x As Decimal) As Decimal
        Return Sin(2 * x) + 3 * x ^ 4
    End Function

Notes : Le framework .NET ne possédant pas de fonction d'interprétation d'expressions algébriques il est nécessaire de rentrer la fonction f(x) désirée dans la procédure du même nom (unique paramètre d'entrée x). La valeur de précision dx doit être faible, une bonne valeur est 0,0001. On remarquera que l'algorithme fait la moyenne sur le sommet des rectangles, cela permet d'augmenter légèrement la précision de la mesure.
Skynyrd777
Skynyrd777
Admin

Messages : 216
Date d'inscription : 02/06/2010

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum