Verfasst am: 09.06.2009, 19:51
Titel: Funktionsgleichung von Elipse herrausfinden
Hallo Leute,
ich habe eine Excel Tabelle mit 20 X und Y Werten, die aufgetragen eine Ellipse Darstellen. Ich soll nun mit Hilfe von Matlab die Funktionsgleichung herausfinden
Ich weis nicht wie ich anfagen soll bzw welche Funktionen ich dafür nutzen kann.
Ich habe mir überlegt dass ich schon mal die Ellipse in eine Obere und untere Hälfte einteile aber weiter.... ?
Wenn Du zufällig die Extrempunkte gegeben haben solltest, dann war's das schon. Wenn nicht dann berechne den Fehler und erhöhe max(y) und max(x) und verkleinere min(y) und min(x) solange bis der Fehler ausreichend klein wird.
Verfasst am: 10.06.2009, 10:03
Titel: Lösung des nichtlinearen Gleichungssystems
Unter der Voraussetzung, dass die Symmetrieachsen parallel zu den Koordinatenschsen sind, hätte ich auch noch eine andere Lösung:
Du hast in der Elipsengleichung 4 Unbekannte, also setzt Du 4 Pkt. in die Gleichung ein und löst das nichtlineare Gleichungssystem z.B. mit dem Newton-Verfahren.
Hier ein Beispiel:
Code:
%----------------------------------------------------------------
% Solution of a non-linear system of equations
%----------------------------------------------------------------
% defining the system of equations
F1 = @(c,d)(4.72*sin(2*c) - 3.14*exp(d) - 0.495);
F2 = @(c,d)(3.61*cos(3*c) + sin(d) - 0.402);
% Determination of the Jacobian syms f1 f2 a b
f1 = 4.72*sin(2*a) - 3.14*exp(b) - 0.495;
f2 = 3.61*cos(3*a) + sin(b) - 0.402;
DF = jacobian([f1;f2],[a b]);
% output: % DF = % [ 236/25*cos(2*a), -157/50*exp(b)] % [ -1083/100*sin(3*a), cos(b)]
x = [1.5;-16]; % starting vector
n = 10; % number of iterations
mk = [2,5,10]; % compute inv. of Jacobian every mk-th time for k=1:3
m = mk(k);
for i=1:n
if(mod(i-1,m)==0)
M = [236/25*cos(2*x(1,i)), -157/50*exp(x(2,i));...
-1083/100*sin(3*x(1,i)), cos(x(2,i))];
end
x(:,i+1) = x(:,i) - M^(-1) * ... [F1(x(1,i),x(2,i));F2(x(1,i),x(2,i))];
end
xstar = x(1,n+1)% Fixed point
ystar = x(2,n+1)
F1(x(1,n+1),x(2,n+1))% check fixed point
F2(x(1,n+1),x(2,n+1)) end
In diesem Beispiel wird untersucht wie es sich auswirkt, wenn die Jakobi-Matrix nicht in jedem Iterationsschritt ausgewertet und invertiert wird. Obwohl letzteres, wie ich gerade sehe, trotzdem geschieht. Aber es geht in diesem Beispiel ja nicht um CPU-Time sondern um das Konvergenzverhalten.
Schönen Gruß, Phil
kingkamali
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 11.06.2009, 12:40
Titel:
an Bane,
ich verstehe nicht genau wie ich mit deinem Weg weiter voran gehen soll ?
Die Extrempunkte kann ich mir doch per max() ausgeben lassen oder nicht?
Dann lass dir mal die einzelnen Punkten darstellen, Bane. Hab schon schlimmere Ellipsen gesehen.
Ich würde vorschlagen mal im File Exchange nachzusehen, dort sind einige Fit-Routinen auch für Ellipsen zu finden:
http://www.mathworks.de/matlabcentral/fileexchange/22683
Der Fit an sich funktioniert eigentlich ziemlich gut:
Die Funktionsgleichung ist bei diesem Algorithmus implizit gegeben, d.h. die Elemente des Rückgabevektors des Fits entsprechen den Parametern der Funktion:
Ich bin ja von falschen Vorraussetzungen ausgegangen, nämlich dass Deine Punkte die Ellipse exakt beschreiben! Von daher führt mein Weg nirgendwo hin.
Man könnte sicherlich Mittelpunkt und großen- und kleinen Mittelpunktabstand wie oben beschrieben grob bestimmen. Und dann die Summe der Abstände deiner Punkte von der Ellipse durch Variation der Parameter minimieren. Aber ich wüsste auf Anhieb nicht wie man den kürzesten Abstand ermitteln könnte, außer numerisch.
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.