Ocena użytkownikóww: ***** / 1
Nadesłany przez Tomasz Lubiński, 10 maja 2008 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
Metoda_Monte_Carlo.java:
// Calkowanie numeryczne - metoda Monte-Carlo
// www.algorytm.org
// (c)2008 by Tomasz Lubinski
public class Metoda_Monte_Carlo {
//funkcja dla ktorej obliczamy calke
private static double func(double x) {
return x*x+3;
}
//random number from a to b
private static double randomPoint(double a, double b) {
return a + Math.random() * (b-a);
}
/**
* @param args
*/
public static void main(String[] args) {
double xp, xk, calka;
int n;
System.out.println("Podaj poczatek przedzialu calkowania");
xp = Console.readDouble("");
System.out.println("Podaj koniec przedzialu calkowania");
xk = Console.readDouble("");
System.out.println("Podaj dokladnosc calkowania (w setkach punktow)");
n = Console.readInt("");
n *= 100;
calka = 0;
for (int i=0; i<n; i++) {
calka += func(randomPoint(xp, xk));
}
calka = (calka / (double)n) * (xk - xp);
System.out.println("Wartosc calki wynosi w przyblizeniu " + calka);
}
}