WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Funktionsgleichung von Elipse herrausfinden

 

kingkamali

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.06.2009, 19:51     Titel: Funktionsgleichung von Elipse herrausfinden
  Antworten mit Zitat      
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 Sad

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.... ?

ich hoffe ihr könnt mir weiter helfen danke Smile


Bane
Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 09.06.09
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 09.06.2009, 21:56     Titel:
  Antworten mit Zitat      
Wenn die Symmetrieachsen parallel zu den Koordinatenachsen liegen, dann wüsste ich wie ich's machen würde:
Code:
a = (max(x)-min(x))/2;  % große Halbachse
b = (max(y)-min(y))/2;    % kleine Halbachse
% Mittelpunkt
x0 = min(x)+a;
y0 = min(y)+b;


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.

Gruß, Phil
Private Nachricht senden Benutzer-Profile anzeigen
 
Bane
Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 09.06.09
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 10.06.2009, 10:03     Titel: Lösung des nichtlinearen Gleichungssystems
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
kingkamali

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.06.2009, 12:40     Titel:
  Antworten mit Zitat      
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?

hier mal die Daten

Code:


data =

   50.1000   50.0000
   51.0000   47.0000
   51.3000   55.0000
   52.0000   55.5000
   54.0000   42.0000
   55.0000   58.0000
   58.0000   62.0000
   58.0000   43.0000
   62.0000   62.0000
   62.0000   40.0000
   66.0000   59.0000
   66.0000   40.0000
   70.0000   59.0000
   70.0000   43.0000
   73.0000   55.0000
   72.0000   44.0000
   74.0000   50.0000
 


danke
 
Bane
Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 09.06.09
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 11.06.2009, 12:58     Titel:
  Antworten mit Zitat      
Ich hab Deine Pkt mal geplottet und sie stellen keine Ellipse dar ?!
Private Nachricht senden Benutzer-Profile anzeigen
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 11.06.2009, 13:43     Titel:
  Antworten mit Zitat      
Dann lass dir mal die einzelnen Punkten darstellen, Bane. Hab schon schlimmere Ellipsen gesehen. Wink
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:

Code:
A=[50.1000   50.0000
   51.0000   47.0000
   51.3000   55.0000
   52.0000   55.5000
   54.0000   42.0000
   55.0000   58.0000
   58.0000   62.0000
   58.0000   43.0000
   62.0000   62.0000
   62.0000   40.0000
   66.0000   59.0000
   66.0000   40.0000
   70.0000   59.0000
   70.0000   43.0000
   73.0000   55.0000
   72.0000   44.0000
   74.0000   50.0000
];

p=EllipseFitbyTaubin(A);
figure(1)
ezplot([num2str(p(1)) '.*x.^2 + ' num2str(p(2)) '.*x.*y +' num2str(p(3))...
    '*y.^2 +' num2str(p(4)) '.*x +' num2str(p(5)) '.*y +' num2str(p(6))  '= 0'],...
    [45,80,35,70])
hold on
plot(A(:,1),A(:,2),'b.')
 


ellipse.jpg
 Beschreibung:

Download
 Dateiname:  ellipse.jpg
 Dateigröße:  18.77 KB
 Heruntergeladen:  582 mal

_________________

>> why
The computer did it.

Zuletzt bearbeitet von Maddy am 11.06.2009, 13:46, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
kingkamali

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.06.2009, 13:45     Titel:
  Antworten mit Zitat      
wenn du es in Excel plottest und eine Ellipse drüber legst, dann wirst du es sehen!

Es ist nicht exakt eine Ellipse aber kann so angenähert werden!

habe was angehängt!

elliptischer_Fit.xls
 Beschreibung:

Download
 Dateiname:  elliptischer_Fit.xls
 Dateigröße:  23.5 KB
 Heruntergeladen:  493 mal
 
kingkamali

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.06.2009, 13:46     Titel:
  Antworten mit Zitat      
An Maddy, wie komme ich jetzt auf die Funktionsgleichung ?
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 11.06.2009, 13:58     Titel:
  Antworten mit Zitat      
Die Funktionsgleichung ist bei diesem Algorithmus implizit gegeben, d.h. die Elemente des Rückgabevektors des Fits entsprechen den Parametern der Funktion:
Code:

ax^2 + bxy + cy^2 +dx + ey + f = 0
 

_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
kingkamali

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.06.2009, 14:57     Titel:
  Antworten mit Zitat      
an Bane,

mich würde es interessieren wie es mit deinem Weg weiter geht ?

danke
 
Bane
Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 09.06.09
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 11.06.2009, 16:16     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.