Calcul formel

Résolu
ccgousset Messages postés 150 Date d'inscription samedi 1 août 2009 Statut Membre Dernière intervention 4 mars 2023 - Modifié par ccgousset le 4/02/2016 à 22:08
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 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

2 réponses

ASO14 Messages postés 5 Date d'inscription mardi 8 septembre 2015 Statut Membre Dernière intervention 2 mai 2016
30 avril 2016 à 16:20
Salut, Je m'excuse pourrais tu être un peu explicite
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 127
30 avril 2016 à 16:52
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).
0
Rejoignez-nous