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

Forum-Anfänger
|
 |
Beiträge: 23
|
 |
|
 |
Anmeldedatum: 25.10.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.10.2013, 17:34
Titel: PROBLEM: eine Kurve auf eine andere Kurve legen .... :?:
|
 |
|
 |
|
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.........
Hoffe Ihr könnt mir weiterhelfen
Beschreibung: |
|
 Download |
Dateiname: |
bsp.JPG |
Dateigröße: |
23.13 KB |
Heruntergeladen: |
364 mal |
Beschreibung: |
Beispiel mit je 2 Punkten der beiden Funktionen |
|
 Download |
Dateiname: |
bsp2.JPG |
Dateigröße: |
13.96 KB |
Heruntergeladen: |
335 mal |
Beschreibung: |
So soll das Ergebnis aussehen |
|
 Download |
Dateiname: |
bsp3.JPG |
Dateigröße: |
16.39 KB |
Heruntergeladen: |
357 mal |
|
|
|
|
|
Bibonaut |

Forum-Fortgeschrittener
|
 |
Beiträge: 60
|
 |
|
 |
Anmeldedatum: 06.06.13
|
 |
|
 |
Wohnort: Berlin
|
 |
|
 |
Version: 2013a
|
 |
|
|
 |
|
Verfasst am: 28.10.2013, 19:11
Titel:
|
 |
|
 |
|
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
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
Ich hoffe das hilft und ist richtig, was ich hier geschrieben habe...
Grüße
Alex
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 29.10.2013, 13:59
Titel: Re: PROBLEM: eine Kurve auf eine andere Kurve legen .... :?
|
 |
|
|
medivh1877 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 23
|
 |
|
 |
Anmeldedatum: 25.10.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.11.2013, 22:53
Titel:
|
 |
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
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 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
Beschreibung: |
|
 Download |
Dateiname: |
test.jpg |
Dateigröße: |
11.15 KB |
Heruntergeladen: |
281 mal |
|
|
|
Bibonaut |

Forum-Fortgeschrittener
|
 |
Beiträge: 60
|
 |
|
 |
Anmeldedatum: 06.06.13
|
 |
|
 |
Wohnort: Berlin
|
 |
|
 |
Version: 2013a
|
 |
|
|
 |
|
Verfasst am: 04.11.2013, 15:03
Titel:
|
 |
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?
Viele Grüße!
Alex
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|