Wartość pierwiastka n-tego stopnia z liczby A można w łatwy, iteracyjny sposób wyznaczyć korzystając z wzoru:
Klasa Java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | public class Sqrt { double A; double n; int eps=1000; public Sqrt1(double A, double n) { this.A = A; this.n = n; } public Sqrt1(double A, double n, int eps) { this.A = A; this.n = n; this.eps=eps; } public double approx(){ double x0=A; int i=1; double tab[] = new double[eps]; tab[0]=x0; while(i<eps) { tab[i]=(1/(n))*(((n-1)*tab[i-1])+ (A/(Math.pow(tab[i-1], n-1)))); i++; } return tab[eps-1]; } } |
Użycie klasy jest proste:
1 2 | Sqrt a = new Sqrt(2, 3); System.out.print(a.approx()); |
Pole eps to ilość iteracji, czyli dokładności przybliżenia. 1000 daje poprawne wyniki.
Mateusz Mazurek