IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Calcul Formel Java


Sujet :

avec Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Calcul Formel Java
    Bonsoir ,

    Je suis entrain de travailler sur le calcul formel en java pour pouvoir faire la dérivée d'une fonction mais je n'arrive pas à le faire je n'ai pas d'idée sur la maniere dont je vais proceder si quelqu'un pourrait eventuellement m'aider

    Merci d'avance

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    1. écrire un parser d'expressions formelles
    2. utiliser un arbre binaire pour représenter l'expression parsée
    3. écrire une fonction qui convertit un arbre en expression (qui affiche l'arbre)
    4. écrire une fonction qui dérive un noeud de l'arbre, genre
      la dérivée d'une constante (comme 42) est 0,
      la dérivée de x (une variable) est 1,
      la dérivée de a(x) + b(x) est dérivée de a + la dérivée de b, donc la dérivée d'un sous-arbre arbre de racine + est la dérivée du sous arbre gauche + la dérivée du sous arbre droite.
    5. écrire une fonction qui dérive un arbre,
    6. écrire éventuellement une fonction de simplification d'arbre : simplifier les noeud du type a+0 en a, 0*a en 0, remplacement des opérations sur des constantes par le résultat (par exemple, remplacer 2*3 par 6), etc - tu peux aussi écrire la fonction de simplification à part (ce sera peut-


    Au niveau du modèle de classe :
    • des noeuds de type constante (1, 2, 3...40, 100...)
    • des noeuds de type "variable" (x)
    • des noeuds de type opérateurs
    • des noeuds de type fonction (si tu as besoin d'aller jusqu'au là dans les expressions formelles), comme sin par exemple



    Indices pour le parsing :

    • les parenthèses constituent des niveaux dans l'arbre
    • quand il n'y a pas de parenthèses, c'est la priorité des oéprateurs qui compte pour déterminer les parenthèses
    • lorsqu'il n'y a pas de priorité, on peut pousser le sous arbre de gauche ou de droite vers le bas (c'est juste un choix) :


    Par exemple Formule mathématique.

    Dont l'arbre est :

          +
         / \
        +   1
       / \
      *   x
     / \
    3   ^
       / \
      x   2
    Dont l'arbre dérivé est :

          +
         / \
        +   0
       / \
      *   1
     / \
    3   *
       / \
      2   x
    simplifié en

        +
       / \
      *   1
     / \
    6   x
    Soit la dérivée, affichage en infixé : 6*x + 1. éventuellement ajouter les simplifications d'usage pour que ça affiche 6x+1
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Merci pour vos réponse mais je pense qu'il doit y avoir un moyen plus simple que le passage par les arbres sa me semble assez compliqué quand même , vous n'auriez pas des idées plus simples éventuellement ?
    Sinon pour les liens sa n'a aucun rapport avec ce que je veux
    Merci encore pour vos réponse

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Pour moi, dans le cas général, c'est plus simple (en tout cas, le plus complexe pour moi, c'est le parsing, pas le traitement d'arbre binaire).

    C'est sûr que si tu te limites aux polynômes, par exemple, qui peuvent être réprésentés par un tableau à 2 dimensions (ou une liste de couples), ce sera plus simple pour dériver que d'utiliser un arbre.

    S'il existe des algorithmes plus simples, c'est plutôt sur le forum algorithmes que tu auras le plus de chance de trouver une réponse.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Je suis d'accord avec toi je n'ai jamais utilisé d'analyseur lexical donc je ne sais pas vraiment par quoi commencer pour le parsing tu aurais des pistes pour commencer ??

  7. #7
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Je dirais que la méthode "naïve" à base de parcours de chaînes, façon automate à état n'est pas très complexe à faire. Sinon voir du côté de jflex/(cup ou BYacc). Ou ANTLR, mais peut-être un peu overkill pour ça. Il y a même des API dédiées (JEP), ou qui le permette nativement en Java8 (cf nashorn par exemple, associé à math.js), qui feront le boulot à ta place, mais est-ce bien le but de ton projet ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Alors le but de mon projet est de faire une calculatrice scientifique un peu avancé , donc pouvoir calculer les dérivées et les primitives je suis obligé de passer par un analyseur lexical je jetterais un coup d'oeil à ce que tu m'as envoyé merci pour ton aide

  9. #9
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Je parlais du fait que ça soit un exercice dans le cadre d'études (donc avec des contraintes, genre soi-même développer les fonctionnalités) ou un projet genre personnel, auquel cas l'utilisation d'une API est tout indiquée pour éviter de réécrire ce que d'autres ont déjà fait.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. Java et calcul formel
    Par aki lditu dans le forum Général Java
    Réponses: 1
    Dernier message: 15/05/2009, 16h06
  2. Module de Calcul Formel
    Par Try-again dans le forum Bibliothèques tierces
    Réponses: 2
    Dernier message: 18/12/2007, 17h22
  3. Comprendre le mécanisme pour le calcul formel
    Par Magical42 dans le forum Mathématiques
    Réponses: 8
    Dernier message: 14/09/2007, 17h38
  4. calcul integrale java
    Par pepyto3 dans le forum Langage
    Réponses: 2
    Dernier message: 27/03/2007, 12h35
  5. [C] Calcul Formel
    Par Paniez dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 19/03/2005, 10h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo