Nullstellensuche einer Funktion per Näherungsverfahren

Tiyen

Mitglied
Ok habe es jetzt doch geschafft, dass er mir bei der Fkt. (x+1)^-1 den Nährwert zu -2 im Intervall
xl = -10 und xr = -1. Leider erfolgt die Ausgabe in der Methode, was nicht so vorteilhaft ist.

Java:
	public static double intervall(double xl, double xr, double xmid, double ymid) {

		do {
			xmid = (xl + xr) / 2;
			*if(function(xmid) == 0){
				return xmid;
			}
			if (function(xmid) > 0) {
				xl = xmid;
				System.out.println(xl); // Hier gibt er den Nährungswert aus
			} else if (function(xmid) < 0) {
				xr = xmid;
			}
		} while (Math.abs(xl) > 0.00001 || Math.abs(xr) > 0.00001); // Glaube das ist immernoch falsch
		return xl;

Ich soll die Fkt. noch mit einem anderen Intervall nämlich -1 und 1 testen, dabei sollte Null herauskommen, dachte dass das mit der IF Abfrage (mit * markiert) funktionieren würde. Tut es nur leider nicht.
 

HonniCilest

Erfahrenes Mitglied
Dein Problem ist nachwievor, dass du nicht verstehst, was deine Werte bedeuten. Versuch es doch wirklich mal dir aufzuskizzieren.

Hier mal ein Beispiel mit Rekursion mit der dringlichen Bitte, verstehe es und übernehme es nicht einfach so:

Java:
// Validieren der Eingabewerte

// Start der Rekursion
System.out.println("Nullstelle bei ~ X=" + intervall(xl, xr, yl, yr));

public static double intervall(double xl, double xr, double yl, double yr) {
	double xm = (xl + xr) / 2;
	double ym = function(xm);

	// Abbruchbedingung
	if(Math.abs(ym) < 0.00001) return xm;
	// Rekursiver Aufruf
	if(yl * ym > 0) return intervall(xm, xr, ym, yr);
	else return intervall(xl, xm, yl, ym);
}