Advertisement
Guest User

Untitled

a guest
Jan 6th, 2018
421
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.91 KB | None | 0 0
  1. import java.lang.Math.*;
  2.  
  3. interface Function {
  4.     double getValue ( double x );
  5. }
  6.  
  7. class liniowa implements Function{
  8. public double getValue(double x){
  9. return x-5;
  10.     }
  11. }
  12.  
  13. class kwadratowa implements Function{
  14. public double getValue(double x){
  15. return x*2*x+x-8;
  16.     }
  17. }
  18.  
  19. class wielomianowa implements Function{
  20. public double getValue(double x)
  21. {
  22. return 4*x*x*x*x+3*x*x*x+2*x*x-3*x+8;
  23. }
  24. }
  25.  
  26. class sinh implements Function{
  27. public double getValue(double x)
  28. {
  29. return (x*x-1)*(Math.pow(Math.sinh(x),3));
  30. }
  31. }
  32.  
  33. class bisekcja{
  34.  
  35. static double E = 0.00000001;
  36.  
  37. public static double oblicz(double a, double b, Function f){
  38.  
  39. double x0;
  40.  
  41. while(Math.abs(a - b) > E)
  42. {
  43. x0 = (a + b) / 2;
  44. if(f.getValue(x0) == 0)
  45. break;
  46. else if((f.getValue(a) * f.getValue(x0) < 0) && (f.getValue(x0) * f.getValue(b) > 0))
  47.     b = x0;
  48. else if((f.getValue(x0) * f.getValue(a) > 0) && (f.getValue(x0) * f.getValue(b)) < 0)
  49.     a =x0;
  50. else
  51. break;
  52.  
  53. }
  54. double c = (a + b) / 2;
  55. return c;
  56. }
  57.  
  58. public static void main(String[] args){
  59.  
  60.     double x;
  61.     double a = Double.parseDouble(args[1]);
  62.     double b = Double.parseDouble(args[2]);
  63.    
  64.     if(args[0].equals("liniowa"))
  65.     {
  66.     Function f = new liniowa();
  67.     x = oblicz(a, b, f);
  68.     System.out.println("Pierwiastek z funkcji: " + args[0].toString() + " wynosi: " + x);
  69.     }
  70.     else if(args[0].equals("kwadratowa"))
  71.     {
  72.     Function f = new kwadratowa();
  73.     x = oblicz(a, b, f);
  74.     System.out.println("Pierwiastek z funkcji: " + args[0].toString() + " wynosi: " + x);
  75.     }
  76.     else if(args[0].equals("wielomianowa"))
  77.     {
  78.     Function f = new wielomianowa();
  79.     x = oblicz(a, b, f);
  80.     System.out.println("Pierwiastek z funkcji: " + args[0].toString() + " wynosi: " + x);
  81.     }
  82.     else if(args[0].equals("sinh"))
  83.     {
  84.     Function f = new sinh();
  85.     x = oblicz(a, b, f);
  86.     System.out.println("Pierwiastek z funkcji: " + args[0].toString() + " wynosi: " + x);
  87.     }
  88.     else
  89.     System.out.println("Brak/bledne argumenty");
  90. }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement