Gleichungen lösen
Übersicht

AldiBetreff: Gleichungen lösen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Ich hab mich letztens gefragt, ob man mit BB einfache Gleichungen wie z.B. diese lösen kann: 3x - 4= 2x + 10 Dann wie im Matheunterricht nach x auflösen: 3x - 4= 2x + 10 | +4 3x= 2x + 14 | -2x x=14 Das schwierige an einer solchen Gleichung ist natürlich, dass x am Anfang unbekannt ist. Und das Dumme daran ist, dass ich nicht weiß, wie ich Blitzbasic eine unbekannte Variable erkläre. Ich hab erst gedacht ich nehm eine Zeichenkettenvariable X$, aber das würd ja auch nicht klappen. Also, wie kann man mit BB Gleichungen lösen? ![]() |
||
goto jollyroger.cabanova.de |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mit dem Gauss Algorithmus zum lösen linearer Gleichungen. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
![]() ![]() |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
fliege |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
BlitzBasic: [AUSKLAPPEN]
Hab es jetzt nicht getestet, wei nicht ob es funktioniert.... Hoffe es aber doch Fliege |
||
![]() |
wunderkind |
![]() Antworten mit Zitat ![]() |
---|---|---|
TheShadow hat Folgendes geschrieben:![]() ![]() ![]() fliege hat Folgendes geschrieben: Hab es jetzt nicht getestet, wei nicht ob es funktioniert....
Hoffe es aber doch. Er wollte sicherlich eine allgemeine Lösung und keine auf das oben genannte Beispielproblem begrenzte. Eine Lösung ist nicht einfach zu finden. Das Problem ist die Auflösung zur Unbekannten. Bringst du mehrere Unbekannte ins Spiel, dann wird's entsprechend komplizierter. Wenn du nur an der Lösung interessiert bist, dann kann ich dir Derive ans Herz legen. Diese Software kann weit mehr ![]() |
||
Aldi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@Wunderkind: Eigentlich wollte ich das Problem speziell mit BB lösen, aber Danke!
@fliege: Das ist bestimmt ein Richtiger Ansatz, jedoch ist es, wie gesagt, auf die obrige Aufgabe 'zugeschnitten'. |
||
goto jollyroger.cabanova.de |
![]() |
wunderkind |
![]() Antworten mit Zitat ![]() |
---|---|---|
Theoretisch musst du dir nur eines der Taschenrechnerprogramme, die hier sicher noch im Forum herumfliegen, nehmen, dafür sorgen, dass dein Eingabestring die Form x=..... hat, und den rechten Teil vom Taschenrechnerprogramm lösen lassen. Schwer kann das nicht sein. Bei der Umformung musst du nur auf die Vorzeichen und die Anzahl der x achten (Z.B. -x oder 5x).
Für dein oben gestelltes Problem brauchst du übrigens nicht den Gauß'schen Algorithmus. Der findet erst bei mehreren Unbekannten Anwendung! Siehe auch HIER. |
||
![]() |
Vincent |
![]() Antworten mit Zitat ![]() |
---|---|---|
arghs ... nee das gaußsche verfahren kannste hier nich nehmen.
hier is eine eingrenzung der lösungswerte besser. du subtrahierst den ersten vom zweiten term .,.. mit zufälligem X (z.b. x=0). dann testest du ob das ergebniss kleiner oder größer 0 ist ... daraufhin veränderst du dann den X wert entsprechend nach oben oder unten ... das kannst du dann beliebig oft machen ... also bis das ergebnis der subtraktion der beiden terme entweder 0 ist (dann hast du den richtigen X wert gefunden) oder sich in einem vorher definierten toleranzbereich von 0 entfernt. |
||
Gott ist nicht mit uns ... weil er mit Idioten keine Gnade kennt ! |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
eingrenzung kannst du bei mehr als 1 gleichung und 1 variable kicken.
Gauss mit PivotStrategie ist mehr als ausreichen, relativ einfach umzusetzen und ist zudem auch noch extrem schnell. Alternativ kann man auch mit Gauss-Jordan die umkehrmatrix des gleichungssystem suchen und mit dem lösungsvektor multiplizieren, dass gibt dann direkt die lösungen. nur gauss jordan mit computer wüsst ich ehrlich gesagt grad net wie das ginge ... ( die zweite variante wird in matheprogrammen häufig mit Matrix \ Vektor als operation angegeben oder auch Vektor * Matrix ^-1 ) |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
wunderkind |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dreamora hat Folgendes geschrieben: eingrenzung kannst du bei mehr als 1 gleichung und 1 variable kicken.
Aber er hat doch nur eine einfache Gleichung. Guckst du oben. Nicht etwa mehrere. |
||
Aldi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Man könnte doch den Benutzer auffordern, die Gleichung einzugeben. Das speichert man dann als Zeichenkettenvariable. Dann erstellt man in einer seperaten Datei einen neuen Code mit dem Muster was fliege gepostet hat. Das ganze lässt man dann ausführen und sollt ein Ergebnis haben. Müsste eigentlich klappen, werd ich morgen gleich mal probieren... | ||
goto jollyroger.cabanova.de |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Fragt sich nur wie Du das ausführen willst? | ||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Aldi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie wärs mit Include "gaga.bb" | ||
goto jollyroger.cabanova.de |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du willst also gaga.bb als Include an den Enduser ausliefern bzw. dort erstellen? Wenn ja, hast Du die Funktionsweise von Include nicht verstanden ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Aldi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
aus der OH:
INCLUDE Datei$ Beschreibung v1.21 Dieser Befehl lädt ein anderes BlitzBasic-Programm als Quellcode in den Speicher. Manchmal ist es sinnvoll bei großen Programmen einige Teile wie z.B. bestimmte Unterprogramme, zur besseren Übersicht, in eine andere Datei auszulagern. Diese Datei wird beim Starten sofort geladen und quasi in das Programm eingefügt. Viele Programmierer veröffentlichen so Erweiterungen zu einer Programmiersprache, die dann besonders einfach eingebunden werden können. Wenn ein Fehler in dem Include-Programm auftritt, so zeigt BlitzBasic automatisch den Fehler in dieser Datei an. Parameter Datei = Dateiname (evtl. mit Pfad) zur BlitzBasic-Programmdatei Rückgabewert - Beispiel Dieses Programm lädt mehrere ausgelagerte Dateien: INCLUDE "Grafikfunktionen.bb" INCLUDE "Menuefunktionen.bb" [/OH] sowie ich das verstanden hab, heisst das, dass ich einen externen BB-Code ausführen kann. Es macht ja wohl keinen Unterschied, ob ich eine fertige Datei ausführe, oder eine selbst erstellte... |
||
goto jollyroger.cabanova.de |
![]() |
wunderkind |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzBasic-Dateien werden mit Include eingebunden, damit sie der Compiler zum Zeitpunkt der Compilierung mitverarbeitet. Dein fertiges Programm rührt Quelltextdateien nicht mehr an. | ||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der Code wird vor dem compilieren in den Quellcode eingefügt. So als ob das Include via Copy&Paste durch den anderen Code ersetzt. Ist also so als ob der Code der Include da schon immer stehen würde. Erst dann wird compiliert ![]() ![]() Edit: War wohl jemand schneller ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Aldi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mann das gibts doch nicht! Das geht bestimmmt! ![]() |
||
goto jollyroger.cabanova.de |
Aldi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also ich habe gerade
Code: [AUSKLAPPEN] datei= Writefile("gaga.bb") Writeline datei,"For X= 1 to 99" Writeline datei,"If X*3-5=X*2+4 Then Exit Writeline datei,"Next" Writeline datei,"Print X" closefile datei include "gaga.bb" waitkey geproggt, und das ging! Dann hab ich das ganze natürlich mit Input versucht(also das der Benutzer eine Gleichung eingibt) aber des hat dann net geklappt. Aber immerhin. |
||
goto jollyroger.cabanova.de |
![]() |
wunderkind |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie hieß denn die Datei, in der der Code stand?! Vielleicht auch gaga.bb? | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group