2010-12-19 21 views
2

Ich arbeite an einer Grafik-Anwendungen, die grundsätzlich Gleichungen mit auf einem HTML5 Canvas. Ich hatte keine Probleme, Gleichungen zu modellieren, die entlang der Linien y = 3x^(2) usw. waren. Das war so einfach wie das Einstecken eines gegebenen x-Wertes, wobei Exponenten für native Funktionen und voila!Denkprozess zum Lösen von Algebra-Gleichungen?

Idealerweise würde ich jedoch gerne Gleichungen für Kreise und andere Gleichungen darstellen, die nicht notwendigerweise mit y = ... beginnen. Dies würde erfordern, Algebra zu tun, was leider nicht so einfach ist. Meine Frage ist: Was ist der logischste Weg, um ein Problem wie 3x + 3y = 15 zu lösen? Nehmen wir an, dass ich eine x gegeben habe und ich für y lösen. Wie würden Sie eine Funktion erstellen, die es löst?

Offensichtlich könnte ich wählen, extrem ineffizient zu sein und y-Werte durchlaufen, bis ich einen finde, der die Gleichung erfüllt, aber versuchen wir es zu vermeiden.

Ich bitte Sie nicht, das Skript für mich zu schreiben, ich frage nur nach dem besten/effizientesten Denkprozess, um loszulegen.

Derzeit wird dieses Projekt in Javascript geschrieben.

Danke!

Antwort

0

One (ungefähre numerische) Art und Weise ist Ihre Gleichung zu nehmen wieder schreibt es als P (x) = 0 [in Ihrem Fall P (x) = 3 (x^2) + 3 (y^2) - 15] und dann eine numerische Technik wie Newton-Raphson verwenden, um die Wurzeln von P (x) zu finden

Wenn Sie wollen um symbolisch zu lösen, ist dann ein Computer Algebra System (CAS) erforderlich (nicht trivial).

+0

In Ordnung, ich werde rauskommen und sagen, dass ich mich in Mathe immer für anständig gehalten habe, aber du hast mich total verloren. Können Sie erklären, woher Sie "P (x) = 3 (x^2) + 3 (y^2) - 15" bekommen haben? Auch wenn es nur eine Formel oder eine Methode ist, genügt ein Link zu Wikipedia, um einen genaueren Einblick in das Geschehen zu bekommen. – williamg

+0

@WillyG: Du hast Kreise erwähnt, also nahm ich an, du hättest 3x + 3y = 15 falsch eingegeben .... falsche Annahme scheint es! :) –

+0

Oh haha ​​ja. Ich wollte mit einem einfachen Beispiel beginnen, das Kreisen ähnlich ist. Ich denke, wenn ich eine grundlegende Gleichung arbeiten kann, dann sollte es nicht zu schwer sein, darauf zu erweitern und komplizierter zu werden. – williamg

0

y=3x^(2) ist nicht linear seine quadatric, 3x+3y=15 ist in der Tat linear.

Es hängt davon ab, wie komplex Sie gehen wollen, ist es nicht so anspruchsvoll, etwas zu schreiben eine lineare Gleichung wie 3x+3y=15 in seine Standard-linearen Form (y=5-x) neu zu ordnen, aber es wird noch schwieriger, schnell und während es wahrscheinlich Serverseite Bibliotheken dafür bin ich mir über JS nicht sicher.

0

normalerweise würden Sie die Gleichung mit einer Variablen auf der einen Seite des Gleichheitszeichens und die andere Variable auf der anderen Seite ausdrücken.

Wenn Sie Gleichungen aus zufälligen Benutzereingaben umschreiben möchten, benötigen Sie eine Art von Parsing-Engine.

Blick here für eine Diskussion

Verwandte Themen