|
|
Array an Daten in Funktion umwandeln |
|
Gabriel83 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.01.2009, 09:39
Titel: Array an Daten in Funktion umwandeln
|
 |
Hallo!
Ich habe ein Array welches über der X-Achse aufgetragen eine Funktion aus zwei Geraden ergeben würde.
x = [0 1 2 3 4 5 6 7 8]
y= [0.5 2 3.5 5 4 3 2 1]
Gibt es eine Möglichkeit um mit Matlab eine abschnittsweise definierte Funktion zu erstellen damit so ein Ergebniss rauskommt??
Y1 = 1.5*x
Y2 = -x + 9
Das Problem ist dass ich nicht weiss nie wann der Extrempunkt kommt. Die Daten sind hier natürlich vereinfacht, ein Array hat bei mir ca. 200 Werte. Der Extrempunkt liegt immer zwischen dem 40- sten und 100- sten Wert.
|
|
|
|
|
Epfi |

Forum-Meister
|
 |
Beiträge: 1.134
|
 |
|
 |
Anmeldedatum: 08.01.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.01.2009, 10:15
Titel:
|
 |
Dazu musst Du zumindest so ungefähr wissen, wie die Funktion aussieht. Linear, quadratisch, exponentiell, ...
Wenn die Punkte wirklich exakt bekannt sind schlage ich vor, das ganze von Hand auszurechnen. Für eine Gerade musst Du dazu ja nur zwei Punkte kennen.
Wenn die Punkte nur so mehr oder weniger auf der gesuchten Funktion liegen, kannst Du die Methode der kleinsten Quadrate anwenden. Auch das kann man von Hand machen, aber bei 200 Werten ist das ziemlich lästig.
Für Polynome (also auch Geraden - allerdings wirst Du da kein Maximum finden) gibt es dafür die Funktion polyfit.
|
|
|
Gabriel83 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.01.2009, 13:12
Titel:
|
 |
Hallo! Danke für die schnelle Antwort.
Ich muss allerdings ein Programm schreiben dass zu Messdaten die ich einlese diese Funktionen automatisch erstellt. Es ist also nicht möglich das manuell zu machen. Die Funktionen werden immer linear sein.
|
|
|
Epfi |

Forum-Meister
|
 |
Beiträge: 1.134
|
 |
|
 |
Anmeldedatum: 08.01.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.01.2009, 13:18
Titel:
|
 |
Gabriel83 hat Folgendes geschrieben: |
Ich muss allerdings ein Programm schreiben dass zu Messdaten die ich einlese diese Funktionen automatisch erstellt. Es ist also nicht möglich das manuell zu machen. Die Funktionen werden immer linear sein. |
Du willst die Extremwerte einer linearen Funktion bestimmen? Ganz sicher?
Du kannst mit polyfit das ganze auch automatisieren.
Für den linearen Fall findest Du auch tonnenweise Hinweise im Netz, wie sich die Steigung und der Achsenabschnitt gemäß der Methode der kleinsten Quadrate "von Hand" bestimmen lässt. Zum Beispiel auch hier: http://de.wikipedia.org/wiki/Regres.....ng_der_Regressionsgeraden
|
|
|
Gabriel83 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.01.2009, 14:16
Titel:
|
 |
Also ich beschreibe das jetzt mal dann ausführlicher:
Ich bekomme ein Array von Daten. Über die X-Achse aufgetragen sieht es wie ein Trapez aus dass aus mehreren linearen Geraden besteht.
__/¯¯\__
Ich weiß nicht wo die Schnittpunkte dieser geraden liegen. Aber ich möchte am Ende die Gleichungen dieser Funktionen erhalten. Und das so, dass ich da nichts von Hand auszurechnen brauche, da es für ca. 80 Rechnungen pro Tag gebraucht wird. Also brauche ich zunächst etwas was mir die vier Eckpunkte herausgibt (Anfangs und Endpunkt habe ich ja), die ich dann mit Geraden verbinden kann, oder?
Grüße,
Gabriel83
|
|
|
Epfi |

Forum-Meister
|
 |
Beiträge: 1.134
|
 |
|
 |
Anmeldedatum: 08.01.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.01.2009, 14:45
Titel:
|
 |
Ahh, ok! Das war aus deinen ersten Beschreibungen überhaupt nicht ersichtlich.
Dann musst Du deinen Punktehaufen erstmal irgendwie in Segmente einteilen. Habe mal ziemlich genau sowas gebaut, die perfekte Lösung war das sicherlich nicht, gibt sicherlich Menschen, die sich da schonmal mit etwas mehr mathematischem Hintergrund an diese Problematik gewagt haben.
Wenn Deine Messwerte start verrauscht sind, funktioniert das Verfahren gar nicht mehr. Abhilfe kann dann eine vorangestellte Filterung bringen. Aber so ganz sauber ist das nicht...
|
|
|
|
|
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.
|
|