/* ********************************************************************* * Quelle: Polynom.java * -------------------- * Es werden POLYNOME erzeugt und folgende Methoden zur Verfuegung gestellt: * * * Degree : Rueckgabe des Grads * Display : Ausgabe des Polynoms auf dem Bildschirm * * * ---------------------------------------------------------------------- * Autorin: Sigrid Wehner * Stand: 9.6.2002 ********************************************************************* */ package SWjtools.mathele; /** Diese Klasse stellt Polynome zur Verfuegung * @author Sigrid Wehner * @version 8.6.2002 */ public class Polynom { int Deg; // Grad double Coeff[]; // Koeffizienten // Default-Konstruktor /** Erzeugt ein Pseudo-Nullpolynom * (das es mathematisch eigentlich gar nicht gibt!) * vom Grad 0 mit dem einzigen Koeffizienten 0 . */ public Polynom () { this.Deg=0; this.Coeff = new double[1]; this.Coeff[0]=0.0; } // Konstruktor mit Grad, Koeffizienten /** Erzeugt ein Polynom. * @param d Grad * @param c Array der Koeffizienten (Anzahl ist d+1) */ public Polynom(int d, double[] c) { this.Deg=d; this.Coeff=c; } /** Gibt das Polynom auf dem Bildschirm aus. */ public void Display() { System.out.print("Polynom = "); if (Deg < 0) System.out.println("ERROR: Grad negativ!"); if (Deg == 0) System.out.println(Coeff[0]); if (Deg > 0) { System.out.print(Coeff[Deg]); if (Deg >1) { System.out.print("*x^"); System.out.print(Deg);} else System.out.print("x"); for (int i=Deg-1; i>=0; i--) { if(Coeff[i]>0) System.out.print(" +"); if(Coeff[i]<0) System.out.print(" "); if (Coeff[i]!= 0) { System.out.print(Coeff[i]); if (i>1) { System.out.print("*x^"); System.out.print(i);} else if (i==1) System.out.print("x"); } } System.out.println(); } } /** Liefert den Grad des Polynoms. * @return Grad des Polynoms */ public int Degree() { return this.Deg; } /** Berechnet den Wert des Polynoms an der Stelle x nach dem * Horner Schema. * @param x Stelle, fuer die Polynom zu berechnen ist * @return Wert des Polynoms an der Stelle x */ public double Pwert(double x) { double w=0.0; for (int i = this.Deg; i>=0; i--) { w = w*x + this.Coeff[i]; } return w; } }