Hallo,
ich muss folgende Funktion (innerhalb einer größeren Aufgabe) implementieren : F(x) = x^n - a.
Ich hab die dann einfach so implementiert. Power ist einfach die Potenzfunktion statt Math.pow().
Das hier ist der Test dazu:
Bei den eingesetzten Werten (1403.8448884058157, 5, 1373.8992853720163) kommt z.B. bei mir 5.452499382183306E15 raus. Es soll aber 1969406.5714177652 rauskommen. Was mache ich falsch?
ich muss folgende Funktion (innerhalb einer größeren Aufgabe) implementieren : F(x) = x^n - a.
Java:
public static double power(double x, int n) {
double sol = x;
for (int i = 1; i < n; i++) {
sol = sol * x;
}
return sol;
}
public static double function(double x, int n, double a) {
return (power(x,n)) - a;
}
Das hier ist der Test dazu:
Java:
@Test(timeout = 666)
public void pubTest_function() {
for (int pass = 0; pass < 42; pass++) {
double x = 666.0815 + RND.nextDouble() * 4711;
int n = 2 + RND.nextInt(42);
double a = 666.0815 + RND.nextDouble() * 4711;
double other = NewtonIteration.derivedFunction(x, n, a);
double actual = NewtonIteration.function(x, n, a);
assertEquals(NewtonIterationPublicTest.EX_function + "(" + x + ", " + n + ", " + a + ")", other * x / n - a, actual, (other * x / n - a) * 1e-12);
}
double actual = NewtonIteration.function(0.815d, 42, -0.665814382223034268d);
assertEquals(NewtonIterationPublicTest.EX_function + "(0.815d, 42, -0.665814382223034268d)", 0.666d, actual, 1e-12);
Bei den eingesetzten Werten (1403.8448884058157, 5, 1373.8992853720163) kommt z.B. bei mir 5.452499382183306E15 raus. Es soll aber 1969406.5714177652 rauskommen. Was mache ich falsch?