Falsche Ergebnisse bei PQ-Formel Berechnung

ehlr

Aktives Mitglied
Hallo.
Ich möchte mit meinem Programm durch Eingabe von zwei Variablen (p und q) die PQ-Formel zur Berechnung der Nullstellen einer Parabel benutzen.
Leider erhalte ich immer ein falsches Ergebnis.

Bsp. : Ich gebe folgendes ein : p=7 q=4. Als Ergebnis müsste für X1 = -6,4 und für X2 = 0,6 ausgegeben werden. Jedoch wird X1 = -2,5 und X2 = -4,5 ausgegeben.

Quelltext, den ich bisher erarbeitet habe :

Java:
double x1new = -(x1/2) + ( ( (x1/2)*(x1/2) - x2 ) / ( (x1/2)*(x1/2) - x2 ) ) ; // PQ Formel 
double x2new = -(x1/2) - ( ( (x1/2)*(x1/2) - x2 ) / ( (x1/2)*(x1/2) - x2 ) ) ; // ""
					
DecimalFormat f = new DecimalFormat("#.000000000000000"); // 1 Vorkommastelle und 15 Nachkommastellen
String ausgabex1 = f.format(x1new); // Double x1 -> String
String ausgabex2 = f.format(x2new); // Double x2 -> String
					
lbl5.setText(ausgabex1); // Ausgabe x1
lbl6.setText(ausgabex2); // Ausgabe x2


PQ Formel :

pq-formel.jpg

copyright : www(.)pqformel(.)de



lg
ehlr
 
Zuletzt bearbeitet:

MFM

Mitglied
mach mal einen Import von der java.lang.Math;

Code:
double x1new = -(x1/2) + Math.sqrt(Math.pow((x1/2), 2) - x2);
müsste dann x1 ergeben.
 

ehlr

Aktives Mitglied
Hi,

in der PQ-Formel kommt eine Wurzel vor, in deinen Berechnungen nicht.

Wurzel ist ja eigentlich nichts anderes als durch sich selber teilen.
Das hier ersetzt ja die Wurzel :

( (x1/2)*(x1/2) - x2 ) / ( (x1/2)*(x1/2) - x2 )


mach mal einen Import von der java.lang.Math;

Code:
double x1new = -(x1/2) + Math.sqrt(Math.pow((x1/2), 2) - x2);
müsste dann x1 ergeben.

X1 ist dann aber 1,208712152 und nicht -6,4
 
Zuletzt bearbeitet:

MFM

Mitglied
genau, Du teilst ja Deinen Term durch sich selbst, das ist ja nicht die Definition der Wurzel.

Dennoch, schau Dir meinen Code mal an und auch die java.Lang.Math, denn genau dazu ist sie doch da :) Eigene Implementierung birgt immer Fehler, die Du so nicht machst, sofern die Methoden richtig implementiert sind. Aber das wäre mittlerweile wohl rausgekommen.

btw, ich bekomme mit meinem Code das korrekte Ergebnis, sofern die Formel stimmt, die Du hingeschrieben hast.
 
G

gman

Gast
Deine Variablen sind auch ungünstig benannt:

Warum p und q nicht auch einfach so nennen anstatt x1 und x2?
Dann sind die Namen auch frei und du musst nicht x1new und x2new
nehmen. Klingt banal aber solche Sachen helfen enorm dabei den
Code zu verstehen.
 

ehlr

Aktives Mitglied
genau, Du teilst ja Deinen Term durch sich selbst, das ist ja nicht die Definition der Wurzel.

Dennoch, schau Dir meinen Code mal an und auch die java.Lang.Math, denn genau dazu ist sie doch da :) Eigene Implementierung birgt immer Fehler, die Du so nicht machst, sofern die Methoden richtig implementiert sind. Aber das wäre mittlerweile wohl rausgekommen.

btw, ich bekomme mit meinem Code das korrekte Ergebnis, sofern die Formel stimmt, die Du hingeschrieben hast.

Leider bekomme ich mit dem Code auch ein falschen Ergebnis :
Java:
double pdurch2 = x1/2;
double x1new = - pdurch2 + Math.sqrt(Math.pow(pdurch2, 2) - x2);
double x2new = - pdurch2 - Math.sqrt(Math.pow(pdurch2, 2) - x2);

Siehe Bildschirmfoto :

picmb.png



In rot ist das richtige Ergebnis.
 
G

Gast2

Gast
Der Code funktioniert doch prima:
Java:
		double p = 6d;
		double q = -4d;

		double pdurch2 = p/2;
		double x1new = - pdurch2 + Math.sqrt(Math.pow(pdurch2, 2) - q);
		double x2new = - pdurch2 - Math.sqrt(Math.pow(pdurch2, 2) - q);

		System.out.println(x1new);
		System.out.println(x2new);
Lässt du dir vllt andere Werte im Label anzeigen?
 

xehpuk

Top Contributor
Ich sagte doch bereits, dass du den ganzen Code posten sollst, denn der Fehler liegt an einer Stelle, die du uns nicht gezeigt hast:
x1 und x2 haben bei dir denselben Wert, nämlich den von p.
 

ehlr

Aktives Mitglied
Der Code funktioniert doch prima:
Java:
		double p = 6d;
		double q = -4d;

		double pdurch2 = p/2;
		double x1new = - pdurch2 + Math.sqrt(Math.pow(pdurch2, 2) - q);
		double x2new = - pdurch2 - Math.sqrt(Math.pow(pdurch2, 2) - q);

		System.out.println(x1new);
		System.out.println(x2new);
Lässt du dir vllt andere Werte im Label anzeigen?

Um es dann im Label anzuzeigen habe ich noch..... hier der Code :

Java:
  double pdurch2 = x1/2;
				    double potenz = Math.pow(pdurch2, 2);
					double x1new = - pdurch2 + Math.sqrt(potenz - x2);
					double x2new = - pdurch2 - Math.sqrt(potenz - x2);  //-(x1/2) - ( ( (x1/2)*(x1/2) - x2 ) / ( (x1/2)*(x1/2) - x2 ) )
					
					DecimalFormat f = new DecimalFormat("#.000000000000000"); // mind. 1 vorkommastelle und x nachkommastellen
					String ausgabex1 = f.format(x1new); // x1 double wird in string ausgabex1 gewandelt
					String ausgabex2 = f.format(x2new); // x2 double wird in string ausgabex1 gewandelt
					
					lbl5.setText(ausgabex1); //ausgabe x1
					lbl6.setText(ausgabex2); //ausgabe x2


Und so hole ich es aus dem Label raus :

Java:
x1 = Double.parseDouble(field1.getText()); // eingabe string -> double
					x2 = Double.parseDouble(field1.getText()); // "
 

ehlr

Aktives Mitglied
Okay... Leute ich sollte mich schämen :oops::oops::oops::oops:

Java:
p = Double.parseDouble(field1.getText()); // eingabe string -> double
q = Double.parseDouble(field1getText()); // "
Da oben ist p = field1 und q = field 1 *schäm*

Tut mir Leid, war wohl ein Anfängerfehler :(


Danke für eure Hilfe!!!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Problem mit java.util.scanner: Falsche Ergebnisse Allgemeine Java-Themen 4
M Kein Scanner Fehler durch falsche EIngabe Allgemeine Java-Themen 4
J Unvorhersehbares Verhalten - benutze ich die falsche Bedingungsprüfung oder brauche ich Threads? Allgemeine Java-Themen 12
D falsche Zeile aus JTable in MySQL gelöscht Allgemeine Java-Themen 6
K Input/Output JUnit: Log Inhalte, falsche Assertion Allgemeine Java-Themen 2
S Ins Falsche Forum gepostet... Allgemeine Java-Themen 0
P BatchUpdateException für falsche Datumsformate anstatt SQLServerException Allgemeine Java-Themen 2
H2SO3- SCJP Chapter 3 Frage 10. Falsche Antwort? Allgemeine Java-Themen 15
P Falsche Ausgabe Allgemeine Java-Themen 5
M rxtx OutputStream sendet falsche werte Allgemeine Java-Themen 3
Z new Date() liefert falsche Uhrzeit Allgemeine Java-Themen 12
M Kugelschnittberechnung liefert falsche Werte Allgemeine Java-Themen 4
I Teilweise falsche Darstellung jap. Zeichen im JEditorPane mit RTFEditorKit aus RTF-Datei Allgemeine Java-Themen 5
D falsche Annahme nach korrekter Auswertung (if, boolean) Allgemeine Java-Themen 2
J Calendar gibt falsche Wochenanzahl zurück Allgemeine Java-Themen 3
hdi Logikfehler/falsche Methode? - Grösse von Dateien/Festplatte Allgemeine Java-Themen 14
M BufferedReader.read(char[] cbuf) liefert falsche Werte? Allgemeine Java-Themen 4
G Denksport: Der falsche Barren Allgemeine Java-Themen 9
W PrintWriter (PrintStream) sendet falsche Werte Allgemeine Java-Themen 18
oliver1974 "(.) should be accessed in a static way" Falsche W Allgemeine Java-Themen 6
N URLClassLoader läd falsche Klasse Allgemeine Java-Themen 3
G BigDecimal Rundet falsche Allgemeine Java-Themen 4
G ständig Iterator über Kollektion --> falsche Reihenfolge? Allgemeine Java-Themen 2
H falsche ausgabe Allgemeine Java-Themen 15
S Decimalformat gibt falsche Werte aus Allgemeine Java-Themen 3
A Falsche Werte bei .readDouble() Allgemeine Java-Themen 2
M problem mit packages - falsche einstellungen? Allgemeine Java-Themen 2
B Mysteriöse Ergebnisse beim Baccarat Programm? Allgemeine Java-Themen 13
S Intressante Benchmark-Ergebnisse mit Listen. Weiss jemand wie man diese erklaeren kann? Allgemeine Java-Themen 15
J Bei einer Zufallsausgabe werden zu viel Ergebnisse ausgegeben Allgemeine Java-Themen 16
X HTTP Auslesen der Ergebnisse von einer Webseite und in eine Liste packen Allgemeine Java-Themen 1
R Eclipse Verschiedene Ergebnisse bei Berechnung eines double-Werts Allgemeine Java-Themen 5
G Input/Output URLDecoder.decode - Unterschiedliche Ergebnisse Windows / Linux Allgemeine Java-Themen 2
C Batchdatei ausführen und Ergebnisse abfragen Allgemeine Java-Themen 8
K Regex für Ergebnisse (9:9, 2:1.) Allgemeine Java-Themen 3
R Formel Bubble Sort Allgemeine Java-Themen 1
S Formel für Sonnenwinkel in ein Programm überführen Allgemeine Java-Themen 11
Zrebna Random Number - Generische Formel zwischen zwei INKLUSIVEN Werten Allgemeine Java-Themen 16
X Template Matching (subimage recognition via Formel) vs KNN Allgemeine Java-Themen 36
G Umsetzen einer Formel in Java Allgemeine Java-Themen 10
L SWT Mathematische Formel mit SWT Textfield auswerten? Allgemeine Java-Themen 3
M Excel Formel in Java Allgemeine Java-Themen 7
N Applet Apache Poi Wert einer Formel ausgeben Allgemeine Java-Themen 5
A JExcel Formel einlesen Allgemeine Java-Themen 2
Landei Design-Problem Formel-Parser Allgemeine Java-Themen 10
W Formel in Java Allgemeine Java-Themen 9
S reelle Funktionen Formel Allgemeine Java-Themen 13
B Formel Interpreter gesucht Allgemeine Java-Themen 7
M Math-String-Formel berechnen lassen Allgemeine Java-Themen 4
M Formel in einem String während Laufzeit berechnen. Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben