All pastes #250364 Raw Edit

Miscellany

public java v1 · immutable
#250364 ·published 2006-11-16 22:04 UTC
rendered paste body
class Integral {		// Funktion f(x) zu der die Fläche berechnet werden soll, x ist Argument aus obersumme bzw. untersumme	static double f(double x) {		double y;		y = 1/((x * x) + 2);		return y;	}		public static void main (String args[]) {				// Ober- und Untergrenze Abfragen		Out.print("Integralrechnung\nBitte geben Sie die Untergrenze an: ");		double a = In.readDouble();		Out.print("Bitte geben Sie die Obergrenze an: ");		double b = In.readDouble();				// Äußere Schleife, n mit 4 intialisieren und immer um Faktor 2 erhöhen,		// äußere Schleife wegen Sichtbarkeit von "differenz" erforderlich		for (double n=4;;n*=2) {						// Summenvariablen bei jedem Durchlauf leeren			double obersumme=0;			double untersumme=0;						// Innere Schleife, Fläche der Streifen berechnen für jedes n (bzw. x) und der jeweiligen Summe übergeben.			for (int i=0,j=1;i<n && j<=n;i++,j++) {				untersumme += f( a + i*(b-a)/n ) * (b-a) / n;				obersumme  += f( a + j*(b-a)/n ) * (b-a) / n;			}						// Betrag der Differenz bilden			double differenz = Math.abs(obersumme-untersumme);						// Teilergebnisse/-flächen ausgeben			Out.println("n: " + n + "  Untersumme: " + untersumme + "  Obersumme: " + obersumme + "  Differenz: " + differenz);						// Abbruch der Schleife und Aufgabenteil b)			if (differenz < 0.0001) {								// !!! AUFGABE B !!!				double ergebnis_gerundet = ((double) ((int) (((obersumme+untersumme)/2)*1000)))/1000;				Out.println("\nErgebnis: " + ergebnis_gerundet + "\n");				// !!! ENDE AUFGABE B !!!								break;			}		}	}}