2010-09-03 4 views
0

Je travaille sur un projet de création d'un solveur d'équations génériques ... envisage de prendre la forme de 25-30 équations qui seront sauvegardées dans un tableau - noms de variable avec les opérateurs.algorithme pour résoudre des équations connexes

Je voudrais donc appeler ce tableau pour résoudre toute équation avec une variable manquante et il proposerais opérateurs/d'autres pièces de l'autre côté de la variable manquante

par exemple 2x + 3y = z et si x manquait variable. Je qualifierais l'équation avec des valeurs pour y et z et il convertirait à résoudre pour x = (z-3y)/2

équations peuvent être linéaire, polynomiale, binaire (oui/non résultat) ...

Je ne suis pas sûr si je peux obtenir une bibliothèque légère disponible ou si cela doit être construit à partir de zéro ... des pointeurs ou des conseils seront appréciés

Répondre

0

Si un tel algorithme général de boîte noire pouvait être rendu précis, robuste et stable, les cochons pourraient voler. Les solutions peuvent être inexistantes, multiples, paramétrées, etc.

Même pour les équations linéaires, il est difficile de faire les choses correctement.

Votre meilleur pari est une forme d'algorithme de Newton, mais généralement vous l'adaptez à votre problème.

EDIT: Je n'ai pas vu que vous vouliez quelque chose de symbolique, plutôt que numérique. C'est un autre sac de vers.

+0

Ce serait orthographié "tailleur". Pardon. : -/ –

+0

ah ok. Fixé. Je ne suis pas un anglophone natif, mais certainement un mathématicien ... Talyor est beaucoup plus naturel pour moi que tailleur (aussi riche soit-il). –

+0

Je suppose que je n'ai pas expliqué correctement mes besoins - je ne m'attendais pas à ce que les cochons volent ... à un niveau, tout ce dont j'ai besoin est une capacité à stocker une équation comprenant quelques variables, et être capable de la résoudre variable est manquante. Les équations 25-30 ne sont PAS un système d'équations. Je n'utiliserai qu'une seule équation à la fois. Et les vérifications d'erreur faites à l'avance avant d'arriver ici. Si c'est encore un problème difficile, il faudra revoir l'approche ... à l'heure actuelle, la résoudre grâce à un processus complexe – raghu

1

Voir Maxima. Je l'aime plutôt pour mes besoins en calcul symbolique.

+0

pouvez-vous partager plus de détails- invoquez-vous des bibliothèques de maxima à partir de votre code? – raghu

+0

@raghu: Non, je code généralement dedans. Il est écrit en Common Lisp, donc avec un peu de travail, vous devriez pouvoir l'interfacer avec au moins stdin/out. –

Questions connexes