Programm zur Nullstellenbestimmung

  • Programm zur Nullstellenbestimmung

    heyho,

    ich muss für die Uni ein Programm zur Nullstellenbestimmung schreiben. Leider muss ich zugeben, dass ich keine alzugroße Ahnung von Java habe und nicht weiß, wie ich die Fehler beheben soll. Ich hoffe, dass mir jemand helfen kann.
    Hier ist der Quelltext:


    Quellcode

    1. import algoj.IOUtils;
    2. import static java.lang.Math.*;
    3. public class Funktion
    4. {
    5. public static void main (String[] args)
    6. {
    7. double a = IOUtils.readDouble(); // intervall a = 0
    8. double b = IOUtils.readDouble(); // b = 2
    9. double x = IOUtils.readDouble(); // Fukntionsvariable
    10. //System.out.println(c);
    11. }
    12. public static double Berechnung (double a, double b, double x);
    13. //{ double d; // temporäre variable
    14. // double c; // Halbierungsvariable (Nullstelle)
    15. // int i; // Zählvariable
    16. //}
    17. public class double fkt1()
    18. {
    19. a = 0; //
    20. b = 2; //initialisierung der variablen
    21. c = b / 2; //
    22. d = 0; //
    23. while(c != d) // wenn die variablen sich nicht mehr verändern ist die schleife zu ende
    24. {
    25. d = c;
    26. x = 1 - ((c * c) / 3.141592654); //Formel der ersten Funktion
    27. if(x > 0)
    28. {
    29. c = (c + b) / 2;
    30. a = d;
    31. }
    32. else
    33. {
    34. c = (a + c) / 2;
    35. b = d;
    36. }
    37. }
    38. return c;
    39. }
    40. public double fkt2()
    41. {
    42. a = 0; //
    43. b = 3; //initialisierung der variablen
    44. c = b / 2; //
    45. d = 0; //
    46. while(c != d) // wenn die variablen sich nicht mehr verändern ist die schleife zu ende
    47. {
    48. d = c;
    49. x = 1 + sin(c*3.141592654/180) - sqrt(c); //Formel der zweiten Funktion
    50. if(x > 0)
    51. {
    52. c = (c + b) / 2;
    53. a = d;
    54. }
    55. else
    56. {
    57. c = (a + c) / 2;
    58. b = d;
    59. }
    60. }
    61. return c;
    62. }
    63. public double fkt3()
    64. {
    65. a = 0; //
    66. b = 2; //initialisierung der variablen
    67. c = b / 2; //
    68. d = 0; //
    69. i = 0; //
    70. while(c != d && i < 20) // wenn die variablen sich nicht mehr verändern ist die schleife zu ende oder falls keine Nullstelle vorhanden wird sie abgebrochen
    71. {
    72. i++; // i = i + 1;
    73. d = c;
    74. x = 0.000001 - sin(0.000001*c*3.141592654/180); //Formel der dritten Funktion
    75. if(x > 0)
    76. {
    77. c = (c + b) / 2;
    78. a = d;
    79. }
    80. else
    81. {
    82. c = (a + c) / 2;
    83. b = d;
    84. }
    85. }
    86. if(i==20)return 0;
    87. else return c;
    88. }
    89. }
    90. System.out.println("fkt1 = "+ fkt1);
    91. System.out.println("fkt2 = "+ fkt2);
    92. //if(fkt3 == 0); //liegt der Schnittpunkt nicht im intervall wird kein wert ausgegeben alternativ, kann man einer Fehlermeldung ausgeben lassen
    93. //else System.out.println("fkt3");
    94. }
    95. };
    Alles anzeigen