kleines bugfix

This commit is contained in:
Armin Wolf 2017-07-27 16:59:23 +02:00
parent 71a853c781
commit e2a684a9ce
7 changed files with 24 additions and 11 deletions

View File

@ -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
1 0 2 3
2 1 4 4
3 2 5 2
4 3 6 4
5 4 7 2
6 5 7 5
7 6 8 7
8 7 9 5
9 8 11 6

View File

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

View File

@ -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());

View File

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

View File

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

View File

@ -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) {

View File

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