Nullstelle berechnen

Status
Nicht offen für weitere Antworten.

xaja

Mitglied
Hallo ihrs,
ich muss eine Nullstelle berechnen und hab folgenden Code. Meine Frage ist, ob ich die Funktion -x^3+1 überall dahin schreiben muss wo ich eben "Funktion" geschrieben habe.
Code:
public class MyFunction {
	private Funktion funktion;
	
	private double genauigkeit=0.00001;
	
	public Nullstellensuche(Funktion funktion, double genauigkeit) {
	    this.funktion = funktion;
	    this.genauigkeit = genauigkeit;
	}
	/**
	 * Berechnet die Nullstelle der Funktion f(x) = -x^3+1 durch binaere Suche.
	 * 
	 * @param unten
	 *            untere Grenze.
	 * @param oben
	 *            obere Grenze.
	 * 
	 * @return Nullstelle der Funktion f(x) = -x^3+1.
	 */
	protected int berechneNullstelle(int unten, int oben) {
		// TODO
		int mitte=(unten+oben)/2;
		if ( Math.abs( funktion.f(mitte) ) < genauigkeit ) {
			return mitte;
		} else
			if ( funktion.f(mitte) * funktion.f(oben) < 0 ) {
				return berechneNullstelle(mitte, oben);
			} else{	
				// man überzeuge sich hier, dass f(mitte) * f(links) < 0 gelten muss!
			    return berechneNullstelle(unten, mitte);
			}
		return Integer.MIN_VALUE;
	}

	
	// Main-Methode zum Testen.
	public static void main(String[] args) {
		
		MyFunction analysis = new MyFunction();

		System.out.println("Nullstelle bei: x = "
				+ analysis.berechneNullstelle(-1000, 1000));
	}
}

würde mich über ne antwort freuen
 
S

SlaterB

Gast
der Klasse wird doch eine anscheinend beliebige Funktion übergeben,
dann wäre es falsch, in der Doku eine bestimmte Funktion anzugeben,
die am Ende gar nicht enthalten sein muss

Klassennamen Funktion + MyFunction deuten aber auf ein größeres Problem hin, wer soll da durchsehen?


deine main-Methode ruft übrigens Nullstellensuche() nicht auf, dann ist ja gar keine Funktion gesetzt?

Methoden klein schreiben!
 

Lexi

Bekanntes Mitglied
Nustellensuche() sieht mir eher wie ein Kontruktor aus. Der Konstruktor muss immer so heißen wie die Klasse !

Überall dort wo du funktion hingeschrieben hast, greifst du auf eine Objektvariable des Typ Funktion zu. Funktion müsstes du als Klasse definiert haben. Schau mal nach ob du die findest und poste sie dann hier .
 

xaja

Mitglied
also ich hab jetzt mal den konstruktor rausgenommen und ihr jetzt mal der geänderte code und mein frage ist nur, muss ich in meinen code nicht irgendwo meine funktion (-x^3+1) eingeben
Code:
public class MyFunction {
	
	private double genauigkeit=0.00001;
	/**
	 * Berechnet die Nullstelle der Funktion f(x) = -x^3+1 durch binaere Suche.
	 * 
	 * @param unten
	 *            untere Grenze.
	 * @param oben
	 *            obere Grenze.
	 * 
	 * @return Nullstelle der Funktion f(x) = -x^3+1.
	 */
	protected int berechneNullstelle(int unten, int oben) {
		// TODO 
		int mitte=(unten+oben)/2;
		if ( Math.abs( funktion.f(mitte) ) < genauigkeit ) {
			return mitte;
		} else
			if ( funktion.f(mitte) * funktion.f(oben) < 0 ) {
				return berechneNullstelle(mitte, oben);
			} else{	
				// man überzeuge sich hier, dass f(mitte) * f(links) < 0 gelten muss!
			    return berechneNullstelle(unten, mitte);
			}
		//return Integer.MIN_VALUE;
	}

	
	// Main-Methode zum Testen.
	public static void main(String[] args) {
		
		MyFunction analysis = new MyFunction();

		System.out.println("Nullstelle bei: x = "
				+ analysis.berechneNullstelle(-1000, 1000));
	}
}
 
S

SlaterB

Gast
ja, musst du, und zwar muss das funktion-Objekt definiert sein, auf welches in berechneNullstelle zugriffen wird,
da war die alte Version schon lauffähiger
 

Lexi

Bekanntes Mitglied
Wie wäre es, wenn du uns einfach mal den Sourcecode der Klasse "Funktion" zeigst ? Die benutzt du doch die ganze Zeit.
 

xaja

Mitglied
hallo, mir is ein fehler unterlaufen und zwar ich soll das zeugs nicht rekursiv lösen sondern interativ und habs so gemacht
Code:
public class MyFunction {
	/**
	 * Berechnet die Nullstelle der Funktion f(x) = -x^3+1 durch binaere Suche.
	 * 
	 * @param unten
	 *            untere Grenze.
	 * @param oben
	 *            obere Grenze.
	 * 
	 * @return Nullstelle der Funktion f(x) = -x^3+1.
	 */
	protected int berechneNullstelle(int unten, int oben) {
		// TODO
		int wert; //der zusuchende Wert
		
		if(wert<unten && wert>oben){
			return 'F'; //Fehlerwert zurückgeben
		}
		while(unten<=oben){
			int mitte=(unten+oben)/2;//Mitte bestimmen
			if(wert<mitte){
				oben=mitte-1; //nach oben durchsuchen
			}else{
				if(wert>mitte){
					unten=mitte+1; //nach unten durchsuchen
				}else{
					return mitte; 
				}
			}
		}
		
		return Integer.MIN_VALUE;
	}
	// Main-Methode zum Testen.
	public static void main(String[] args) {
		
		MyFunction analysis = new MyFunction();

		System.out.println("Nullstelle bei: x = "
				+ analysis.berechneNullstelle(-1000, 1000));
	}
}

aber irgendwie weis ich nicht wo und wie ich meine funktion da rein zu schreiben hab:bahnhof:
für hilfe währe ich sehr dankbar
 
S

SlaterB

Gast
bevor du dich mit höheren Dingen wie Nullstellen beschäftigst, musst du doch erstmal eine Funktion haben?!

lange Zeit gab es bei dir eine Klasse Funktion, nun ist sie weg, da weiß niemand, was man davon halten soll,
im einfachsten Falle wäre die Funktion z.B.
public double f(double x) {
return -x*x*x+1;
}

nun schreibe doch erstmal ein funktionierendes Programm, welches den korrekten Funktionswert für ein paar x-Werte ausgibt,
dann hast du eine Grundlage..
 

Lexi

Bekanntes Mitglied
Wie wäre es, wenn du uns einfach mal den Sourcecode der Klasse "Funktion" zeigst ? Die benutzt du doch die ganze Zeit.
Ich kann mich hier nur selbst zitieren. Ist diese Klasse irgenwie verschwunden oder hast du sie aufgegessen ? Wenn das nicht zutreffen sollte, dann poste das Ding doch einfach mal hier.
 

xaja

Mitglied
So ich hab nur das vorgegeben und soll da irgendwie die nullstelle berechnen, wie ihr ja seht hab ich kein plan wie ich das machen soll und das ganz soll ich iterativ und mit einer binär suche lösen

Code:
public class MyFunction {

	/**
	 * Berechnet die Nullstelle der Funktion f(x) = -x^3+1 durch binaere Suche.
	 * 
	 * @param unten
	 *            untere Grenze.
	 * @param oben
	 *            obere Grenze.
	 * 
	 * @return Nullstelle der Funktion f(x) = -x^3+1.
	 */
	protected int berechneNullstelle(int unten, int oben) {
		// TODO
		return Integer.MIN_VALUE;
	}

	
	// Main-Methode zum Testen.
	public static void main(String[] args) {
		
		MyFunction analysis = new MyFunction();

		System.out.println("Nullstelle bei: x = "
				+ analysis.berechneNullstelle(-1000, 1000));
	}
}
 
Zuletzt bearbeitet:
S

SlaterB

Gast
bevor du dich mit höheren Dingen wie Nullstellen beschäftigst, musst du doch erstmal eine Funktion haben?!

lange Zeit gab es bei dir eine Klasse Funktion, nun ist sie weg, da weiß niemand, was man davon halten soll,
im einfachsten Falle wäre die Funktion z.B.
public double f(double x) {
return -x*x*x+1;
}

nun schreibe doch erstmal ein funktionierendes Programm, welches den korrekten Funktionswert für ein paar x-Werte ausgibt,
dann hast du eine Grundlage..

----------

