Substitution zur Berechnung der Nullstellen eines Polynoms - Wo ist der Fehler?

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von Trade.

    Substitution zur Berechnung der Nullstellen eines Polynoms - Wo ist der Fehler?

    Moin,

    ich habe hier grade eine ganzrationale Funktion: d(x) = x^4 - 4 - 4x^2 = x^4 - 4x^2 - 4
    Nun wollte ich die Nullstellen von dem Polynom bestimmen und habe dafür Substitution angewendet, da der Grad ja 4 ist, ich keine Nullstelle erraten konnte und mir eine 2-fache Polynomdivision zudem auf den ersten Blick ungünstig erschien.

    Also x^2 mit z substituiert: d(z) = z^2 - 4*z - 4
    Somit ist eine binomische Formel schon mal aus dem Spiel, da jeweils subtrahiert wird.
    => Lösungsformel: (4 +- sqrt(16 - 4*1*(-4))) / (2*1), ergibt für z1: 2+sqrt(2) und für z2: 2-sqrt(2).

    So weit so gut. Um das x jetzt zu bekommen, muss ich ja dann z1 und z2 ja nur unter die Wurzel schreiben und dann habe ich da 4 x-Werte für 4 Nullstellen. Raus kommt bei mir dann für x1/x2 ungefähr 1,84 und -1,84 und für x3/x4 ungefähr 0,765 und -0,765.

    Da mir das komisch vorkam, habe ich es überprüft und siehe da, andere Nullstellen und auch nur 2 statt 4: m.wolframalpha.com/input/?i=x%5E4+-+4x%5E2+-+4+%3D+0&x=0&y=0

    Wo ist mein Fehler? Ich habe da bestimmt irgendwas verhunzt, aber ich sehe nicht, was. Müssten doch auch eig. 4 NST sein, wegen dem x^4, oder? Stehe grade etwas auf dem Schlauch.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Trade“ ()

    Oh, jo, habe das auch hier so stehen. War ein Typo, ist 16. Ich bessere das oben schnell aus.
    Unter der Wurzel steht also 32. ^^
    Trotzdem eine Idee, @Artentus?

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Wie wäre es mit der ABC-Formel?

    Die Nullstellen wären dann wg. der Substitution +/-sqrt(x1) und +/-sqrt(x2).

    Wenn du eine Ganzrationale Funktion 4. Grades hast (wie in diesem Fall wg. dem ​x^4), kann diese übrigens 0 bis 4 Nullstellen haben - es müssen nicht genau 4 sein :D
    @nafets Die habe ich doch verwendet und das dann so weitergerechnet? :D
    Bei uns heißt die halt Mitternachts- oder Lösungsformel. Und ich habe es halt z genannt, weil x sich ja im Term befindet.

    ​Wenn du eine Ganzrationale Funktion 4. Grades hast (wie in diesem Fall wg. dem x^4), kann diese übrigens 0 bis 4 Nullstellen haben - es müssen nicht genau 4 sein

    Ich weiß, aber das erschien mir hier am Logischsten irgendwie. ;)

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Kann da @nafets nur zustimmen. Die ABC-Formel oder auch Mitternachtsformel genannt ist meiner Meinung nach praktischer,
    da man da problemlos direkt a,b,c einsetzen kann ohne die komplette Gleichung durch a teilen zu müssen wie bei der
    p/q-Formel.

    Edit: Oh zu spät :(

    MfG Tim
    Wie gesagt, die habe ich ja benutzt.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Also ich bin auf das gleiche wie WolframAlpha gekommen:
    Spoiler anzeigen

    Quellcode

    1. d(x) = x^4 - 4x^2 - 4
    2. x^2 := z
    3. d(x) = z^2 - 4z - 4
    4. d(x) = 0
    5. z^2 - 4z - 4 = 0 | P = -4; Q = -4
    6. z_1,2 = -P/2 +- rt:2((P/2)^2 - Q)
    7. z_1,2 = 2 +- rt:2(2^2 + 4)
    8. z_1,2 = 2 +- rt:2(8)
    9. z_1,2 = 2 +- rt:2(4 * 2)
    10. z_1,2 = 2 +- rt:2(4) * rt:2(2)
    11. z_1,2 = 2 +- 2 * rt:2(2)
    12. z_1 = 2 + 2 * rt:2(2)
    13. z_2 = 2 - 2 * rt:2(2)
    14. x^2 = z
    15. x = +-rt:2(z)
    16. x_11,12 = +-rt:2(z_1)
    17. x_11,12 = +-rt:2(2 + 2 * rt:2(2))
    18. x_11 = rt:2(2 + 2 * rt:2(2))
    19. x_12 = -rt:2(2 + 2 * rt:2(2))
    20. x_21,22 = +-rt:2(z_2)
    21. x_21,22 = +-rt:2(2 - 2 * rt:2(2))
    22. x_21 = rt:2(2 - 2 * rt:2(2))
    23. x_22 = -rt:2(2 - 2 * rt:2(2))
    24. x_11 = rt:2(2 + 2 * rt:2(2)) = 2.197
    25. x_12 = -rt:2(2 + 2 * rt:2(2)) = -2.197
    26. x_21 = rt:2(2 - 2 * rt:2(2)) = rt:2(2 - 2.828) = rt:2(-0.828) = Nope
    27. x_22 = -rt:2(2 - 2 * rt:2(2)) = -Nope
    28. Zur Info: _ bedeutet tiefgestellt und rt:2() ist Quadratwurzel.

    Ich bin mir nicht sicher, wo Du anders gerechnet hast, aber mir sind 2 Knackpunkte aufgefallen:
    1. rt:2(8) = rt:2(4 * 2) = rt:2(4) * rt:2(2) = 2 * rt:2(2)
    2. 2 der Lösungen sind Wurzeln von negativen Zahlen, also sind es keine reellen Lösungen.

    Edit:
    PQ-Formel:

    ABC-Formel:

    Das ist ein Glaubenskrieg. Wie XBOX vs Playstation, PC vs Konsole, AC vs DC, a += 2 vs a = a + 2.
    Auch in unserer Klasse gibt es unterschiedliche Meinungen. Ich bevorzuge die PQ-Formel, weil sie einfacher zu merken ist.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Niko Ortner“ ()

    Du hast dich nur bei den z12 verrechnet. Sonst passt alles.

    Mitternachtsformel war richtig: z1/2= (4 +- sqrt (16 + 16))/2 = (4 +- sqrt(2 * 4²))/2 = 2 +- 2*sqrt(2)
    Die Nullstellen von d sind also wie du richtig gesagt hast die Wurzeln aus dieser Lösung. Da 2 - 2*sqrt(2) aber negativ ist. Gibt es nur zwei reelle Lösungen:
    x12= +- sqrt(2 * (1 + sqrt(2) )

    EDIT: Zu langsam xD
    Vielen Dank, Leute. Die Lösung des Problems wäre so einfach gewesen: Einfach mal das Zwischenergebnis richtig abschreiben.
    Es ist ja 2 + 2*sqrt(2) und nicht 2+sqrt(2). Darum kamen bei mir auch 4 Lösungen raus, weil 2 - sqrt(2) wäre ja positiv, 2 - 2*sqrt(2) hingegen nicht.

    Jetzt macht das alles Sinn. :D

    @Niko Ortner Oha, die PQ-Formel hatten wir nie. Sieht recht komplex aus. Aber danke dafür!
    @Incognito Jo, wie gesagt, falsch abgeschrieben ( :D ), daher auch die falschen Ergebnisse. Das mit der Wurzel und dem negativen Ergebnis, das ich nicht hatte, hat mich dann daraufgebracht.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    Trade schrieb:

    Oha, die PQ-Formel hatten wir nie. Sieht recht komplex aus. Aber danke dafür!

    Ja und das aus gutem Grund. Die Lehrer haben dir genauso wie mir damit einen Gefallen getan. p/q-Formel bähh. :P
    Hab ich ja ein paar Beiträge weiter oben schon erklärt warum ;)

    MfG Tim
    @Trade
    Die PQ-Formel ist nur eine etwas einfachere Version der ABC-Formel: Sie ist nicht dafür ausgelegt, dass ein Faktor vor dem x^2 steht, weswegen man in Fällen wie diesem halt durch diesen Faktor teilen müsste. Aber wenn man die ABC-Formel kann, braucht man die PQ-Formel nicht mehr.

    @Fortender
    Hab deine Posts wohl komplett übersehen :D

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „nafets“ ()

    Fortender schrieb:

    Kann da @nafets nur zustimmen. Die ABC-Formel oder auch Mitternachtsformel genannt ist meiner Meinung nach praktischer,
    da man da problemlos direkt a,b,c einsetzen kann ohne die komplette Gleichung durch a teilen zu müssen wie bei der
    p/q-Formel.

    Edit: Oh zu spät :(

    MfG Tim

    @nafets You're welcome :)

    MfG Tim
    Achso, verstehe.
    Also der Koeffizient, @nafets. :P Scherz. Naja, wenn ich das dann noch selbstständig machen muss, dann ist das ja nicht so komfortabel. => Lösungsformel mit den Koeffizienten in den Taschenrechner eintippen und fertig. ^^

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!: