Advertisement
Guest User

Untitled

a guest
Apr 26th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.36 KB | None | 0 0
  1. package kwadratura;
  2.  
  3. import static java.lang.Math.sqrt;
  4. import java.util.Scanner;
  5.  
  6. public class Kwadratura {
  7.  
  8. private static double myIntegral(double x) {
  9. // Moja calka
  10. return (sqrt((x * x) + 0.4)) / (1.2 + sqrt(0.7 * x * x + 1.3));
  11. }
  12.  
  13. private static double solveResult(double downLimitx, double upLimitx, double[][] wielkosciWezlow) {
  14. double wynikKwadratury = 0;
  15. /*
  16. for (int i = 0; i < wielkosciWezlow.length; i++) {
  17. wynikKwadratury += wielkosciWezlow[i][1] * myIntegral(((upLimitx - downLimitx) / 2) * wielkosciWezlow[i][0] + ((upLimitx + downLimitx) / 2));
  18. }*/
  19. for (double[] wielkosciWezlow1 : wielkosciWezlow) {
  20. wynikKwadratury += wielkosciWezlow1[1] * myIntegral((((upLimitx - downLimitx) / 2) * wielkosciWezlow1[0]) + ((upLimitx + downLimitx) / 2));
  21. }
  22. wynikKwadratury = ((upLimitx - downLimitx) / 2) * wynikKwadratury;
  23. return wynikKwadratury;
  24. }
  25.  
  26. public static void main(String[] args) {
  27.  
  28. double downLimit = 1.3, upLimit = 2.5, wynikKwadraturyGaussa = 0;
  29. int choosedN;
  30. System.out.println("Wybierz n: ");
  31. Scanner scanner = new Scanner(System.in);
  32. choosedN = scanner.nextInt();
  33. if (choosedN == 2) {
  34. double[][] wielkosciWezlow
  35. = {{0.57735027, 1.0},
  36. {-0.57735027, 1.0}};
  37. wynikKwadraturyGaussa = solveResult(downLimit, upLimit, wielkosciWezlow);
  38. } else if (choosedN == 4) {
  39. double[][] wielkosciWezlow
  40. = {{0.33998104, 0.65214515},
  41. {-0.33998104, 0.65214515},
  42. {0.86113631, 0.34785485},
  43. {-0.86113631, 0.34785485}};
  44. wynikKwadraturyGaussa = solveResult(downLimit, upLimit, wielkosciWezlow);
  45. } else if (choosedN == 3) {
  46. double[][] wielkosciWezlow
  47. = {{0.0, 0.88888889},
  48. {0.77459667, 0.55555555},
  49. {-0.77459667, 0.55555555}};
  50. wynikKwadraturyGaussa = solveResult(downLimit, upLimit, wielkosciWezlow);
  51. } else if (choosedN == 5) {
  52. double[][] wielkosciWezlow
  53. = {{0.0, 0.56888889},
  54. {0.53846931, 0.47862867},
  55. {-0.53846931, 0.47862867},
  56. {0.90617985, 0.23692689},
  57. {-0.90617985, 0.23692689}};
  58. wynikKwadraturyGaussa = solveResult(downLimit, upLimit, wielkosciWezlow);
  59. } else if (choosedN == 6) {
  60. double[][] wielkosciWezlow
  61. = {{0.23861918, 0.46791393},
  62. {-0.23861918, 0.46791393},
  63. {0.66120939, 0.36076157},
  64. {-0.66120939, 0.36076157},
  65. {0.93246951, 0.17132449},
  66. {-0.93246951, 0.17132449}};
  67. wynikKwadraturyGaussa = solveResult(downLimit, upLimit, wielkosciWezlow);
  68. } else if (choosedN == 7) {
  69. double[][] wielkosciWezlow
  70. = {{0.0, 0.41795918},
  71. {0.40584515, 0.38183005},
  72. {-0.40584515, 0.38183005},
  73. {0.74153119, 0.27970539},
  74. {-0.74153119, 0.27970539},
  75. {0.94910791, 0.12948497},
  76. {-0.94910791, 0.12948497}};
  77. wynikKwadraturyGaussa = solveResult(downLimit, upLimit, wielkosciWezlow);
  78.  
  79. } else if (choosedN == 8) {
  80. double[][] wielkosciWezlow
  81. = {{0.18343464, 0.36268378},
  82. {-0.18343464, 0.36268378},
  83. {0.52553241, 0.31370665},
  84. {-0.52553241, 0.31370665},
  85. {0.79666648, 0.22238103},
  86. {-0.79666648, 0.22238103},
  87. {0.96028986, 0.10122854},
  88. {-0.96028986, 0.10122854}};
  89. wynikKwadraturyGaussa = solveResult(downLimit, upLimit, wielkosciWezlow);
  90. } else if (choosedN == 9) {
  91. double[][] wielkosciWezlow
  92. = {{0.0, 0.33023936},
  93. {0.32425342, 0.31234708},
  94. {-0.32425342, 0.31234708},
  95. {0.61337143, 0.26061070},
  96. {-0.61337143, 0.26061070},
  97. {0.83603111, 0.18064816},
  98. {-0.83603111, 0.18064816},
  99. {0.96816024, 0.08127439},
  100. {-0.96816024, 0.08127439}};
  101. wynikKwadraturyGaussa = solveResult(downLimit, upLimit, wielkosciWezlow);
  102. } else if (choosedN == 10) {
  103. double[][] wielkosciWezlow
  104. = {{0.14887434, 0.29552422},
  105. {-0.14887434, 0.29552422},
  106. {0.43339539, 0.26926672},
  107. {-0.43339539, 0.26926672},
  108. {0.67940957, 0.21908636},
  109. {-0.67940957, 0.21908636},
  110. {0.86506337, 0.14945135},
  111. {-0.86506337, 0.14945135},
  112. {0.97390653, 0.06667134},
  113. {-0.97390653, 0.06667134}};
  114. wynikKwadraturyGaussa = solveResult(downLimit, upLimit, wielkosciWezlow);
  115. } else {
  116. System.out.println("Podales zly N - Prosze, wybierz inny");
  117. }
  118. System.out.println("Wynik calki: " + wynikKwadraturyGaussa);
  119. }
  120.  
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement