Verfasst am: 16.09.2015, 13:47
Titel: Quadratische Gleichung mit fsolve und variablen Beob.
Hallo zusammen,
ich möchte für meine Gleichung
die Parameter XM, YM und ZM herausbekommen. X Y Z sind jeweils Koordinaten eines Punktes, die Parameter a, b, c nehme ich als gegeben an.
Wenn ich dies für drei explizit ausgewählte Punkte mache, kann ich das ganze mit fsolve lösen, einmal die Funktion
Code:
function F = myfun(T) % fixe Parameter
a = 208.621649684454;
b = 19.1219313756708;
c = 1.17691772020532;
% Beobachtungen
x = [2.5346; 3.3267; 3.8866];
y = [20.5668, 21.4281, 18.9092];
z = [14.0635; 14.1343; 12.3331];
Was ich jetzt allerdings tun möchte, ist das 'Durchwechseln' meiner Punkte. Wenn die 3 Koordinatentupel oben von bspw. Punkt A, B, C stammen, möchte ich im nächsten Schritt die Berechnung von XM,YM, ZM über Punkte C,D, E rechnen.
Kann mir jemand erläutern, wie ich dabei vorgehen kann?
indem du halt nicht abc benutzen sondern dann cde.. übergieb einfach die punkte mit welche du benutzen willst. wie man weitere parameter an funktionen übergiebt mithilfe anonymer funktionen findet sich in der dokumentation
grüße
_________________
indem du halt nicht abc benutzen sondern dann cde.. übergieb einfach die punkte mit welche du benutzen willst. wie man weitere parameter an funktionen übergiebt mithilfe anonymer funktionen findet sich in der dokumentation
grüße
Hi, danke schonmal für den Hinweis mit den anonymen Funktionen. Diesen Begriff kannte ich bisher nicht.
Ich verstehe allerdings die Dokumentation überhaupt nicht. Gerade weil ich ja 3 Koeffizienten mit je 3 Werten übergeben will, kann ich die die gegebenen Beispiele nicht auf mein Problem übertragen.
es ist für mich schwer nachzuvollzihen was nicht klappt wenn du deinen versuch nicht postest
bitte poste einfach den code.
ich finde die anleitung in http://de.mathworks.com/help/optim/.....ing-extra-parameters.html recht eindeutig aber vielleicht verstehe ich ja dein anliegen auch falsch. daurm einfach mal deinen versuch posten. dann versteht man das besser
grüße
_________________
Ich möchte also aus meiner Punktwolke (nx3) 3 zufällige Punkte ziehen, diese als Parameter in die myfun Funktion übergeben (dann hat jede der 3 Gleichungen X,Y,Z Werte eines der zufälligen Punkte) und dann soll mittels der Näherungswerte x0 die Parameter XM,YM,ZM der Gleichung berechnet werden.
Ist mein Anliegen soweit verständlich?
Mit dem von dir geposteten Link habe ich es aber glaube ich hinbekommen!
Aktuell spuckt er mir aber als Ergebnis von fsolve aus, dass er keine Werte finden kann. Gibt es da eine Möglichkeit, die Näherungswerte iterativ zu bestimmen? Also ergibt es Sinn, wenn er nach den 100.000 Durchläufen kein Ergebnis hat, das aktuelle x als Näherungswerte zu nehmen und nochmals das ganze zu starten?
Ich suche mit der Gleichung den Mittelpunkt (XM,YM,ZM) eines Ellipsoids - habe aber wirklich gar keine Ahnung, wie groß die Werte sein können (Ursprung kann zb. auch bei 100000|-5000000|-1000000 liegen.
Ich suche mit der Gleichung den Mittelpunkt (XM,YM,ZM) eines Ellipsoids -
um eine ellipse zu fitten giebt es schon dinge im FEX.
Zitat:
(Ursprung kann zb. auch bei 100000|-5000000|-1000000 liegen.
naja wenn deine punkte irgendwie im ellipsoid liegen sollen kann man ja abschätzen wo der mittelpunkt ist. warscheinlich nicht weiter als die abmessungen des ellipsoids.
falls deine punkte einfach irgendwo liegen woher willst du dann wissen das dein gleichungssystem überhaubt lösungen hat?
ich blick da noch nicht ganz durch.
_________________
Ich suche mit der Gleichung den Mittelpunkt (XM,YM,ZM) eines Ellipsoids -
um eine ellipse zu fitten giebt es schon dinge im FEX.
Zitat:
(Ursprung kann zb. auch bei 100000|-5000000|-1000000 liegen.
naja wenn deine punkte irgendwie im ellipsoid liegen sollen kann man ja abschätzen wo der mittelpunkt ist. warscheinlich nicht weiter als die abmessungen des ellipsoids.
falls deine punkte einfach irgendwo liegen woher willst du dann wissen das dein gleichungssystem überhaubt lösungen hat?
ich blick da noch nicht ganz durch.
Puh, das ganze Verfahren ist etwas komplexer bei mir. Ich habe jetzt bewusst nur ein paar Teilschritte erläutert, bei denen ich dachte, dass sie für die Problemlösung ausreichen. Ich benötige für eine Schätzung der Parameter meines Ellipsoids (a,b,c,Xm,Ym,Zm) in einem Gauß-Helmert-Modell Näherungswerte für die Initialisierung des Algorithmus. Für a,b,c habe ich die bereits auf anderem Wege bekommen.
wie gesagt. bist du sicher das dein gleichungsystem eine lösung hat?
Zitat:
Aktuell spuckt er mir aber als Ergebnis von fsolve aus, dass er keine Werte finden kann.
ist ja richtig wenn dein gleichungsystem keine lösung hat.
Ja. Ich habe für meine Punkte eine Klassifizierung der Quadrik vorgenommen, die mir ausspuckt, dass ein Ellipsoid dort hineinpasst. Allerdings scheint es mir, als ob ich nicht nur die drei Halbachsen und drei Translationen schätzen muss, sondern zusätzlich auch noch mindestens eine Drehung um eine der Koordinatenachsen.
wie gesagt. bist du sicher das dein gleichungsystem eine lösung hat?
Zitat:
Ja
Zitat:
Allerdings scheint es mir, als ob ich nicht nur die drei Halbachsen und drei Translationen schätzen muss, sondern zusätzlich auch noch mindestens eine Drehung um eine der Koordinatenachsen.
das passt nicht zusammen wenn du dienen ellipsoid noch drehen musst damit die punkte passen kann es vorher also punkte geben die die gleichung nicht erfüllen. die ausgabe von fsolve das er nichts findet ist also plausiebel.
ps. als startpunkt köntne man auch den mittelwert aller punkte nehmen da er ja wahrschienlich irgendwo in der mitte der punkte liegt wenn sie gleichmäßig verteilt sind.
_________________
wie gesagt. bist du sicher das dein gleichungsystem eine lösung hat?
Zitat:
Ja
Zitat:
Allerdings scheint es mir, als ob ich nicht nur die drei Halbachsen und drei Translationen schätzen muss, sondern zusätzlich auch noch mindestens eine Drehung um eine der Koordinatenachsen.
das passt nicht zusammen
touchè
Winkow hat Folgendes geschrieben:
wenn du dienen ellipsoid noch drehen musst damit die punkte passen kann es vorher also punkte geben die die gleichung nicht erfüllen. die ausgabe von fsolve das er nichts findet ist also plausiebel.
ps. als startpunkt köntne man auch den mittelwert aller punkte nehmen da er ja wahrschienlich irgendwo in der mitte der punkte liegt wenn sie gleichmäßig verteilt sind.
Die Punkte sind nicht gleichmäßig verteilt, ich habe eine gekrümmte Wand eines Bauwerks - diese Wand passt dann hinterher nur auf einen kleinen Ausschnitt des Ellipsoids.
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.