pq Formel
Löst quadratische Gleichungen der Form x² + px + q = 0 mit der pq-Formel — samt Prüfung der Diskriminante.
Die pq-Formel gehört zum Standardstoff des Matheunterrichts: Mit ihr löst man quadratische Gleichungen der Normalform x² + px + q = 0. Dieses Script, das uns Adrian G. geschickt hat, nimmt euch das Rechnen ab: Ihr gebt p und q ein, das Script liefert die Lösungen x1 und x2.
Tragt einfach den p-Wert und den q-Wert in die beiden Felder ein und klickt auf „Berechnen" — das Beispiel p = 8, q = 6 ist bereits vorausgefüllt. Nachkommastellen dürft ihr wahlweise mit Komma oder Punkt schreiben.
Ob eine quadratische Gleichung überhaupt lösbar ist, verrät die sogenannte Diskriminante d = (p/2)² − q, also der Ausdruck unter der Wurzel. Ist d größer als null, gibt es zwei Lösungen; ist d genau null, fallen beide Lösungen zusammen und es gibt nur eine; ist d negativ, hat die Gleichung keine reelle Lösung. Das Script prüft alle drei Fälle und sagt euch jeweils, was Sache ist.
Steht eure Gleichung noch in der allgemeinen Form ax² + bx + c = 0, teilt ihr entweder alles durch a — oder ihr nehmt gleich unser Script zur quadratischen Gleichung, das mit der abc-Formel arbeitet. Wer nur schnell eine Wurzel braucht, findet außerdem ein Script zum Ziehen beliebiger Wurzeln im Archiv.
Gelöst wird die Normalform x² + px + q = 0 mit x1,2 = −p/2 ± √((p/2)² − q).
So funktioniert das Script
Das Script besteht aus drei Teilen: Es liest p und q aus den Eingabefeldern, berechnet daraus die Diskriminante und entscheidet dann anhand ihres Vorzeichens, welches Ergebnis ausgegeben wird. Alles steckt in einer sofort ausgeführten Funktion, damit die Variablennamen nicht mit anderen Scripts auf der Seite kollidieren.
function zahl(id) {
return Number(document.getElementById(id).value.replace(",", "."));
}
Die Hilfsfunktion zahl() holt sich ein Eingabefeld anhand seiner id und macht aus dem eingetippten Text mit Number() eine Zahl. Das replace(",", ".") davor tauscht ein deutsches Dezimalkomma gegen einen Punkt, denn JavaScript kennt intern nur die englische Schreibweise — so wird aus "2,5" erst "2.5" und dann die Zahl 2.5.
const d = p * p / 4 - q; // Diskriminante: (p/2)² − q
Hier entsteht die Diskriminante. p * p / 4 ist dasselbe wie (p/2)², nur ohne die Math.pow-Funktion — p mal p geteilt durch 4. Davon wird q abgezogen. Diese eine Zahl entscheidet über alles Weitere, deshalb wird sie in der Konstante d zwischengespeichert.
if (d > 0) {
const x1 = -p / 2 + Math.sqrt(d);
const x2 = -p / 2 - Math.sqrt(d);
Ist die Diskriminante positiv, gibt es zwei Lösungen. Math.sqrt() zieht die Quadratwurzel aus d, und das „±" der pq-Formel wird zu zwei Zeilen: einmal wird die Wurzel zu −p/2 addiert (x1), einmal abgezogen (x2).
} else if (d === 0) {
… "es gibt nur eine Lösung: x = " + formatiere(-p / 2) …
} else {
… "keine reelle Lösung." …
}
Die beiden anderen Fälle: Bei d === 0 ist die Wurzel null, beide Lösungen fallen auf −p/2 zusammen — die Wurzel muss dann gar nicht mehr gezogen werden. Bei negativem d gibt es keine reelle Lösung, denn aus einer negativen Zahl lässt sich (im Reellen) keine Wurzel ziehen; das Script gibt dann einen entsprechenden Hinweis aus. Das dreifache Gleichheitszeichen === ist der strikte Vergleich in JavaScript — er prüft ohne heimliche Typumwandlung, ob zwei Werte wirklich gleich sind.
function formatiere(x) {
return String(Math.round(x * 1000000) / 1000000).replace(".", ",");
}
Wurzeln liefern oft lange Nachkommaschwänze wie 3.1622776601683795. Die Funktion formatiere() rundet auf sechs Nachkommastellen (mal 1 000 000, runden, wieder teilen) und macht aus dem Dezimalpunkt fürs Auge wieder ein Komma.
document.getElementById("pq-berechnen").addEventListener("click", berechnePQ);
Zum Schluss wird die Rechenfunktion mit dem Button verbunden: addEventListener("click", …) führt sie bei jedem Klick aus. Das Script steht dafür unter dem Formular, damit Felder und Button schon existieren, wenn es läuft.
Zum Anpassen: Die Genauigkeit der Ausgabe steuert ihr über die 1000000 in formatiere() — mit 100 bekommt ihr z. B. zwei Nachkommastellen. Auch die Meldungstexte könnt ihr frei umformulieren, die Rechnung bleibt davon unberührt.
Script für die eigene Homepage
Kopiert euch den kompletten Code und fügt ihn an der Stelle eurer Seite ein, an der das Script erscheinen soll. Er läuft ohne weitere Dateien und ohne fremde Server.
Mehr aus der Kategorie Mathematik
-
5 Zahlen
-
Altersberechnungen
-
Anzahl der Stellen von Potenzen kalkulieren
-
Barrel in Liter
-
Beliebige Wurzel ziehen
-
Binomialverteilung
-
Collatz Problem
-
Denk Dir eine Zahl
-
Dezimalbruch
-
Dezimalzahl in Binärzahl umwandeln
-
Die Kamelhändler
-
Downloadzeit-Rechner
-
Drehender Kreis 1
-
Drehender Kreis 2
-
Drehender Kreis 3
-
Dreiecksrechner
-
Dreisatz
-
Dreisatz antiproportional
-
Einfacher Euro-Rechner
-
Fakultät berechnen
-
Fakultätsrechner
-
Fibonacci Reihe berechnen
-
Fibonacci-Zahlen
-
Flächenberechnung / Dreieck
-
Flächenberechnung / Kreis
-
Flächenberechnung / Parallelogramm
-
Flächenberechnung / Rechteck
-
Flächenberechnung / Trapez
-
Gedanken lesen
-
Geschwindigkeitsmesser