Voir le flux RSS

autran

Calcul de la valeur approchée de l’intégrale d'une fonction entre 2 bornes en JAVA

Noter ce billet
par , 28/12/2015 à 15h21 (765 Affichages)
pour faire écho à un post précédent intitulé "Calcul de la valeur approchée de l’intégrale d'une fonction entre 2 bornes en JavaScript", voici le code source correspondant en JAVA :
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
public class Integrale 
{
	private double borneInf;
	private double borneSup;
	private int nbeInterval;
	private Fonction fonction;
 
	public Integrale(double a, double b, int n, Fonction f) 
	{
		this.setBorneInf(a);
		this.setBorneSup(b);
		this.setNbeInterval(n);
		this.setFonction(f);
	}
	double f(double x)
	{
		return (x * x);
	}
	public double getBorneInf() {
		return borneInf;
	}
	public void setBorneInf(double borneInf) {
		this.borneInf = borneInf;
	}
	public double getBorneSup() {
		return borneSup;
	}
	public void setBorneSup(double borneSup) {
		this.borneSup = borneSup;
	}
	public int getNbeInterval() {
		return nbeInterval;
	}
	public void setNbeInterval(int nbeInterval) {
		this.nbeInterval = nbeInterval;
	}
	private double integraleInf()
	{
		double sommeInf = 0;
		double interval = (this.getBorneSup() - this.getBorneInf())/this.getNbeInterval();
		for (int i = 0; i < this.getNbeInterval(); i++)
		{
			sommeInf += f(this.getBorneInf() + i * interval) * interval;
		}
		return sommeInf;
	}
	private double integraleSup()
	{
		double sommeSup = 0;
		double interval = (this.getBorneSup() - this.getBorneInf())/this.getNbeInterval();
		for (int i = 1; i < (this.getNbeInterval() + 1); i++)
		{
			sommeSup += f(this.getBorneInf() + i * interval) * interval;
		}
		return sommeSup;
	}
	public double integraleMoyenne()
	{
		 double res  = (this.integraleSup() + this.integraleInf()) / 2; 
		 return res;
	}
	public Fonction getFonction() {
		return fonction;
	}
	public void setFonction(Fonction fonction) {
		this.fonction = fonction;
	}
}

Envoyer le billet « Calcul de la valeur approchée de l’intégrale d'une fonction entre 2 bornes en JAVA » dans le blog Viadeo Envoyer le billet « Calcul de la valeur approchée de l’intégrale d'une fonction entre 2 bornes en JAVA » dans le blog Twitter Envoyer le billet « Calcul de la valeur approchée de l’intégrale d'une fonction entre 2 bornes en JAVA » dans le blog Google Envoyer le billet « Calcul de la valeur approchée de l’intégrale d'une fonction entre 2 bornes en JAVA » dans le blog Facebook Envoyer le billet « Calcul de la valeur approchée de l’intégrale d'une fonction entre 2 bornes en JAVA » dans le blog Digg Envoyer le billet « Calcul de la valeur approchée de l’intégrale d'une fonction entre 2 bornes en JAVA » dans le blog Delicious Envoyer le billet « Calcul de la valeur approchée de l’intégrale d'une fonction entre 2 bornes en JAVA » dans le blog MySpace Envoyer le billet « Calcul de la valeur approchée de l’intégrale d'une fonction entre 2 bornes en JAVA » dans le blog Yahoo

Tags: java8, maths
Catégories
Sans catégorie

Commentaires

  1. Avatar de kolodz
    • |
    • permalink
    Je ne vous pas bien pourquoi cela est "java 8". La classe Fonction n'étant pas dans le standard...
    Même si le code est propre et totalement valable. J'aurai tendance à utiliser un Apache Commons Math pour gérer ce genre de chose.
    Ils ont une partie dédié au intégration : 4.5 Integration

    Note : Je n'ai pas testé celle-ci, mais déjà proposé ici : How to solve an Integral in Java?

    Cordialement,
    Patrick Kolodziejczyk.
  2. Avatar de autran
    • |
    • permalink
    Autant pour moi Patrick.
    Fonction est une interface que j'injecte dont voici la signature :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public interface Fonction 
    {	
    	double valeur(double x);
    }

    toutes les fonctions devront l'implémenter comme par exemple:
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class Carre implements Fonction 
    {
    	@Override
    	public double valeur(double x) 
    	{
    		return (x*x);
    	}
    }

    ce qui nous donnerait dans le main :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class Principale 
    {
    	public static void main(String[] args) 
    	{
    		Fonction monCarre = new Carre();
    		Integrale monIntegrale = new Integrale(0, 1, 10000000, monCarre);
    		System.out.println(monIntegrale.integraleMoyenne());
    	}
    }

    Mais au départ j'ai fait ce post en réponse à une demande d'un lecteur qui souhaitait faire en java ce que je propose sur mon blog en JavaScript. C'est pour cela que je n’utilise pas de librairie mathématiques bien plus efficaces et pratiques

    Et merci encore pour ta lecture attentive du code, c'est toujours un plaisir.

    Marc,
    Mis à jour 29/02/2016 à 15h31 par autran