Example usage for org.apache.commons.math3.analysis.solvers BisectionSolver BisectionSolver

List of usage examples for org.apache.commons.math3.analysis.solvers BisectionSolver BisectionSolver

Introduction

In this page you can find the example usage for org.apache.commons.math3.analysis.solvers BisectionSolver BisectionSolver.

Prototype

public BisectionSolver(double relativeAccuracy, double absoluteAccuracy) 

Source Link

Document

Construct a solver.

Usage

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);
    }
}