Calcul formel [Résolu]

ccgousset 143 Messages postés samedi 1 août 2009Date d'inscription 28 avril 2018 Dernière intervention - 4 févr. 2016 à 22:06 - Dernière réponse : KX 15784 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 20 octobre 2018 Dernière intervention
- 30 avril 2016 à 16:52
Bonjour,

J ai deposé le sudoku 16x16 moins d une seconde en C sur ce site. Je cherche des sources pour implementer un systeme de calcul formel. J ai un parser. Mais je cherche un moteur ou tout autre info pouvant m aider a resoudre ce probleme. Par exemple un code qui va trouver la derivé de 2(x)^2 soit 4(x) sans calcul avec un valeur (ce que fait la ti nspire cas ...) en fait . Voila si vous avez contactez moi. Je peux en echange vous fournir des modules de traitement du signal de l image. Merci . A plus
Afficher la suite 

Votre réponse

2 réponses

ASO14 5 Messages postés mardi 8 septembre 2015Date d'inscription 2 mai 2016 Dernière intervention - 30 avril 2016 à 16:20
0
Merci
Salut, Je m'excuse pourrais tu être un peu explicite
Commenter la réponse de ASO14
KX 15784 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 20 octobre 2018 Dernière intervention - 30 avril 2016 à 16:52
0
Merci
Bonjour,

Pour les cas simples (polynôme, trigonométrie...) c'est assez facile, il y a des formulaires que l'on apprends à l'école qui sont suffisants.

Ce qui est compliqué c'est la combinaison de plusieurs éléments simples, là encore les formules existent, mais l'analyse de l'expression à "découper" et sa restitution est bien plus complexe, en particulier si tu introduits des littéraux (constantes a, b, c... par exemple) qui doit être calculés entre eux.

Exemple de combinaison (pas si complexe que ça) : sin(e^x)/(ax²+bx+c)

Il faudrait déjà que tu établisses une grammaire des formules mathématiques (notamment sur la priorité des opérateurs) afin de découper l'équation de départ en instruction simple.

Exemple (la formule ci-dessus) :
division(
    sinus(
        puissance(
            constante("e"),
            variable("x")
        )
    ),
    somme(
        produit(
            constante("a"),
            puissance(
                variable("x"),
                numerique("2")
            )
        ),
        produit(
            constante("b"),
            variable("x"),
        ),
        constante("c")
    )
)

Ensuite chaque opération simple doit être dérivée en respectant les formules existantes, par récursivité chaque nouveau morceau à dériver est également substitué et on doit en voir la fin.

Exemple : (f/g)' = (gf'-f'g)/g²

dérivée(division(f,g)) =
    division(
        soustraction(
            produit(g, dérivée(f)),
            produit(f, dérivée(e))
        ),
        produit(g, g)
    )

L'étape finale étant bien sûr de repasser de cette grammaire mathématique à une expression littérale comme l'était l'équation de départ.

Je ne te cacherais pas que tout cela demande pas mal de boulot. Mais ça reste faisable (contrairement à l'opération inverse : l'intégrale, qui n'est pas toujours possible).
Commenter la réponse de KX

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.