Moin,
ich habe folgendes Problem:
Gegeben: 100 Punkte, die auf einer geschlossenen runden Kontour liegen.
Gesucht: eine implizite Funktion f(x,y)=c so dass
sie durch möglichst viele Punkte geht bzw diese Punkte im MSE Sinne approximiert.
Ich habe Matlab zur Verfügung. Gibt es da eine passende Funktion?
Danke!
Christoph
Moin,
Hi,
ich habe folgendes Problem:
Gegeben: 100 Punkte, die auf einer geschlossenen runden
Kontour liegen.
Gesucht: eine implizite Funktion f(x,y)=c so dass
sie durch möglichst viele Punkte geht bzw diese Punkte im MSE
Sinne approximiert.
Also ein Kreis.
Ich habe Matlab zur Verfügung. Gibt es da eine passende
Funktion?
Eine Funktion im Sinne von f(x,y)=blablubb wird Dir MATLAB nicht berechnen koennen, es ist ja eher fuer numerische Dinge gedacht. Was ich numerisch tun wuerde ist (das erste was mir eingefallen ist) Folgendes:
Die Geschichte zuallererst gescheit parametrisieren. Den Mittelpunkt der Punktemenge berechnen und die Abstaende der Punkte vom Mittelpunkt. Dann haette man 100 Wertepaare (t_i, f_i) - also Knoten mit dem passenden Abstand. Dann koennte man ueberlegen, wie man durch diese Knoten eine Ausgleichsgerade mit der Steigung 0 legt (Stichwort: lineares Ausgleichsproblem). Wobei, da die Steigung ja bekannt ist, reicht es, wenn man die y-Abstaende minimiert. Nach meinem Verstaendnis - kann mich auf die Schnelle aber auch irren - ergibt der Abstand dieser Geraden von der x-Achse den gesuchten Kreisradius. Macht aber IMHO nur Sinn, wenn die Knoten aequidistant sind. Damit wuerdest Du in MATLAB einen passenden Kreis zeichnen koennen, aber explizit eine Funktion angeben kann MATLAB IMHO nicht. Aber mit Kenntnis des Radiuses und des Mittelpunkts sollte sich f(x, y) = blubb basteln lassen.
Danke!
Christoph
HTH
Paul
Danke für die Antwort!
Eigentlich ist das Problem viel komplexer- das Kontur ist nicht ein Kreis, sondern ein menschliches Gesicht. (Ich arbeite an einem Mustererkennung-Problem).
Hoffe, ist nicht zu komplex für dieses Forum:smile:
Hi,
Eigentlich ist das Problem viel komplexer- das Kontur ist
nicht ein Kreis, sondern ein menschliches Gesicht. (Ich
arbeite an einem Mustererkennung-Problem).
Mh, meines Erachtens kriegst Du dafuer keine implizite Funktion der Form f(x,y)=c raus. Meine recht losen Gedanken dazu:
- man braucht irgendwie den Mittelpunkt M des Gebiets
- man koennte die Polarkoordinaten der Punkte hernehmen, den Abstand zu M gegen den Winkel \phi als Wertepaare betrachten.
- man koennte dann interpolieren (Splines? Polynome scheiden wohl aus)
- hinreichend viele diskrete Punkte der Interpolation berechnen und die Koordinaten zuruecktransformieren und sie plotten lassen.
So kriegt man zumindest numerisch Punkte zwischen den gegebenen Stuetzstellen raus…
Hoffe, ist nicht zu komplex für dieses Forum:smile:
Analytisch seh ich da kein Land zur Zeit, numerisch koennte mans versuchen…
Gruss
Paul