10.02.2014 Aufrufe

Gruppenaufgaben

Gruppenaufgaben

Gruppenaufgaben

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Informatik Praktikum <strong>Gruppenaufgaben</strong> 22/26<br />

Aufgabe 5.25 Zweidimensionale lineare Approximation<br />

Schreiben Sie ein Programm linprox.exe, das für gegebene Punkte eine Gerade der Form<br />

Y = Ax + B errechnet, die mit möglichst geringer Abweichung durch (alle) Punkte geht. Die Punkte<br />

sind in einer Text- oder Binärdatei gegeben und von dort einzulesen. Linprox.exe soll dann iterativ<br />

die beste Kombination von A und B bestimmen.<br />

A<br />

Datei: ideal.txt<br />

4<br />

0.00 3.00<br />

2.00 4.42<br />

2.70 5.00<br />

7.00 8.00<br />

Datei: real.txt<br />

5<br />

0.53 2.11<br />

1.12 3.48<br />

1.96 4.55<br />

2.30 5.69<br />

4.00 5.71<br />

Dazu sollen die quadratischen Abweichungen e i an den einzelnen Punkten P i mit<br />

e i = ( P yi – Y(P xi ) )² berechnet und zur Gesamtabweichung E = e 1 +e 2 +e 3 +...e n addiert werden.<br />

Dann sollen A und B geändert und die Abweichungen neu berechnet werden. Dieser Vorgang wird<br />

oft wiederholt und die beste Gerade (mit dem geringsten Fehler E) ausgegeben (Iteration).<br />

Überlegen Sie sich einen Algorithmus zum Auffinden der Startwerte für A und B sowie eine<br />

geeignete Abbruchbedingung für die Iteration. Es sollen bis zu 100 Punkte verarbeitet werden<br />

können. Das Programm soll aus mehreren Funktionen aufgebaut sein und Verbesserungen für die<br />

Ausführungszeit enthalten. Fangen Sie alle denkbaren Fehlerquellen ab!<br />

Zusatzaufgabe: Implementieren Sie einen Filter für Ausreißer, der Punkte aus der Berechnung<br />

ausschließt, wenn ihr Fehler größer ist, als die dreifache Standardabweichung (Schätzwert).

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!