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

PROBLEM: eine Kurve auf eine andere Kurve legen .... :?:

 

medivh1877
Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 25.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.10.2013, 17:34     Titel: PROBLEM: eine Kurve auf eine andere Kurve legen .... :?:
  Antworten mit Zitat      
Liebe Gemeinde,


folgendes Problem:

Meine Funktionen sehen folgendermaßen aus (alle Koeefizienten sind gegeben; x geht von 0 bis 100 in 1ner Schritten) :


Funktion 1:
y= a0*sqrt(x) +a1*(x) +a2*(x)^2 +a3*(x)^3 ;

Funktion 2:
y= b1*(x)+ b2*(x)^2+ b3*(x)^3 ;


Ich habe 100 x-Werte. Also bekomme ich auch je 100 y-Werte. Soweit so gut...


... jetzt möchte ich folgendes machen:

Ich will eine neue Funktion berechnen die aus den beiden Funktionen besteht. Jeder x-Wer hat ja zwei y-Werte ( da wir 2 Funktionen haben). Ich will die beiden Funktionen aber nicht einfach addieren.

Ich würde gerne folgendes machen. Zeichnerisch müsste das so gehen: Ich möchte den Gradienten für jeden Punkt der Funktion 1 haben. Die Länge der Gradienten sollen = dem y-Wert der 2. Funktion sein. Jetzt habe ich für jeden Punkt auf der Funktion 1 je einen Vektor mit der jeweiligen Länge und Richtung. Und um diese Vektoren möchte ich jeden Punkt auf der Funktion 1 verschieben. (Bild 3).
Dadurch entseht ja dann eine neue Funktion, genau die möchte ich haben.

Aber wie zum Teufel kriege ich das in Matlab hin, probier das schon ne Weile aber es klappt einfach nicht......... Shocked Evil or Very Mad Embarassed Crying or Very sad

Hoffe Ihr könnt mir weiterhelfen Idea

bsp.JPG
 Beschreibung:
Gesamtkurve

Download
 Dateiname:  bsp.JPG
 Dateigröße:  23.13 KB
 Heruntergeladen:  364 mal
bsp2.JPG
 Beschreibung:
Beispiel mit je 2 Punkten der beiden Funktionen

Download
 Dateiname:  bsp2.JPG
 Dateigröße:  13.96 KB
 Heruntergeladen:  335 mal
bsp3.JPG
 Beschreibung:
So soll das Ergebnis aussehen

Download
 Dateiname:  bsp3.JPG
 Dateigröße:  16.39 KB
 Heruntergeladen:  357 mal
Private Nachricht senden Benutzer-Profile anzeigen


Bibonaut
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 06.06.13
Wohnort: Berlin
Version: 2013a
     Beitrag Verfasst am: 28.10.2013, 19:11     Titel:
  Antworten mit Zitat      
Hallo,

ich würde es parametrisch und vektoriell machen. Hast du es so schon versucht?
Mit parametrisch meine ich x = x(t), y = y(x(t)). t ist also dein Index in deinen Arrays.

Die Steigung bekommst du ja recht einfach durch das einseitige oder zentrale Differenzenverfahren.

Dein Ortsvektor für den Punkt auf der Funktion y1 ist dann

<br />
\underline{a} = \begin{bmatrix} x(t) \\ y_{1}(x(t)) \end{bmatrix}
<br />
Mit deiner Steigung "q(t)" kannst du den Winkel alpha = atan(q(t)) berechnen, plus 90° rechnen und mit v = tan(alpha+90) deine neue Steigung berechnen.

(Alternativ kannst du dir die Senkrechte auch mit dem Skalarprodukt berechnen, da q(t) = dy/dx als Vektor geschrieben, skalarmultipliziert mit einem Vektord der senkrecht dazu steht, Null sein muss)

v kann mit v = dy_neu / dy_neu ebenfalls als Vektor geschrieben werden. Den musst du dann noch normieren und kannst ihn mit y2(x(t)) multiplizieren. Deine gesuchten Koordinaten sind dann der Punkt P

<br />
P = \underline{a}+y_{2}(x(t)) \cdot \underline{v}
<br />

Ich hoffe das hilft und ist richtig, was ich hier geschrieben habe... Wink

Grüße
Alex
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: 29.10.2013, 13:59     Titel: Re: PROBLEM: eine Kurve auf eine andere Kurve legen .... :?
  Antworten mit Zitat      
Hallo medivh1877,

Möglicherweise hilft Dir diese Diskussion weiter:
http://www.gomatlab.de/abstand-zwis.....echnen-t28338.html#112412

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 25.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.11.2013, 22:53     Titel:
  Antworten mit Zitat      
Bibonaut hat Folgendes geschrieben:


Die Steigung bekommst du ja recht einfach durch das einseitige oder zentrale Differenzenverfahren.

Dein Ortsvektor für den Punkt auf der Funktion y1 ist dann

<br />
\underline{a} = \begin{bmatrix} x(t) \\ y_{1}(x(t)) \end{bmatrix}
<br />
Mit deiner Steigung "q(t)" kannst du den Winkel alpha = atan(q(t)) berechnen, plus 90° rechnen und mit v = tan(alpha+90) deine neue Steigung berechnen.




Das hört sich schonmal gut an..vielen Dank Smile Im Moment hab ich nur noch das Problem den richtigen Winkel der Steigung zu bekommen bzw. des Gradienten.

Ich habe die Funktion abgeleitet, dann bekomme ich f'(x) = die Steigungsfunktion. Wie genau bekomme ich den Winkel der an jeder Stelle raus? Muss ja auch der richtige sein (siehe Bild)


.....Die restlichen Schritte konnte ich gut nachvollziehen... Danke Dir Idea

test.jpg
 Beschreibung:

Download
 Dateiname:  test.jpg
 Dateigröße:  11.15 KB
 Heruntergeladen:  281 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Bibonaut
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 06.06.13
Wohnort: Berlin
Version: 2013a
     Beitrag Verfasst am: 04.11.2013, 15:03     Titel:
  Antworten mit Zitat      
Hi,

Ich weiß nicht, ob ich deine Frage richtig verstehe. Der Winkel beta ist der Winkel der Steigung der Funktion plus 90 Grad. Frage geklärt? Wink

Viele Grüße!
Alex
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.