Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package kwadratura;
- import static java.lang.Math.sqrt;
- import java.util.Scanner;
- public class Kwadratura {
- private static double myIntegral(double x) {
- // Moja calka
- return (sqrt((x * x) + 0.4)) / (1.2 + sqrt(0.7 * x * x + 1.3));
- }
- private static double solveResult(double downLimitx, double upLimitx, double[][] wielkosciWezlow) {
- double wynikKwadratury = 0;
- /*
- for (int i = 0; i < wielkosciWezlow.length; i++) {
- wynikKwadratury += wielkosciWezlow[i][1] * myIntegral(((upLimitx - downLimitx) / 2) * wielkosciWezlow[i][0] + ((upLimitx + downLimitx) / 2));
- }*/
- for (double[] wielkosciWezlow1 : wielkosciWezlow) {
- wynikKwadratury += wielkosciWezlow1[1] * myIntegral((((upLimitx - downLimitx) / 2) * wielkosciWezlow1[0]) + ((upLimitx + downLimitx) / 2));
- }
- wynikKwadratury = ((upLimitx - downLimitx) / 2) * wynikKwadratury;
- return wynikKwadratury;
- }
- public static void main(String[] args) {
- double downLimit = 1.3, upLimit = 2.5, wynikKwadraturyGaussa = 0;
- int choosedN;
- System.out.println("Wybierz n: ");
- Scanner scanner = new Scanner(System.in);
- choosedN = scanner.nextInt();
- if (choosedN == 2) {
- double[][] wielkosciWezlow
- = {{0.57735027, 1.0},
- {-0.57735027, 1.0}};
- wynikKwadraturyGaussa = solveResult(downLimit, upLimit, wielkosciWezlow);
- } else if (choosedN == 4) {
- double[][] wielkosciWezlow
- = {{0.33998104, 0.65214515},
- {-0.33998104, 0.65214515},
- {0.86113631, 0.34785485},
- {-0.86113631, 0.34785485}};
- wynikKwadraturyGaussa = solveResult(downLimit, upLimit, wielkosciWezlow);
- } else if (choosedN == 3) {
- double[][] wielkosciWezlow
- = {{0.0, 0.88888889},
- {0.77459667, 0.55555555},
- {-0.77459667, 0.55555555}};
- wynikKwadraturyGaussa = solveResult(downLimit, upLimit, wielkosciWezlow);
- } else if (choosedN == 5) {
- double[][] wielkosciWezlow
- = {{0.0, 0.56888889},
- {0.53846931, 0.47862867},
- {-0.53846931, 0.47862867},
- {0.90617985, 0.23692689},
- {-0.90617985, 0.23692689}};
- wynikKwadraturyGaussa = solveResult(downLimit, upLimit, wielkosciWezlow);
- } else if (choosedN == 6) {
- double[][] wielkosciWezlow
- = {{0.23861918, 0.46791393},
- {-0.23861918, 0.46791393},
- {0.66120939, 0.36076157},
- {-0.66120939, 0.36076157},
- {0.93246951, 0.17132449},
- {-0.93246951, 0.17132449}};
- wynikKwadraturyGaussa = solveResult(downLimit, upLimit, wielkosciWezlow);
- } else if (choosedN == 7) {
- double[][] wielkosciWezlow
- = {{0.0, 0.41795918},
- {0.40584515, 0.38183005},
- {-0.40584515, 0.38183005},
- {0.74153119, 0.27970539},
- {-0.74153119, 0.27970539},
- {0.94910791, 0.12948497},
- {-0.94910791, 0.12948497}};
- wynikKwadraturyGaussa = solveResult(downLimit, upLimit, wielkosciWezlow);
- } else if (choosedN == 8) {
- double[][] wielkosciWezlow
- = {{0.18343464, 0.36268378},
- {-0.18343464, 0.36268378},
- {0.52553241, 0.31370665},
- {-0.52553241, 0.31370665},
- {0.79666648, 0.22238103},
- {-0.79666648, 0.22238103},
- {0.96028986, 0.10122854},
- {-0.96028986, 0.10122854}};
- wynikKwadraturyGaussa = solveResult(downLimit, upLimit, wielkosciWezlow);
- } else if (choosedN == 9) {
- double[][] wielkosciWezlow
- = {{0.0, 0.33023936},
- {0.32425342, 0.31234708},
- {-0.32425342, 0.31234708},
- {0.61337143, 0.26061070},
- {-0.61337143, 0.26061070},
- {0.83603111, 0.18064816},
- {-0.83603111, 0.18064816},
- {0.96816024, 0.08127439},
- {-0.96816024, 0.08127439}};
- wynikKwadraturyGaussa = solveResult(downLimit, upLimit, wielkosciWezlow);
- } else if (choosedN == 10) {
- double[][] wielkosciWezlow
- = {{0.14887434, 0.29552422},
- {-0.14887434, 0.29552422},
- {0.43339539, 0.26926672},
- {-0.43339539, 0.26926672},
- {0.67940957, 0.21908636},
- {-0.67940957, 0.21908636},
- {0.86506337, 0.14945135},
- {-0.86506337, 0.14945135},
- {0.97390653, 0.06667134},
- {-0.97390653, 0.06667134}};
- wynikKwadraturyGaussa = solveResult(downLimit, upLimit, wielkosciWezlow);
- } else {
- System.out.println("Podales zly N - Prosze, wybierz inny");
- }
- System.out.println("Wynik calki: " + wynikKwadraturyGaussa);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement