Frage

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

Wie 9 = 3 + x und lösen für x. Aber es sollte auch erweiterte Gleichungen lösen, die Sinus umfassen, Cosinus und Tangens.

War es hilfreich?

Lösung

Sie können ungefähre die Lösung zu tun, was Anrufe übertreffen „Zielwertsuche“ - Werte für x testen, bis beide Seiten der Gleichung in etwa entsprechen. Sie können dies tun, indem die Gleichung, die durch das Zeichen "=" Aufspalten jedes Auftreten von x mit einem Wert ersetzt, evaling beiden Seiten und das Bestimmen, ob die Differenz unter einem bestimmten Schwellenwert fällt. Während relativ einfach, es gibt Mängel dieser Methode allerdings (abgesehen von der Tatsache, dass es eine Annäherung ist), zum Beispiel kann der Algorithmus denken die beiden Seiten nähern sich, wenn in der Tat ist es nur eine lokale min / max und wird nach der divergieren Differenz fällt knapp unterhalb der Schwelle. Sie werden auch mehrere Startpunkte müssen Test Gleichungen mit mehr als einer Lösung zu lösen.

Für ein Programm, um tatsächlich lösen eine Gleichung als Mensch würde (durch die beiden Seiten der Gleichung neu anordnen und die Anwendung inverser Funktionen, Ableitungen / Integrale und so weiter) ist weitaus komplexer, und irgendwie fühlt ganz proprietäre;)

Andere Tipps

Ich möchte vorschlagen nerdamer . Es kann algebraisch bis zu quartic Funktionen lösen und es kann numerisch eine Reihe von Funktionen lösen. Eine andere Bibliothek zu prüfen ist, Algebrite .

//solve linear equations
var x = nerdamer.solve('(x+1)*3=x-6', 'x');
console.log(x.toString());
//quadratic
var x2 = nerdamer.solve('x^2-8x+15', 'x');
console.log(x2.toString());
//quadratic algebraically
var x3 = nerdamer.solve('x^2-ax+3*b', 'x');
console.log(x3.toString());
//multiple roots
var x4 = nerdamer.solve('x^6+41*x^5+652*x^4+5102*x^3+20581*x^2+40361*x+30030', 'x');
console.log(x4.toString());
//functions - numerically around to zero up to a predefined range
var x5 = nerdamer.solve('cos(x)^2+sin(x-1)', 'x');
console.log(x5.toString());
//solve a system of linear equations
var x6 = nerdamer.solveEquations(['2x+y=7', 'x-y+3z=11', 'y-z=-1']);
console.log(x6.toString());
//solve a system of nonlinear equations
var x7 = nerdamer.solveEquations(['3*x^2/y=2', 'z*x*y-1=35', '5*z^2+7=52']);
console.log(x7.toString());
<script src="https://cdn.jsdelivr.net/npm/nerdamer@latest/nerdamer.core.js"></script>
<script src="https://cdn.jsdelivr.net/npm/nerdamer@latest/Algebra.js"></script>
<script src="https://cdn.jsdelivr.net/npm/nerdamer@latest/Calculus.js"></script>
<script src="https://cdn.jsdelivr.net/npm/nerdamer@latest/Solve.js"></script>

Eine schnelle Suche taucht algebra.js und js Löser . Ich weiß nichts über sie, aber sie scheinen echt. algebra.js hat einen schönen OOP-API, aber nicht erscheint trigonometrische Funktionen zu handhaben.

Sehen Sie sich das Skript in Newton-Verfahren Programm f ( x) = 0 . Es löst die Gleichung Newtons Tangentenmethode .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top