Méthode en JAVA, code commenté, intégrale numérique, algorithme de Côtes, algorithme de Gauss, matrice Lagrange
Créer deux méthodes en JAVA (code commenté) permettant de calculer l'intégrale numérique (pour une fonction donnée => ex : f(x) = x²).
-une méthode utilisant l'algorithme de Côtes (en utilisant la matrice de Lagrange)
-une méthode utilisant l'algorithme de Gauss (en utilisant la matrice de Lagrange)
Le but sera par la suite de comparer le résultat de ces 2 méthodes de calculs.
[...] Calcul intégral numérique - JAVA import java.lang.Math; public class Integrale_Newton_Cotes_Gauss_Legendre_Ordre_n { public static void main(String[] args) { double A = 0d; borne min de l'interval double B = 1d; borne max de l'interval int N = nombre de sous intervals double h = Pas d'échantillonage double = new double[N+1]; Définition de la taille du vecteur des ordonnées Initialisation de la matrice de Lagrange, chaque ligne correspond à un ordre donné (première ligne ordre deuxième ligne ordre ) double mat_Lagrange[][] = { {1/6d,4/6d,1/6d}, {1/8d,3/8d,3/8d,1/8d}, {7/90d,32/90d,12/90d,32/90d,7/90d}, {19/288d,75/288d,50/288d,50/288d,75/288d,19/288d}, {41/840d,216/840d,27/840d,272/840d,27/840d,216/840d,41/840d}, {751/17280d,3577/17280d,1323/17280d,2989/17280d,2989/17280d,1323/17280d,3577/17280d,751/17280d}}; Initialisation de la matrice de Gauss-Legendre (abscisse xi) double mat_abcsisse_Legendre[][] = { {-0.5773502691896257d, 0.5773502691896257d}, {-0.7745966692414834d, 0.0000000000000000d, 0.7745966692414834d}, {-0.8611363115940526d, -0.3399810435848563d, 0.3399810435848563d, 0.8611363115940526d}, {-0.9061798459386640d, -0.5384693101056831d, 0.0000000000000000d, 0.5384693101056831d, 0.9061798459386640d}, {-0.9324695142031521d, -0.6612093864662645d, -0.2386191860831969d, 0.2386191860831969d, 0.6612093864662645d, 0.9324695142031521d}, {-0.9491079123427585d, -0.7415311855993945d, -0.4058451513773972d, 0.0000000000000000d, 0.4058451513773972d, 0.7415311855993945d, 0.9491079123427585d} Initialisation de la matrice de Gauss-Legendre (poids wi) double mat_poids_Legendre[][] = { {0.5555555555555556d, 0.8888888888888888d, 0.5555555555555556d}, {0.3478548451374538d, 0.6521451548625461d, 0.6521451548625461d, 0.3478548451374538d}, {0.2369268850561891d, 0.4786286704993665d, 0.5688888888888889d, 0.4786286704993665d, 0.2369268850561891d}, {0.1713244923791704d, 0.3607615730481386d, 0.4679139345726910d, 0.4679139345726910d, 0.3607615730481386d, 0.1713244923791704d}, {0.1294849661688697d, 0.2797053914892766d, 0.3818300505051189d, 0.4179591836734694d, 0.3818300505051189d, 0.2797053914892766d, 0.1294849661688697d} for(int i=0 ; i≤N { Initialisation du vecteur des ordonnées de a à b par pas de taille h } System.out.println("Resultat integral Newton Cotes "+calcul_integral_Newton_Cotes(x, mat_Lagrange, Ici on a choisi l'ordre 2 System.out.println("Resultat integral Gauss Legendre "+calcul_integral_Gauss_Legendre(x, mat_abcsisse_Legendre, mat_poids_Legendre, Ici on a choisi l'ordre 3 } La fonction calcul_integral_Newton_Cotes prend en parametre le vecteur des ordonnées le nombre de sous interval la marrice de Lagrange mat_Lagrange, et le choix de l'ordre qui doit être compris entre 1 et 7 Ensuite la fonction calcul_integral_Newton_Cotes appelle la fonction calcul_petit_interval_Newton_Cotes qui va calculer l'integrale suivant l'ordre choisi sur les sous intervalles compris entre a et b . [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture