Advertisement
Guest User

Untitled

a guest
May 26th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. package bulatski;
  2.  
  3. public class ChemberlinSolver {
  4.  
  5. private double alpha;
  6. private double beta;
  7. private double gamma;
  8.  
  9. private double a;
  10. private double b;
  11. private double c;
  12.  
  13. public ChemberlinSolver(double alpha,
  14. double beta,
  15. double gamma,
  16. double a,
  17. double b,
  18. double c) {
  19. this.alpha = alpha;
  20. this.beta = beta;
  21. this.gamma = gamma;
  22.  
  23. this.a = a;
  24. this.b = b;
  25. this.c = c;
  26. }
  27.  
  28. private boolean validateParams() {
  29. return beta > 0 && gamma > 0 && alpha > 0 && c > 0 && b > 0 && b <= alpha && a >= 0;
  30. }
  31.  
  32. private double solveQ1() {
  33. return (-2 * (beta + c) +
  34. Math.sqrt(4 * Math.pow(beta + c, 2) + 12 * gamma * (alpha - b))) /
  35. (6 * gamma);
  36. }
  37.  
  38. private double solvePm(double q1) {
  39. return alpha - beta * q1 - gamma * Math.pow(q1, 2);
  40. }
  41.  
  42. private double solveR(double alpha1) {
  43. return ((- beta - c) + Math.sqrt(Math.pow(beta + c, 2) + 3 * (alpha1 - b))) /
  44. ((-beta - c) + Math.sqrt(Math.pow(beta + c, 2) + 3 * (alpha - b)));
  45. }
  46.  
  47. private double solveK(double r) {
  48. return r / (1 + r);
  49. }
  50.  
  51. private double solveQ0(double r) {
  52. return ((- beta * (1 + r) - c) +
  53. Math.sqrt(Math.pow(beta * (1 + r) + c, 2) + 3 * gamma * Math.pow(1 + r, 2) * (alpha - b))) /
  54. (3 * gamma * (1 + r));
  55. }
  56.  
  57. public void solve() {
  58. if(!validateParams()) {
  59. System.out.println("Wrong attribute's set.");
  60. return;
  61. }
  62. double q1First = solveQ1();
  63. System.out.println("Q1 = " + q1First);
  64. double alpha1 = solvePm(q1First);
  65. System.out.println("Alpha1 = " + alpha1);
  66. double r = solveR(alpha1);
  67. System.out.println("r = " + r);
  68. double k = solveK(r);
  69. System.out.println("k = " + k);
  70. double q0 = solveQ0(r);
  71. System.out.println("q0 = " + q0);
  72. double q2 = q0 * k;
  73. System.out.println("q2 = " + q2);
  74. double q1 = q0 * (1 - k);
  75. System.out.println("q1 = " + q1);
  76. }
  77.  
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement