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:
Alles anzeigen
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
- import algoj.IOUtils;
- import static java.lang.Math.*;
- public class Funktion
- {
- public static void main (String[] args)
- {
- double a = IOUtils.readDouble(); // intervall a = 0
- double b = IOUtils.readDouble(); // b = 2
- double x = IOUtils.readDouble(); // Fukntionsvariable
- //System.out.println(c);
- }
- public static double Berechnung (double a, double b, double x);
- //{ double d; // temporäre variable
- // double c; // Halbierungsvariable (Nullstelle)
- // int i; // Zählvariable
- //}
- public class double fkt1()
- {
- a = 0; //
- b = 2; //initialisierung der variablen
- c = b / 2; //
- d = 0; //
- while(c != d) // wenn die variablen sich nicht mehr verändern ist die schleife zu ende
- {
- d = c;
- x = 1 - ((c * c) / 3.141592654); //Formel der ersten Funktion
- if(x > 0)
- {
- c = (c + b) / 2;
- a = d;
- }
- else
- {
- c = (a + c) / 2;
- b = d;
- }
- }
- return c;
- }
- public double fkt2()
- {
- a = 0; //
- b = 3; //initialisierung der variablen
- c = b / 2; //
- d = 0; //
- while(c != d) // wenn die variablen sich nicht mehr verändern ist die schleife zu ende
- {
- d = c;
- x = 1 + sin(c*3.141592654/180) - sqrt(c); //Formel der zweiten Funktion
- if(x > 0)
- {
- c = (c + b) / 2;
- a = d;
- }
- else
- {
- c = (a + c) / 2;
- b = d;
- }
- }
- return c;
- }
- public double fkt3()
- {
- a = 0; //
- b = 2; //initialisierung der variablen
- c = b / 2; //
- d = 0; //
- i = 0; //
- 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
- {
- i++; // i = i + 1;
- d = c;
- x = 0.000001 - sin(0.000001*c*3.141592654/180); //Formel der dritten Funktion
- if(x > 0)
- {
- c = (c + b) / 2;
- a = d;
- }
- else
- {
- c = (a + c) / 2;
- b = d;
- }
- }
- if(i==20)return 0;
- else return c;
- }
- }
- System.out.println("fkt1 = "+ fkt1);
- System.out.println("fkt2 = "+ fkt2);
- //if(fkt3 == 0); //liegt der Schnittpunkt nicht im intervall wird kein wert ausgegeben alternativ, kann man einer Fehlermeldung ausgeben lassen
- //else System.out.println("fkt3");
- }
- };