import java.util.Random; public class Wiener { Random r = null; public Wiener(){ r = new Random(System.currentTimeMillis()); } public double[] approxWiener(int n, double[] ts){ double[] result = new double[ts.length]; //Realisiere ZV Z_n double[] zs = new double[(int)Math.floor(getMax(ts)*n)+1]; for(int i=0; i max) { max = numbers[i]; } } return max; } public static double getMean(double[] numbers){ double mean = 0.0; if (numbers.length < 1) { return 0; } for (int i = 0; i < numbers.length; i++) { mean += numbers[i]; } return mean / (double)numbers.length; } public static double getVar(double[] numbers){ double var = 0.0; if (numbers.length < 1) { return 0; } double mean = getMean(numbers); for (int i = 0; i < numbers.length; i++) { var += Math.pow(numbers[i]- mean, 2); } return var / (double)(numbers.length-1); } public static void main(String[] args) { int sampleSize = 1000; int order = 1000; int n_stuetz = 1000; double[] sample = new double[sampleSize]; //Bestimme Stützstellen System.out.println("Stützstellen:"); double[] stuetz = new double[n_stuetz+1]; for (int i = 0; i < stuetz.length; i++) { stuetz[i] = (double)i / (double)n_stuetz; System.out.println(stuetz[i]); } System.out.println(); Wiener w = new Wiener(); for (int i = 0; i < sample.length; i++) { double[] val = w.approxWiener(order, stuetz); sample[i] = getMax(val); } //Berechne Mittelwert und Varianz der Maxima-Approximation double mean = getMean(sample); double var = getVar(sample); System.out.println("Mittelwert von Maxima :"+mean); System.out.println("Varianz von Maxima :"+var); } }