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

numerische oder analytische Ableitung

 

slinshady
Forum-Century

Forum-Century


Beiträge: 115
Anmeldedatum: 12.01.16
Wohnort: ---
Version: R2012b+
     Beitrag Verfasst am: 15.03.2016, 14:17     Titel: numerische oder analytische Ableitung
  Antworten mit Zitat      
Hallo liebe Forengemeinde,

erstmal ein kleines Bild zum Verständnis meines Problems:
http://www.bilder-upload.eu/show.php?file=edb74b-1458043953.jpg

auf dem Bild ist der rote Punkt zu sehen, der auf einer Kurve liegt. Außerdem die schwarze Kurve, welche ich als einen Spline gegeben habe.
Die grüne Linie ist der Normalenvektor des Splines im Break. (Aktuell der des blau umkreisten)

Meine Breaks ist der Wert der Streckenlänge an diesem Punkt, da ich eine geschlossene Strecke habe habe ich für x und y jeweils einen Spline, der von diesem abhängt.

Was ich nun möchte ist, den Normalenvektor finden, bei dessen Streckenwert der Normalenvektor der schwarzen Linie den roten Punkt durchläuft.
Denn ich benötige für diesen den Abstand des Schnittpunkts der grünen mit der schwarzen Linie und dem roten Punkt. Außerdem den Wert s an diesem Punkt.

Wie ihr in dem Bild seht kenne ich das Intervall des aktuellen Splineabschnitts und kann mir deshalb die Koeffizienten auslesen, um alle x und y Werte des Splineabschnitts bestimmen zu können.

spx, spy sind die Splines der schwarzen Linie
i der rote Punkt, indx(i) der break der Splines zugehörig zum roten Punkt, so dass der Normalenvektor des Abschnitts den Punkt durchkreuzt
Code:
Pmx = spx.coefs(indx(i),:);
Pmy = spx.coefs(indx(i),:);


nun hat der Splineabschnitt allerdings auch eine leichte Krümmung und ich möchte den exakten Punkt auf dem Spline bestimmen.

dazu dachte ich mir, löse ich die Geradengleichung, die sich ergibt, mit Hilfe von fsolve :

\begin{pmatrix} x_P \\ y_P  \end{pmatrix} + \lambda\cdot \begin{pmatrix} -\dot{y}_{schwarz} \\ \dot{x}_{schwarz}\end{pmatrix} =\begin{pmatrix} x_{schwarz}  \\ y_{schwarz}   \end{pmatrix}

dabei hängen alle Werte der Schwarzen Linie nur von s ab. Somit sind meine zwei unbekannten s und lambda.

die anonyme Funktion für fsolve sieht folgendermaßen aus:
(statt xm usw habe ich die entsprechenden Polynome dort stehen)
Code:

function F = schnitt( x,A , xpoly , ypoly ,s0)


ax=xpoly(4);
bx=xpoly(3);
cx=xpoly(2);
dx=xpoly(1);
ay=ypoly(4);
by=ypoly(3);
cy=ypoly(2);
dy=ypoly(1);

% xm=ax+bx*(x(2)-s0)+cx*(x(2)-s0)^2+dx*(x(2)-s0)^3;
% dxm=bx+2*cx*(x(2)-s0)+3*dx*(x(2)-s0)^2;
% ym=ay+by*(x(2)-s0)+cy*(x(2)-s0)^2+dy*(x(2)-s0)^3;
% dym=by+2*cy*(x(2)-s0)+3*dy*(x(2)-s0)^2;

F(1) = A(1,1)-x(1)*dym-xm;
F(2) = A(1,2)+x(1)*dxm-ym;
end
 


Zum einen ist mein Problem, dass mein lambda nicht korrekt berechnet wird und mein s oft nicht im Bereich zwischen dem aktuellen break und dem nächsten liegt.
Ich habe es auch schon versucht anders zu lösen. Ich habe meinen Spline abgeleitet mit Hilfe von ppder und anstatt das Polynom des kubischen Splines normal abzuleiten, wie in xm zu dxm zu sehen, und habe die Koeffizienten des abgeleiteten Splines eingesetzt. Diese sind beim Vergleich zwar ähnlich allerdings sind manche auch komplett anders.

Woran liegt das? Normal müsste dcx = 2*cx gelten oder?

Entschuldigt, dass es so viel Text ist, allerdings wollte ich es zum Verständnis komplett erläutern. Ich hoffe ich konnte es gut erklären.
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 15.03.2016, 16:08     Titel: Re: numerische oder analytische Ableitung
  Antworten mit Zitat      
Hallo slinshady,

Der gepostete Link ist tot. Bitte verwende den "Img" Button um Bilder im Forum zu posten.
Die Erklärungen sind wahrscheinlich besser verständlich, wenn man das Bild dazu betrachten kann.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
slinshady
Themenstarter

Forum-Century

Forum-Century


Beiträge: 115
Anmeldedatum: 12.01.16
Wohnort: ---
Version: R2012b+
     Beitrag Verfasst am: 15.03.2016, 19:33     Titel:
  Antworten mit Zitat      


hier nochmal so.

allerdings funktioniert der obige link bei mir o0
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 - 2025 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.