// Wurzel.java MM 2012 import Tools.IO.*; // Eingaben /** * Wurzelfunktion f(x) = k. Wurzel( x), * x >=0 aus R, k > 1 aus N. */ public class Wurzel extends DifferenzierbareFunktion { /* ------------------------------------------------- */ // Attribute /** * Wurzelexponente k. */ private int k = 2; /* ------------------------------------------------- */ // set-Methoden /** * Setzt k fuer k. Wurzel( x). * @param exponent Wurzelexponent k */ public void setWurzel( int exponent) { k = exponent; } /** * Wurzelexponenteingabe ueber Konsole. */ public void konsolenEingabe() { // Eingabe der Geradenkoeffizienten System.out.println( "Wurzeleingabe"); int k = 2; do { k = IOTools.readInteger ( " Wurzelexponent k ( k > 1) = "); } while( k < 2); // Setzen des Wurzelexponenten setWurzel( k); } /* ------------------------------------------------- */ // service-Methode /** * Berechnen eines Funktionswertes * als Nullstelle der Funktion x ^ k - arg. * @param arg Argument * @return f( arg) */ public double wert( double arg) { if( arg == 0) return 0; double[] koeff = new double[ k + 1]; koeff[ 0] = -arg; koeff[ k] = 1; for( int i = 1; i < k; i++) koeff[ i] = 0; // Polynom Polynom polynom = new Polynom(); polynom.setPolynom( koeff); // Nullstelleniteration nach Newton Iteration it = new Iteration(); return it.newton( polynom, arg, 1e-15, 50); } /** * Berechnen einer ersten Ableitung * f'(x) = ( k. Wurzel aus x) / ( x * k). * @param arg Argument * @return Wert der ersten Ableitung an der Stelle arg */ public double wertErsteAbleitung( double arg) { if( arg == 0) return 0; return wert( arg) / ( arg * k); } /* ------------------------------------------------- */ // toString-Methode /** * Darstellen der Funktion. * @return Funktion in linearer Schreibweise */ public String toString() { return "" + k + ". Wurzel( x)"; } }