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

Wendepunkte

 

code88
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 91
Anmeldedatum: 06.02.08
Wohnort: Meinisberg
Version: MATLAB Version 7.8.0.347 (R2009a)
     Beitrag Verfasst am: 02.03.2010, 15:24     Titel: Wendepunkte
  Antworten mit Zitat      
Weiss jemand, wie man am Besten Wendepunkte aus einer Messreihe berechnet?

Wenn eine mathematische Funktion vorhanden wäre könnte man die zweite Ableitung der Funktion gleich null setzen und berechnen. Nur ich habe ja nur Messpunkte....

Muss hier der Weg über eine Regression gemacht werden, um dann rechnerisch die Wendepunkte zu finden oder lässt sich etwas über die numerische Ableitung machen?
Private Nachricht senden Benutzer-Profile anzeigen


Thomas84
Forum-Meister

Forum-Meister


Beiträge: 546
Anmeldedatum: 10.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.03.2010, 18:49     Titel:
  Antworten mit Zitat      
wie wärs damit:

f'' = (f(k-1) - 2*f(k) + f(k+1))/h^2

berechnen und dann Nullstellen mit fzero suchen.
Private Nachricht senden Benutzer-Profile anzeigen
 
code88
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 91
Anmeldedatum: 06.02.08
Wohnort: Meinisberg
Version: MATLAB Version 7.8.0.347 (R2009a)
     Beitrag Verfasst am: 02.03.2010, 20:14     Titel:
  Antworten mit Zitat      
Es handelt sich leider um keine mathematiche Funktion sondern um Messwerte (x und Y Werte).
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.03.2010, 20:25     Titel:
  Antworten mit Zitat      
Hallo,

Vorschlag:
2. Ableitung bzw. Näherung berechnen.
Vorzeichenwechsel der zweiten Ableitung suchen.
Etwa so:

Code:
y2strich = diff(diff(y));
index = find(diff(sign(y2strich)) ~= 0)


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Thomas84
Forum-Meister

Forum-Meister


Beiträge: 546
Anmeldedatum: 10.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.03.2010, 06:24     Titel:
  Antworten mit Zitat      
das mit fzero war natürlich quatsch. Ich meinte schon sowas ähnliches wie harald. Wenn man diff verwendet muss man natürlich aufpassen ob der index nicht verschoben ist.
Private Nachricht senden Benutzer-Profile anzeigen
 
code88
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 91
Anmeldedatum: 06.02.08
Wohnort: Meinisberg
Version: MATLAB Version 7.8.0.347 (R2009a)
     Beitrag Verfasst am: 03.03.2010, 16:29     Titel:
  Antworten mit Zitat      
Der vorgeschlagene Code ergibt mir nicht die gewünschten Resultate.

Wieso wird hier im ganzen 3 mal differenziert?

Hier ein Beispiel:

Code:
clear all

x=0:pi/10:2*pi;
y=sin(x);

plot(x,y)
grid on


y2strich = diff(diff(y));
index1 = find(diff(sign(y2strich)) ~= 0)


Es müsste doch der Punkt Pi bzw 3.1415... als Resultat herauskommen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Thomas84
Forum-Meister

Forum-Meister


Beiträge: 546
Anmeldedatum: 10.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.03.2010, 16:58     Titel:
  Antworten mit Zitat      
das wird an deiner Auflösung liegen setz doch mal

x = linspace(0,2*pi,10000)

dann wird das Ergebnis schon in die Nähe kommen. Außerdem musst du wie gesagt aufpassen, das sich der Index verschiebt. Versuch mal gradient statt diff.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.03.2010, 18:43     Titel:
  Antworten mit Zitat      
Hallo,

vor allem musst du dir schon am Ende die zugehörigen x- Werte ansehen, z.B. mit
Code:
x(index1 + 1)


3 Mal differenzieren, weil 2 Mal für 2. Ableitung + 1 Mal, weil mich die Änderung des Vorzeichens der zweiten Ableitung interessiert.

In diesem Fall bekommt man 2 Werte, da sich das Vorzeichen zunächst von - auf 0 und dann von 0 auf + ändert.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
snidaa
Forum-Anfänger

Forum-Anfänger


Beiträge: 37
Anmeldedatum: 25.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.08.2010, 10:04     Titel:
  Antworten mit Zitat      
hallo,
das gleiche problem habe ich jetzt auch.
aber da man keine funktion, sondern nur x und y werte hat, kann man da ja nix differenzieren.
Private Nachricht senden Benutzer-Profile anzeigen
 
code88
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 91
Anmeldedatum: 06.02.08
Wohnort: Meinisberg
Version: MATLAB Version 7.8.0.347 (R2009a)
     Beitrag Verfasst am: 12.08.2010, 10:35     Titel:
  Antworten mit Zitat      
Doch man kann numerisch differenzeieren.
Suche mal nach nummerisch differenzieren.
Private Nachricht senden Benutzer-Profile anzeigen
 
stish
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 25.08.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.08.2015, 15:35     Titel:
  Antworten mit Zitat      
Hallo,

ich bin gerade auf der Suche nach den Mittelpunkten zwischen zwei Extremwerten, was ja die Wendepunkte sind. Wenn ich die oben aufgeführte Methode für ein komplizierteres Signal anwende, z.B.
Code:

t = linspace(2,2.5,5000);
a = 0.6366*asin(sin(699*t));
b = sin(327*t);
c = cos(2*((t+20).^2));
d = 0.1*t-1;
data = a + b + c + d;
 


funktioniert das ganze aber nicht mehr so wirklich, beim plotten werden auch alle möglichen Max/Min als Wendepunkte angezeigt, gibt es da vielleicht einen anderen Weg?
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 25.08.2015, 15:43     Titel:
  Antworten mit Zitat      
hallo. bitte keinen alten thread karpern
Zitat:
zwischen zwei Extremwerten, was ja die Wendepunkte sind.
hmm wendepunkte und extrempunkte sind doch unterschiedliche dinge? bei extrempunkten sind die ersten ableiteungen 0 bei wendepunkten die zweiten. das ist nicht das gleiche.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
stish
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 25.08.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.08.2015, 15:53     Titel:
  Antworten mit Zitat      
Ok, sorry, dachte mir bevor ich einen neuen auf mache..

Nein, so meinte ich das auch nicht, sondern, dass die Wendepunkte eben genau der Mittelpunkt zwischen aufeinander folgenden Min/Max sind.
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 25.08.2015, 16:23     Titel:
  Antworten mit Zitat      
Zitat:
dass die Wendepunkte eben genau der Mittelpunkt zwischen aufeinander folgenden Min/Max sind.
daran kann ich mich garnicht erinnern das das so war.
_________________

richtig Fragen
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.