/** * <u>Funktion zur Berechnung mit dem Exponenten 'expon' >= 1</u><br> * * @param comp Komplexe Zahl * @param expon Exponenten, mit dem die komplexe Zahl exponiert ist. * @return Rückgabe von neuem Objekt mit Ergebnis aus Exponierung */ public static Complex pow(Complex comp, int expon) { double abs, arg; // interne Variablen fuer Betrag und Phase Complex swap = null; if (expon >= 1) { abs = Math.pow(comp.getAbs(), (double) expon); // Betrag exponieren arg = comp.getArg() * (double) expon; // Winkel mit Exponenten multiplizieren swap = new Complex(abs, arg, true); } else System.out.println("! Exponent kleiner 1 !"); return swap; }
/** * <u>Berechnen der n-ten Wurzel der komplexen Zahl</u><br> * * @param comp Komplexe Zahl * @param expon Wurzelexponent * @return Rückgabe eines Vector mit n Lösungen */ public static Complex sqrt(Complex comp, int expon) { double abs, arg; // interne Variablen fuer Betrag und Phase double[] sqrtArgArray; // double-Array, mit n-Winkeln aus Wurzelberechnung Complex swap = null; if (expon >= 1) { sqrtArgArray = new double[expon]; // Anlegen des n double-Werte-Arrays für die n-Lösungen abs = Math.pow(comp.getAbs(), 1d / (double) expon); // n-te Wurzel aus Betrag ziehen for (int i = 0; i <= expon - 1; i++) { // Anlegen der n double-Werte fuer die n-Loesungen sqrtArgArray[i] = comp.getArg() / (double) expon + ((double) i * 2 * Math.PI) / (double) expon; } arg = sqrtArgArray[0]; // "Hauptwinkel" bekommt ersten Wert aus double-Werte-Array swap = new Complex(abs, arg, true); swap.setSqrtArgArray(sqrtArgArray); } else System.out.println("! Wurzelexponent kleiner 1 !"); return swap; }
/** * <u>Berechnen des Logarithmus zur Basis 10 komplexen Zahl</u><br> * * @param comp Komplexe Zahl * @return Rückgabe eines Objektes vom Typ Complex mit Lösung aus log(<u>z</u>) */ public static Complex log(Complex comp) { return new Complex(Math.log10(comp.getAbs()), Math.log10(Math.exp(comp.getArg()))); }
/** * <u>Berechnen des natürlichen Logarithmus der komplexen Zahl</u><br> * * @param comp Komplexe Zahl * @return Rückgabe eines Objektes vom Typ Complex mit Lösung aus ln(<u>z</u>) */ public static Complex ln(Complex comp) { return new Complex(Math.log(comp.getAbs()), comp.getArg()); }
/** * <u>Division zweier komplexer zahlen</u><br> * * @param comp1 1. Komplexe Zahl * @param comp2 2. Komplexe Zahl * @return Rückgabe von neuem Objekt mit Ergebnis aus Division */ public static Complex div(Complex comp1, Complex comp2) { return new Complex(comp1.getAbs() / comp2.getAbs(), comp1.getArg() - comp2.getArg(), true); }
/** * <u>Multiplikation zweier komplexer zahlen</u><br> * * @param comp1 1. Komplexe Zahl * @param comp2 2. Komplexe Zahl * @return Rückgabe von neuem Objekt mit Ergebnis aus Multiplikation */ public static Complex mul(Complex comp1, Complex comp2) { return new Complex(comp1.getAbs() * comp2.getAbs(), comp1.getArg() + comp2.getArg(), true); }
/** * <u>Division zweier komplexer Zahlen</u><br> * * @param comp Komplexe Zahl * @return Rückgabe von neuem Objekt mit Ergebnis aus Division */ public Complex div(Complex comp) { return new Complex(this.abs / comp.getAbs(), this.arg - comp.getArg(), true); }
/** * <u>Multiplikation zweier komplexer Zahlen</u><br> * * @param comp Komplexe Zahl * @return Rückgabe von neuem Objekt mit Ergebnis aus Multiplikation */ public Complex mul(Complex comp) { return new Complex(this.abs * comp.getAbs(), this.arg + comp.getArg(), true); }