2010-12-22 2 views
11

Gibt es eine JavaScript-Bibliothek oder -Funktion, die Gleichungen für Variablen löst?JavaScript-Gleichungslöser-Bibliothek

Wie 9 = 3 + x und lösen für x. Es sollte aber auch komplexere Gleichungen wie Sinus, Kosinus und Tangens lösen.

+2

Ich möchte einen Computer für mich auch denken! "Computer, schreibe ein Programm, das dies tut ..." –

+0

Wenn Sie ein "Constraint-Netzwerk" machen, wird es möglich sein. – Codler

+6

Ganz einfach, aber vielleicht können Sie eine JS-Bibliothek erstellen, um mit der Wolfram Alpha API zu interagieren. –

Antwort

5

Sie können ungefähre die Lösung, indem Sie tun, was Excel nennt "Ziel suchen" - Testwerte für x, bis beide Seiten der Gleichung annähernd übereinstimmen. Sie können dies tun, indem Sie die Gleichung durch das Zeichen "=" aufteilen, indem Sie jedes Vorkommen von x durch einen Wert von eval auf beiden Seiten ersetzen und bestimmen, ob die Differenz unter einen bestimmten Schwellenwert fällt. Obwohl relativ einfach, gibt es bei dieser Methode zwar Fehler (abgesehen von der Tatsache, dass es eine Annäherung ist), zum Beispiel könnte der Algorithmus annehmen, dass die beiden Seiten konvergieren, obwohl es tatsächlich nur ein lokales Minimum ist Differenz fällt knapp unter Ihre Schwelle. Sie müssen auch mehrere Startpunkte testen, um Gleichungen mit mehr als einer Lösung zu lösen.

für ein Programm tatsächlich lösen eine Gleichung als Mensch würde (von den beiden Seiten der Gleichung Umordnen und Anwenden Umkehrfunktionen, Derivate/Integrale und so weiter) ist viel komplexer, und fühlt sich irgendwie ganz proprietäre;)

3

Eine schnelle Suche erscheint algebra.js und js-solver. Ich weiß nichts über sie, aber sie scheinen echt zu sein. algebra.js hat eine nette OOP-API, scheint aber trigonometrische Funktionen nicht zu handhaben.