List of usage examples for org.apache.commons.math3.analysis.solvers BisectionSolver BisectionSolver
public BisectionSolver(double relativeAccuracy, double absoluteAccuracy)
From source file:de.thkwalter.et.schlupfbezifferung.SchlupfbezifferungController.java
/** * Dieser Konstruktor initilisiert den Lsungsalgorithmus zur Bestimmung des Steigungswinkels der Schlupfgeraden *///from w ww.j av a 2s. co m public SchlupfbezifferungController() { // Der Lsungsalgorithmus zur Bestimmung des Steigungswinkels der Schlupfgeraden wird erzeugt. this.bisectionSolver = new BisectionSolver( SchlupfbezifferungController.ABBRUCHKRITERIUM_RELATIVE_GENAUIGKEIT_SCHALTWINKEL, SchlupfbezifferungController.ABBRUCHKRITERIUM_ABSOLUTE_GENAUIGKEIT_SCHALTWINKEL); }
From source file:de.thkwalter.et.pulsmuster.SchaltwinkelRaumzeigermodulation.java
/** * Der Konstruktor berechnet die Schaltwinkel (im Bogenma) bei Raumzeigermodulation. * /*from w w w .j av a 2s . com*/ * @param pulszahl Die Pulszahl */ public SchaltwinkelRaumzeigermodulation(int pulszahl) { // Die Anzahl der Schnittpunkte (Schaltwinkel) wird berechnet. Pro Puls ergeben sich zwei Schnittpunkte // (Schaltwinkel), jeweils ein Schnittpunkt fr den Einschalt- und fr den Ausschaltvorgang. int nSchnittpunkte = 2 * pulszahl; // Die Variablen fr die obere und untere Grenze des Suchintervalls werden deklatiert. double min = Double.NaN; double max = Double.NaN; BisectionSolver bisectionSolver = new BisectionSolver( SchaltwinkelRaumzeigermodulation.ABBRUCHKRITERIUM_RELATIVE_GENAUIGKEIT_SCHALTWINKEL, SchaltwinkelRaumzeigermodulation.ABBRUCHKRITERIUM_ABSOLUTE_GENAUIGKEIT_SCHALTWINKEL); // Das Feld fr die Schaltwinkel (im Bogenma) wird erzeugt. this.schaltwinkel = new double[nSchnittpunkte]; // Das Differnezsignal wird deklariert. Differenzsignal differenzsignal = null; // In der folgenden Schleife werden die Schnittpunkte (Schaltwinkel) berechnet. for (int i = 0; i < nSchnittpunkte; i++) { // Die obere und untere Grenze des Suchintervalls werden bestimmt. Das Suchintervall umfasst je eine halbe Periode // des Sgezahns. min = i * Math.PI / pulszahl; max = (i + 1) * Math.PI / pulszahl; // Das Differenzsignal fr diese Flanke wird erzeugt. differenzsignal = new Differenzsignal(min, 2.0 * Math.pow(-1, i), max, 2.0 * Math.pow(-1, i + 1)); // Der Schaltwinkel wird berechnet und gespeichert. this.schaltwinkel[i] = bisectionSolver.solve(SchaltwinkelRaumzeigermodulation.MAX_ANZAHL_ITERATIONEN, differenzsignal, min, max); } }