// SimpsonIntegralTest.java MM 2012 /** * Test der Simpsonregel der Klasse Integral. */ public class SimpsonIntegralTest { /** * Integral von 0 bis 1 ueber * Funktion ( 1.0 ) / ( 1.0 + 1.0 x^1 ) */ public static void main( String[] args) { // Funktion Polynom zaehlerPolynom = new Polynom(); double[] zaehler = new double[ 1]; zaehler[ 0] = 1; zaehlerPolynom.setPolynom( zaehler); Polynom nennerPolynom = new Polynom(); double[] nenner = new double[ 2]; nenner[ 0] = 1; nenner[ 1] = 1; nennerPolynom.setPolynom( nenner); RationaleFunktion fkt = new RationaleFunktion(); fkt.setRationaleFunktion ( zaehlerPolynom, nennerPolynom); // Funktionsausgabe System.out.println(); System.out.println( "f( x) = " + fkt); // Mathematischer Wert System.out.println ( " Math.log( 2) : " + Math.log( 2)); // Integral mit 7 Stuetzstellen Integral integral = new Integral(); double erg = integral.simpson( fkt, 0, 1, 7); System.out.println ( " Simpson( 7 Stuetzstellen): " + erg); // Integral mit 21, 41, 61, 81 Stuetzstellen for( int i = 21; i < 100; i += 20) { erg = integral.simpson( fkt, 0, 1, i); System.out.println ( " Simpson( " + i + " Stuetzstellen): " + erg); } } } /* ------------------------------------------------- */ // Testergebnisse /* f( x) = ( 1.0 ) / ( 1.0 + 1.0 x^1 ) Math.log( 2) : 0.6931471805599453 Simpson( 7 Stuetzstellen): 0.6931697931697932 Simpson( 21 Stuetzstellen): 0.6931473746651163 Simpson( 41 Stuetzstellen): 0.6931471927479559 Simpson( 61 Stuetzstellen): 0.6931471829695383 Simpson( 81 Stuetzstellen): 0.6931471813225872 */