List of usage examples for org.apache.commons.math3.geometry.euclidean.twod Vector2D toString
@Override
public String toString()
From source file:de.thkwalter.et.ortskurve.Jakobimatrix2d.java
/** * Dieses Feld berechnet die Jakobi-Matrix der Modellgleichungen (der Kreisgleichungen). * /*w w w .j a v a 2s . c o m*/ * @param kreisparameter Die Parameterwerte der Kreisgleichungen. Das 0-te Element ist die x-Koordinate des * Kreismittelpunkts, das 1-te Element ist der Radius des Kreises. * * @return Die Jakobi-Matrix der Modellgleichungen. Der erste Index des Feldes luft ber die Gleichungen, der zweite * Index ber die Kreisparameter. * * @see org.apache.commons.math3.analysis.MultivariateMatrixFunction#value(double[]) */ @Override public double[][] value(double[] kreisparameter) { // Der Vektor fr den Mittelpunkt der Ortskurve wird erzeugt. Vector2D mittelpunkt = new Vector2D(kreisparameter[0], 0.0); // Das Feld fr die Jakobi-Matrix wird deklariert. double[][] jakobiMatrix = new double[this.messpunkte.length][2]; // In dieser Schleife wird die Jakobi-Matrix initialisiert. double abstandMesspunktMittelpunkt = Double.NaN; for (int i = 0; i < this.messpunkte.length; i++) { // Der Abstand des Messpunktes vom Mittelpunkt wird berechnet. abstandMesspunktMittelpunkt = this.messpunkte[i].distance(mittelpunkt); // Falls der Messpunkt mit dem Mittelpunkt identisch ist wird eine JSFAusnahme geworfen, da sonst das Inverse // des Abstands unendlich gro wird. Da der Vergleich zweier double-Wert jedoch sinnlos ist, wird der Abstand mit // einem Prozent des aktuell vermuteten Radius verglichen. if (abstandMesspunktMittelpunkt < 0.01 * kreisparameter[1]) { // Die Fehlermeldung fr den Entwickler wird erzeugt und protokolliert. String fehlermeldung = "Der Punkt " + this.messpunkte[i].toString() + " ist fast identisch mit dem " + " Mittelpunkt " + mittelpunkt.toString() + "!"; Jakobimatrix2d.logger.severe(fehlermeldung); // Die Ausnahme wird erzeugt und mit der Fehlermeldung fr den Benutzer initialisiert. String jsfMeldung = "Der Punkt " + this.messpunkte[i].toString() + " scheint in der Nhe des Kreismittelpunktes zu liegen! berprfen Sie bitte diesen Punkt."; ApplicationRuntimeException applicationRuntimeException = new ApplicationRuntimeException( jsfMeldung); throw applicationRuntimeException; } // Das Inverse des Abstands des Messpunkts vom Mittelpunkt wird berechnet. double inverserAbstandMesspunktMittelpunkt = 1.0 / abstandMesspunktMittelpunkt; // Die Elemente der Jakobi-Matrix werden initialisiert. jakobiMatrix[i][0] = inverserAbstandMesspunktMittelpunkt * (mittelpunkt.getX() - this.messpunkte[i].getX()); jakobiMatrix[i][1] = -1.0; } return jakobiMatrix; }
From source file:de.thkwalter.et.ortskurve.Jakobimatrix.java
/** * Dieses Feld berechnet die Jakobi-Matrix der Modellgleichungen (der Kreisgleichungen). * /*from www . j a va 2 s . co m*/ * @param kreisparameter Die Parameterwerte der Kreisgleichungen. Das 0-te Element ist die x-Koordinate des * Kreismittelpunkts, das 1-te Element ist die y-Koordinate des Kreismittelpunkts, das 2-te Element ist der * Radius des Kreises. * * @return Die Jakobi-Matrix der Modellgleichungen. Der erste Index des Feldes luft ber die Gleichungen, der zweite * Index ber die Kreisparameter. * * @see org.apache.commons.math3.analysis.MultivariateMatrixFunction#value(double[]) */ @Override public double[][] value(double[] kreisparameter) { // Der Vektor fr den Mittelpunkt der Ortskurve wird erzeugt. Vector2D mittelpunkt = new Vector2D(kreisparameter[0], kreisparameter[1]); // Das Feld fr die Jakobi-Matrix wird deklariert. double[][] jakobiMatrix = new double[this.messpunkte.length][3]; // In dieser Schleife wird die Jakobi-Matrix initialisiert. double abstandMesspunktMittelpunkt = Double.NaN; for (int i = 0; i < this.messpunkte.length; i++) { // Der Abstand des Messpunktes vom Mittelpunkt wird berechnet. abstandMesspunktMittelpunkt = this.messpunkte[i].distance(mittelpunkt); // Falls der Messpunkt mit dem Mittelpunkt identisch ist wird eine JSFAusnahme geworfen, da sonst das Inverse // des Abstands unendlich gro wird. Da der Vergleich zweier double-Wert jedoch sinnlos ist, wird der Abstand mit // einem Prozent des aktuell vermuteten Radius verglichen. if (abstandMesspunktMittelpunkt < 0.01 * kreisparameter[2]) { // Die Fehlermeldung fr den Entwickler wird erzeugt und protokolliert. String fehlermeldung = "Der Punkt " + this.messpunkte[i].toString() + " ist fast identisch mit dem " + " Mittelpunkt " + mittelpunkt.toString() + "!"; Jakobimatrix.logger.severe(fehlermeldung); // Die Ausnahme wird erzeugt und mit der Fehlermeldung fr den Benutzer initialisiert. String jsfMeldung = "Der Punkt " + this.messpunkte[i].toString() + " scheint in der Nhe des Kreismittelpunktes zu liegen! berprfen Sie bitte diesen Punkt."; ApplicationRuntimeException applicationRuntimeException = new ApplicationRuntimeException( jsfMeldung); throw applicationRuntimeException; } // Das Inverse des Abstands des Messpunkts vom Mittelpunkt wird berechnet. double inverserAbstandMesspunktMittelpunkt = 1.0 / abstandMesspunktMittelpunkt; // Die Elemente der Jakobi-Matrix werden initialisiert. jakobiMatrix[i][0] = inverserAbstandMesspunktMittelpunkt * (mittelpunkt.getX() - this.messpunkte[i].getX()); jakobiMatrix[i][1] = inverserAbstandMesspunktMittelpunkt * (mittelpunkt.getY() - this.messpunkte[i].getY()); jakobiMatrix[i][2] = -1.0; } return jakobiMatrix; }
From source file:org.evors.core.TestUtils.java
public static Matcher<Vector2D> vEquals(final Vector2D v, final double eps) { return new BaseMatcher<Vector2D>() { @Override//w w w .j av a2 s. c o m public boolean matches(Object item) { return ((Vector2D) item).distance(v) < eps; } @Override public void describeTo(Description description) { description.appendText("Vector does not equal expected vector " + v.toString()); } }; }
From source file:org.evors.core.TestUtils.java
public static void assertTwoVector2DsEqual(Vector2D v1, Vector2D v2, boolean assertion) { boolean result; if (assertion) result = v1.distance(v2) < 0.0001; else//from w w w . j av a 2 s. c om result = v1.distance(v2) > 0.0001; assertTrue(String.format("Expected: %s, actual: %s", v1.toString(), v2.toString()), result); }