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

Erste Nullstelle (Hochpunkt) finden und ausgeben

 

roy58
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 09.12.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.12.2013, 11:47     Titel: Erste Nullstelle (Hochpunkt) finden und ausgeben
  Antworten mit Zitat      
Hallo,

ich bin noch Anfänger in Sachen MATLAB. Zu meiner Frage:

Ich habe folgende Kurve (siehe Anhang). Nun versuche ich von Anfang aus betrachtet, denjenigen Punkt zu finden, an dem die Kurve erstmals die Steigung =0 hat. Wie schaffe ich das in MATLAB zu programmieren? Habe es schon mit dem Befehl diff versucht, bin aber leider nicht weitergekommen. Wäre euch sehr dankbar, wenn ihr mir helfen könntet.

Gruß,
roy58

kurve.JPG
 Beschreibung:

Download
 Dateiname:  kurve.JPG
 Dateigröße:  26.34 KB
 Heruntergeladen:  766 mal
Private Nachricht senden Benutzer-Profile anzeigen


BlackDread
Forum-Century

Forum-Century


Beiträge: 212
Anmeldedatum: 11.05.11
Wohnort: ---
Version: 2015a
     Beitrag Verfasst am: 09.12.2013, 13:22     Titel:
  Antworten mit Zitat      
Hallo roy58,

Zitat:
Habe es schon mit dem Befehl diff versucht, bin aber leider nicht weitergekommen

Warum bist du nicht weitergekommen? Wo lag/liegt das Problem?
Hast du versucht nach dem diff mit == 0 zu suchen? Das wird vermutlich nicht funktionieren, da eine Differenz von float-Zahlen niemals 0 geben wird. Hier musst du eher "Bereiche" eingeben ("<=" und ">=").
Code:
(0.5-0.4-0.1)==0%Trotz den Erwartungen ist das Ergebnis nicht 1


Welchen Hochpunkt suchst du denn? In deinem Plot sind sehr viele "Hochpunkte". Zum einen durch das Rauschen auf dem Signal und zum anderen ein paar weniger ausgeprägte.

Es gibt auf dem FEX ein paar Funktionen die ganz hilfreich sind.
http://www.mathworks.com/matlabcent.....9C%93&term=peakfinder
_________________

--> Kapieren statt Kopieren <---
____________________________________________________
FAQs sind dazu da, FAQs zu beantworten Wink
Richtig fragen!
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: 09.12.2013, 13:32     Titel: Re: Erste Nullstelle (Hochpunkt) finden und ausgeben
  Antworten mit Zitat      
Hallo roy58,

Diese Kurve wird mit extrem hoher Wahrscheinlichkeit niemals die Steigung exakt gleich 0 haben. Sie scheint aus diskreten Messpunkten zu bestehen, wie möchtest Du dann "Steigung" überhaupt definieren? Dass zwei benachbarte Messpunkte den gleichen Wert haben ist dann ja noch nicht hinreichend im mathematischen Sinn.

Du könntest z.B. stückchenweise ein Polynom an die Messdaten fitten und von diesem dann die Nullstellen der Steigung bestimmen. Das wäre dann aber immer noch nicht eindeutig und die Wahl der Anzahl der Stützstellen wird auch die Position der Nullstellen beeinflussen.

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

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 09.12.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.12.2013, 13:22     Titel:
  Antworten mit Zitat      
Hallo Leute,

vielen Dank für eure Hilfe. Hatte versucht den ersten Hochpunkt zu ermitteln nachdem der Anstieg am Anfang beendet wird, welchen y-Wert ich dann bekomme. Hab jetzt einfach mir das dementsprechende Intervall betrachtet und dort mit dem Befehl max den maximalen y-Wert bestimmt.

Ich hab aber eine andere Frage hoffe ihr könnt mir helfen Smile
Unzwar habe ich jetzt ein y-Wert ermittelt und versuch den entsprechenden x-Wert dazu zu finden. Wie kann ich da Vorgehen. Ich weiß das ich nicht den exakten Wert finden kann aber so ein ungefährer Wert wird mir schon reichen. Wäre sehr dankbar wenn ihr mir auch diesbezüglich helfen könntet.

MfG

roy58
Private Nachricht senden Benutzer-Profile anzeigen
 
Olaf123456

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.12.2013, 22:23     Titel:
  Antworten mit Zitat      
Hallo.
Ich glaube ich kann dir bei deinem Problem weiterhelfen.
Ich habe mir eine Funktion hierfuer geschrieben. Die kannst du bekommen.
Deine Daten sehen sehr ähnlich zu meinen aus. Darf ich fragen um welche Messwerte es sich handelt?
Gruß
Olaf
 
Harald
Forum-Meister

Forum-Meister


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

es gibt auch Standardfunktionen für diesen Zweck:
Code:


Das entscheidende wird ein ausreichend guter Startpunkt sein. Bei fzero noch besser ist ein Intervall, bei dem ein x-Wert einen y-Wert größer als der gesuchte hat und der andere einen y-Wert kleiner als der gesuchte.

Grüße,
Harald
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.