Ich bin derzeit in einer Java-Klasse an meiner Universität und wir wurden gebeten, eine Taylor-Serie-Gleichung zu programmieren, um eine Sinus-Funktion zu berechnen. Ich habe codiert, was für mich Sinn macht, und ich habe versucht, jeden Codeabschnitt zu debuggen, den ich mir vorstellen kann, um sicherzustellen, dass alle Teile so funktionieren, wie ich denke, aber das Programm funktioniert immer noch nicht richtig. Also, ich hoffe, dass sich jemand das anschaut und sieht, was ich falsch mache.Taylor Series einer Sinus
das ist die Gleichung: Taylor Series Equation
public class Sine {
public static int factorial(int a) {
int num = a;
if (a == 1) return 1;
for (int i = 1; i < num; i++){
a = a * i;
} return a;
}
public static double numerator(double x, int power) {
double ret = Math.pow(x, power);
return ret;
}
public static void main(String[] args) {
int power = 1;
int iter = 0;
double x = Math.PI/4;
int sign = 1;
while (iter != 10) {
iter++;
System.out.println("Iteration " + iter + ": " + x);
x += sign * numerator(x, power)/factorial(power);
power += 2;
sign *= -1;
}
System.out.println("\nTaylor Series, Final: " + x);
System.out.println("Value of Sine: " + Math.sin(Math.PI/4));
}
}
ich nur sehr verwirrt bin, was los ist und warum funktioniert es nicht.
Versuchen Sie, den Wert von 'faktorial (int)' für steigende Werte von 'a' zu drucken. Du könntest eine Überraschung bekommen. –
(Übrigens ist 'factorial (0)' falsch). –
Was meinst du mit "funktioniert nicht richtig"? Könntest du etwas genauer sein? – Chris