du könnest nun ja sagen, dass du gar zu gar keine Ahnung hast,
aber zumindest solltest du deine Aufgabe und das Wort 'Nullstelle' solange komplett vergessen
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Volatility berechnen Java Basics - Anfänger-Themen 4
P Medaillen Spiegel der Wander Teilnahmen berechnen. Java Basics - Anfänger-Themen 3
M OOP Brüche nicht richtig berechnen Java Basics - Anfänger-Themen 3
V Durchschnittliche Volatility in Prozent für 4 Stunden berechnen Java Basics - Anfänger-Themen 14
T Fibonacci mit einer Hilfsmethode berechnen Java Basics - Anfänger-Themen 10
laxla123 Quersumme berechnen Java Basics - Anfänger-Themen 1
I For Schleife Summe berechnen Java Basics - Anfänger-Themen 13
S Vollmond berechnen und ausgeben Java Basics - Anfänger-Themen 12
S Vollkommene Zahl berechnen und ausgeben Java Basics - Anfänger-Themen 16
A Berechnen Moor Nachbarschaft Java Basics - Anfänger-Themen 5
E Geburtstag im Schaltjahr berechnen Java Basics - Anfänger-Themen 24
Lion.King Schaltjahr berechnen Java Basics - Anfänger-Themen 31
E Alter (Laufzeit) berechnen Java Basics - Anfänger-Themen 11
I Zuschläge berechnen Java Basics - Anfänger-Themen 15
L mit Fakultät mathematische Formel berechnen Java Basics - Anfänger-Themen 5
TanTanIsTrying Durschnitt berechnen von eingegebener Zahl bis 1 heruntergezählt Java Basics - Anfänger-Themen 9
L Präfix berechnen Java Basics - Anfänger-Themen 33
F Abstand zwischen zwei Objekten berechnen wie? Java Basics - Anfänger-Themen 1
Aemulit Java Schaltjahr berechnen Code Java Basics - Anfänger-Themen 7
Poppigescorn Quersumme Berechnen mit einer While Schleife Java Basics - Anfänger-Themen 13
I Potenz berechnen mit for-Schleife Java Basics - Anfänger-Themen 3
A Standardabweichung in Java berechnen Java Basics - Anfänger-Themen 10
H Gesamtabweichung mit Array berechnen Java Basics - Anfänger-Themen 2
G Java Rabatt berechnen Java Basics - Anfänger-Themen 8
V Rückgeld berechnen Java Basics - Anfänger-Themen 6
eleonori Durchschnitt aller Werte eines Baums berechnen Java Basics - Anfänger-Themen 5
Ianatrix Zahlen von a bis b berechnen Java Basics - Anfänger-Themen 7
L Max, min, Summe und Durchschnitt berechnen Java Basics - Anfänger-Themen 4
L Anhalteweg berechnen Java Basics - Anfänger-Themen 6
Aeon Erste Schritte Preise berechnen mit do-while Java Basics - Anfänger-Themen 9
M Quadratwurzel berechnen Java Basics - Anfänger-Themen 8
V Wachstum berechnen und in Ist-Formel verwenden Java Basics - Anfänger-Themen 5
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
M Abschreibungsplan berechnen Java Basics - Anfänger-Themen 23
V Gehalt berechnen in Java Java Basics - Anfänger-Themen 6
justemii Gehalt berechnen - Aufgabe Java-Programm Java Basics - Anfänger-Themen 9
L Anzahl der benachbarten Minen berechnen und setzen Java Basics - Anfänger-Themen 15
J Array Speicherplatz berechnen Java Basics - Anfänger-Themen 35
H Eingabedaten berechnen Java Basics - Anfänger-Themen 9
B Tranportkosten berechnen mit unterschiedlichen MwSt Java Basics - Anfänger-Themen 9
L Anzahl der Paare deren Summe = 0 ergibt berechnen Java Basics - Anfänger-Themen 0
V Erste Schritte Berechnen von Sinus; sin(x) ohne Math.* Java Basics - Anfänger-Themen 1
J Hilfe bei Java Aufgabe (Restschuld berechnen) Java Basics - Anfänger-Themen 11
N Ein Datum berechnen Java Basics - Anfänger-Themen 3
T Sparplan berechnen Java Basics - Anfänger-Themen 4
F Abstand zum Durchschnitt von 5 Zahlen berechnen... Java Basics - Anfänger-Themen 16
B java.util.Date berechnen Java Basics - Anfänger-Themen 11
P Mittelwert Arrayelemente berechnen Fehler Java Basics - Anfänger-Themen 5
CptK Best Practice Schussparabel berechnen Java Basics - Anfänger-Themen 3
T Modulo / Pow berechnen Java Basics - Anfänger-Themen 4
E Statistische Kennzahlen berechnen Java Basics - Anfänger-Themen 2
F Switch Case Modulo berechnen Java Basics - Anfänger-Themen 12
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
C Preis berechnen mit Java Java Basics - Anfänger-Themen 4
B Zahl in String abspeichern und später berechnen Java Basics - Anfänger-Themen 15
N Best Practice Image recognition fuzzy Superhash berechnen Java Basics - Anfänger-Themen 1
Dawinartor Erste Schritte Schaltjahr berechnen Java Basics - Anfänger-Themen 1
L Pi berechnen Java Basics - Anfänger-Themen 1
CptK Term (als String) berechnen und ausgeben Java Basics - Anfänger-Themen 10
L Den Winkel zwischen zwei Vektoren berechnen! Java Basics - Anfänger-Themen 2
J Variablen arithmetischen Mittelwert berechnen Java Basics - Anfänger-Themen 5
K Matrixen berechnen nach Worker Master Paradigma mit Threads Java Basics - Anfänger-Themen 4
R Winkel berechnen bzw. Geraden sortieren Java Basics - Anfänger-Themen 33
I Schnittpunkt zweier Geraden berechnen Java Basics - Anfänger-Themen 25
M Erste Schritte Mittelwert berechnen -> Methode in der Methode? Java Basics - Anfänger-Themen 14
S Compiler-Fehler Schaltjahr berechnen Java Basics - Anfänger-Themen 5
B Fakultätsfunktion Rekursiv Berechnen aber mit Array Java Basics - Anfänger-Themen 10
S Durchschnitt berechnen aus zwei Textfeldern Java Basics - Anfänger-Themen 21
D Summe berechnen mit verändertem Wert aus Schleife Java Basics - Anfänger-Themen 1
R Liga Berechnen Java Basics - Anfänger-Themen 1
P Klassen Berechnen mehrerer Map-Werte Java Basics - Anfänger-Themen 13
R Fussballtabellen berechnen Java Basics - Anfänger-Themen 12
J Fibonacci -Folge rekursiv berechnen Java Basics - Anfänger-Themen 18
J Durchschnitt jeder Zeile und und Spalte in einem 2D Arrays berechnen Java Basics - Anfänger-Themen 6
F ISBN Prüfziffer berechnen Java Basics - Anfänger-Themen 17
F Die Teilersumme einer Eingabe berechnen Java Basics - Anfänger-Themen 11
S Negafibonacci Folge berechnen Java Basics - Anfänger-Themen 24
G Array Mittelwert berechnen, wie? Java Basics - Anfänger-Themen 8
S Primzahlen berechnen funktioniert nicht richtig Java Basics - Anfänger-Themen 1
N Mit LocalDate alter berechnen Java Basics - Anfänger-Themen 3
J Laufzeit berechnen/Laufzeitanalyse Java Basics - Anfänger-Themen 2
N Arrays mit Zufallzahlen füllen und Statistiken berechnen Java Basics - Anfänger-Themen 5
A Wochentag berechnen Java Basics - Anfänger-Themen 10
Ste3et_C0st Vectoren berechnen Java Basics - Anfänger-Themen 8
L Durchschnitt in der Schleife berechnen Java Basics - Anfänger-Themen 11
A Kreisumfang/-Fläche vom Kreis berechnen Java Basics - Anfänger-Themen 39
L Wochentag berechnen Java Basics - Anfänger-Themen 5
L Rekursive Methode a * b berechnen Java Basics - Anfänger-Themen 2
B OOP Summe aus verschiedenen Instanzen einer Klasse berechnen Java Basics - Anfänger-Themen 2
N Dauer zwischen zwei LocalDateTime Objekten berechnen? Java Basics - Anfänger-Themen 4
P Ausdrücke berechnen Java Basics - Anfänger-Themen 2
V Mittelwert berechnen Java Basics - Anfänger-Themen 31
H Datentypen Tage zwischen zwei Datums berechnen Java Basics - Anfänger-Themen 4
P Quadrate berechnen Java Basics - Anfänger-Themen 3
S OOP Datumsunterschied in Tagen berechnen Java Basics - Anfänger-Themen 3
M Methoden Aus Timestamp das Datum berechnen Java Basics - Anfänger-Themen 3
B Schaltjahre berechnen! Java Basics - Anfänger-Themen 1
A werte in einem String berechnen Java Basics - Anfänger-Themen 3
F Checksummen aus int-Array berechnen Java Basics - Anfänger-Themen 3
F Toto-Tipp-Reihen berechnen Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben