Gleichsetzungsverfahren



  • Hi,
    ich habe versucht ein Programm zu schreiben, was z.b. folgende Rechnung ausrechnet:

    I 2 = x + 4y
    II x = 62 + 11y
    II -> I

    2 = 62 + 11y + 4y
    2 = 62 + 15y /-2 -15y
    -15y = 60 / : (-15)
    y = -4

    2 = x -16 /-2 -x
    -x = -18 / *(-1)
    x = 18

    Ich hoffe, ihr habt mich verstanden ;).
    Habe heute den halben Tag damit verbracht, dafür eine Lösung in C++ zu finden.
    Jedoch leider an keinem vernünftigen Ergebniss gekommen.
    Besonders, interessiert es mich, wie man das mit den Variablen von meiner Rechnung in C++ richtig umgeht. 4y z.b. kann man ja nicht eingeben, 4 * y aber auch nicht, weil C++ ja den Wert von y noch als 0 wertet..
    Bin über jede Hilfe Dankbar 😉
    mfg
    Sabjosu

    EDIT: Achja, eig. ist dass das "Einsetzungsverfahren"...



  • Hallo hab grad ned viel Zeit aba: du gehst das falsch an. (sofern ich richtig liege).

    Ich schreib selbst grad an einem Matheprogramm und hab das schneller und eifnacher lösen können. (falls es nur darum geht das Gleichungsystem zu lösen).

    greetz



  • muhi89 schrieb:

    Hallo hab grad ned viel Zeit aba: du gehst das falsch an. (sofern ich richtig liege).

    Ich schreib selbst grad an einem Matheprogramm und hab das schneller und eifnacher lösen können. (falls es nur darum geht das Gleichungsystem zu lösen).

    greetz

    Hi muhi89.
    Also so richtig helfen tut mir das nicht..
    Wenn du mal Zeit findest, wärs nett wenn du es etwas ausfürlicher schreiben würdest 😉



  • Also, Gleichungen löst C++ ganz sicher nicht für dich.
    Du musst das ganze anders angehen. Ich würde erst mal die beiden Gleichungen parsen und dann in Variablen speichern, wie viel x, y und Einer ich eigentlich jeweils auf beiden Seiten habe. Dann kann man da verschieben, so wie's nötig ist.



  • Also, so richtig verstanden habe ich dich da noch nicht.(Mag wohl daran liegen, das
    ich mich noch nicht so lange mit C++ beschäftige 😮 )
    Ein Beispiel wäre vieleicht viel verlangt, aber doch sehr nett 😃 .
    Ansonsten versuche ich es morgen noch einmal.



  • Schnapp dir das Tabellenkalkulationsprogramm deiner Wahl. Implementiere dort den Gaußalogrithmus und versuch das gleiche dann C++. Oder mach's direkt in C++.



  • Du hast was davon gesagt dein Programm würde y als 0 werten oder dergleichen.
    Daraus schließe ich, dass du versuchst mit Zahlen und unbekannten Variablen zu rechnen.
    Vielleicht fällt dir die Aufgabe leichter wenn du stattdessen die komplette Funktion in einem String speicherst, den man dann auch viel besser auf seine Bestandteile überprüfen kann.

    Der erste Schritt wäre dann erst einmall alles auf die "richtige" Seite zu bringen, so dass letztendes alle Funktionen des Gleichungssystems wie folgt aussehen :
    U11 X1 + U12 X2 + U1n Xn = V
    U21 X1 + U22 X2 + U2n Xn = V2 usw...

    Sobald du in der Lage bist in deinem String dich so gut zu recht zu finden sowas hinzubekommen, ist der Rest einfach nur noch pures recherschieren nach Mathematischen Regeln.
    Dafür solltest du dich mit dem Thema Matrizen auseinandersetzen, speziell könntest du auch Begriffen wie "Koeffizientenmatrix" oder "Dreiecksmatrix" suchen.

    Schlussendlich läuft das dann auch auf diese Gausssche Elimination hinaus auf den Pankes link auch verweist.


Anmelden zum Antworten