kleines bugfix
This commit is contained in:
parent
71a853c781
commit
e2a684a9ce
|
@ -0,0 +1,9 @@
|
||||||
|
0,2,3
|
||||||
|
1,4,4
|
||||||
|
2,5,2
|
||||||
|
3,6,4
|
||||||
|
4,7,2
|
||||||
|
5,7,5
|
||||||
|
6,8,7
|
||||||
|
7,9,5
|
||||||
|
8,11,6
|
|
|
@ -353,8 +353,8 @@ public class LeastMedianOfSquaresEstimator extends Observable implements Algorit
|
||||||
public void getResult() {
|
public void getResult() {
|
||||||
if (presenter != null) {
|
if (presenter != null) {
|
||||||
setChanged();
|
setChanged();
|
||||||
double m = (getSigmaMin().getX2() + getSigmaMin().getX1()) * -0.5;
|
double m = (getSigmaMin().getX2() + getSigmaMin().getX1()) * 0.5;
|
||||||
double b = (getSigmaMin().getY2() + getSigmaMin().getY1()) * 0.5;
|
double b = (getSigmaMin().getY2() + getSigmaMin().getY1()) * -0.5;
|
||||||
String[] result = {"lms", m+"", b+""};
|
String[] result = {"lms", m+"", b+""};
|
||||||
notifyObservers(result);
|
notifyObservers(result);
|
||||||
}
|
}
|
||||||
|
|
|
@ -267,8 +267,8 @@ public class RepeatedMedianEstimator extends Observable implements Algorithm {
|
||||||
public void getResult() {
|
public void getResult() {
|
||||||
if (presenter != null) {
|
if (presenter != null) {
|
||||||
setChanged();
|
setChanged();
|
||||||
double m = thetaLow * (-1);
|
double m = thetaLow;
|
||||||
double b = (
|
double b = (-1)*(
|
||||||
(linesInCenterSlab.get(0).getM() * (thetaLow)) + linesInCenterSlab.get(0)
|
(linesInCenterSlab.get(0).getM() * (thetaLow)) + linesInCenterSlab.get(0)
|
||||||
.getB());
|
.getB());
|
||||||
|
|
||||||
|
|
|
@ -244,8 +244,7 @@ public class TheilSenEstimator extends Observable implements Algorithm {
|
||||||
m = resultSt.get(((size + 1) / 2) - 1).getX();
|
m = resultSt.get(((size + 1) / 2) - 1).getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
b = y - (x * m);
|
b = (x * m) - y;
|
||||||
m *= -1;
|
|
||||||
|
|
||||||
String[] result = new String[]{"ts", m + "", b + ""};
|
String[] result = new String[]{"ts", m + "", b + ""};
|
||||||
notifyObservers(result);
|
notifyObservers(result);
|
||||||
|
|
|
@ -54,7 +54,7 @@ public class DataImporter extends Observable{
|
||||||
for(String[] nextLine : lines) {
|
for(String[] nextLine : lines) {
|
||||||
// nextLine[] is an array of values from the line
|
// nextLine[] is an array of values from the line
|
||||||
Double x = Double.parseDouble(nextLine[1]);
|
Double x = Double.parseDouble(nextLine[1]);
|
||||||
Double y = Double.parseDouble(nextLine[2]);
|
Double y = Double.parseDouble(nextLine[2]) * (-1);
|
||||||
Line line = new Line(x,y);
|
Line line = new Line(x,y);
|
||||||
line.setId(counter+"");
|
line.setId(counter+"");
|
||||||
this.presenter.getModel().addLine(line);
|
this.presenter.getModel().addLine(line);
|
||||||
|
|
|
@ -132,7 +132,7 @@ public class IntersectionCounter {
|
||||||
* @param a Eingabefeld mit den Elementen die überprüft werden sollen.
|
* @param a Eingabefeld mit den Elementen die überprüft werden sollen.
|
||||||
* @param start Startpunkt des Eingabefeldes.
|
* @param start Startpunkt des Eingabefeldes.
|
||||||
* @param end Endpunkt des Eingabefeldes.
|
* @param end Endpunkt des Eingabefeldes.
|
||||||
* @param aux Groundtruth Ordnung um die Anzahl der Inversionen zu bestimmen.
|
* @param aux Temporäres Array das beim Mergen eine Kopie des original Arrays ist.
|
||||||
* @return Anzahl der inversionen zwischen a und aux.
|
* @return Anzahl der inversionen zwischen a und aux.
|
||||||
*/
|
*/
|
||||||
public int countInversions(List<Integer> a, int start, int end, List<Integer> aux) {
|
public int countInversions(List<Integer> a, int start, int end, List<Integer> aux) {
|
||||||
|
@ -150,11 +150,16 @@ public class IntersectionCounter {
|
||||||
int left = start;
|
int left = start;
|
||||||
int right = mid + 1;
|
int right = mid + 1;
|
||||||
int index = start;
|
int index = start;
|
||||||
|
//hier beginnt das merging
|
||||||
|
//iteriere über die Teillisten
|
||||||
|
//Two-way Merge - Knuth Vol 3 The Art of Computer Programming -
|
||||||
while (left <= mid && right <= end) {
|
while (left <= mid && right <= end) {
|
||||||
|
//wenn die linke Teilliste das kleinere Element besitzt kopiere
|
||||||
|
//das Element in das neue Array
|
||||||
if (aux.get(left) < aux.get(right)) {
|
if (aux.get(left) < aux.get(right)) {
|
||||||
a.set(index++, aux.get(left++));
|
a.set(index++, aux.get(left++));
|
||||||
} else {
|
} else {
|
||||||
|
//merke die inversionspaare
|
||||||
for (int i = left; i <= mid; i++) {
|
for (int i = left; i <= mid; i++) {
|
||||||
// System.out.println(aux.get(i)+" -- "+ aux.get(right));
|
// System.out.println(aux.get(i)+" -- "+ aux.get(right));
|
||||||
inversions.add(new Pair(aux.get(i), aux.get(right)));
|
inversions.add(new Pair(aux.get(i), aux.get(right)));
|
||||||
|
@ -227,7 +232,7 @@ public class IntersectionCounter {
|
||||||
|
|
||||||
for (int i = 0; i < inversions.size(); i++) {
|
for (int i = 0; i < inversions.size(); i++) {
|
||||||
result.add(new Pair(dictionaryBACK.get(inversions.get(i).getP1()),
|
result.add(new Pair(dictionaryBACK.get(inversions.get(i).getP1()),
|
||||||
dictionaryBACK.get(inversions.get(i).getP2())));
|
dictionaryBACK.get(inversions.get(i).getP2())));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Pair p : result) {
|
for (Pair p : result) {
|
||||||
|
|
|
@ -113,7 +113,7 @@ public class PlotDialog extends JPanel {
|
||||||
ArrayList<Double> coordinates = new ArrayList<>();
|
ArrayList<Double> coordinates = new ArrayList<>();
|
||||||
series = new XYSeries("points");
|
series = new XYSeries("points");
|
||||||
for (Line p : points) {
|
for (Line p : points) {
|
||||||
series.add(p.getM(), p.getB());
|
series.add(p.getM(), p.getB()* (-1));
|
||||||
coordinates.add(p.getM());
|
coordinates.add(p.getM());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue