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

Finden einer beliebigen Funktion die Bedingungen erfüllt

 

EliasT
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 14.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.03.2017, 18:09     Titel: Finden einer beliebigen Funktion die Bedingungen erfüllt
  Antworten mit Zitat      
Hallo zusammen,

bin eher ein Einsteiger und befinde mich momentan in einer Situation in der ich aufgrund der Datenmenge nicht daran vorbeikommen Matlab zu nutzen - allerdings habe ich keine Ahnung ob und wie man folgendes umsetzen könnte:

Ich werte strömungsmechanische Versuchsdaten aus. Dabei suche ich eine bestimmte Korrelation. Nehmen wir an ich könnte bei einem Versuch die Parameter a, b und c einstellen und erhalte das Ergebnis d. Der Zusammenhang lautet also f(a,b,c) = d.
a, b, c und d liegen mir als Spaltenvektoren im Workspace vor. Nun habe ich die Daten in Excel so sortiert, dass sie nach aufsteigendem d sortiert sind. Ich benötige eine Funktion die folgendes erfüllt:
f(a,b,c) steigt monoton, d.h. f(a1,b1,c1) < f(a2,b2,c2) < ... < f(an,bn,cn)
Das "Problem"ist nun - es ist in diesem Fall wirklich völlig egal wie diese Funktion f(a,b,c) aussieht solange sie diese Bedingung erfüllt. Ohne Code werde ich wohl nie eine Funktion finden, da mir über 200 Messdaten vorliegen. Ich benötige also eine Funktion, die einen Funktionszusammenhang aus a,b und c beliebiger Art herstellt, der einen monoton steigenden Wert ergibt, um diesen dann weiterzuverwenden und ihn als x-Wert für mein Messergebnis d auf der y-Achse zu verwenden. Als Abbruchkriterium käme da wohl vieles in Frage, vlt. fällt jemandem etwas dazu ein....?

Lg Elias
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 15.03.2017, 10:55     Titel:
  Antworten mit Zitat      
Ich würde in diesem Fall einfach mit dem User Interface der Curve Fitting Toolbox anfangen, die Daten einlesen und mit den verschiedensten Funktionen experimentieren, bis ein guter Fir herauskommt.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
EliasT
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 14.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.03.2017, 16:01     Titel:
  Antworten mit Zitat      
Hi,

danke für die Antwort. Meine Absicht war es eigentlich, nichts "ausprobieren" zu müssen sondern einen Code zu schreiben, der alles mögliche für mich durchprobiert... Durch "ausprobieren" lässt sich mit ziemlicher Sicherheit keine Lösung finden, habe schon alles was iwie "gängig" ist durch...
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 15.03.2017, 16:27     Titel:
  Antworten mit Zitat      
Ja, ein Algorithmus, der automatisch den besten Fit ermittelt, incl. der idealen darunter liegenden Funktionalität wäre schon was Very Happy Keine Ahnung, ob es da schon was gibt. In der Praxis ist aber ja üblicherweise irgendeine Physik dahinter und speziell im akademischen Umfeld ist ja sogar mein Hinweise "Ausprobieren" verpönt. Beispiel: Der Zusammenhang müsste von der Physik her exponentiell sein. aufgrund der Datenlage incl. Rauschen ist ein Polynom 3ter Ordnung aber besser vom Fit her. Den Professor möchte ich sehen, der das durchgehen lässt Wink

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.03.2017, 16:52     Titel:
  Antworten mit Zitat      
Hallo,

mir stellen sich folgende Fragen:
* was spricht gegen plot(d) ?
* wäre es nicht schöner, das 3D darzustellen und die Punkte einzufärben?
Code:


Wenn man wirklich diese Funktion braucht, dann ist mir die Anforderung an die Funktion nicht klar. Aus dem Stand würde ich sagen: f(ak, bk, ck) = k, und fertig. Das wäre aber wohl zu einfach?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
EliasT
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 14.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.03.2017, 17:29     Titel:
  Antworten mit Zitat      
Hi,

danke für die Antwort! Ich habe wohl ein Detail vergessen zu erwähnen - d wird von 9 verschiedenen physikalischen Größen bestimmt - die umständlich per 3D-Simulation berechnet werden müssen. Die 3D-Simulation hat nun eben Daten für über 200 verschiedene Konstellationen ausgeworfen. Die wollen wir uns aber sparen, somit hilft die "Physik" die dahinter steckt leider nichts. Nun haben wir für jede Messung auch 3 Parameter, die wir immer wissen: den Ventilhub (a), die kinematische Viskosität (b) und den Messumstand (z.B. Fluss vorwärts richtung Auspuff, oder Fluss rückwärts durch den Injektor in den Koblen etc - insges. 13 Konstellationen). Das berechnete d ist der sog. "Flow coefficient".
Ich suche also einen Weg mit lediglich diesen 3 Infos ALLE berechneten Werte des Flow coefficients (y-Achse) auf eine einzige Kurve zu legen. Dazu brauche ich nun irgendwas vernünftiges für die x-Achse. Gedanke: ich sortiere die Flow coefficients der Größe nach aufsteigend. Für jeden Flow coefficient gibt es eben einen Ventilhub (a), die kinematische Viskosität (b) und die Messmethode (13 verschiedene Indizes von 1 bis 13). Ziel wäre jetzt aus den Größen a, b und c eine vollkommen beliebige Funktion zu basteln die entweder monoton steigt oder monoton fällt. Ventilhub a und kinematische Viskosität b sind fixe Zahlenwerte, die Messmethode c ist aber beliebig wählbar, dh ich könnte hier für die 13 Messvorgehen unterschiedliche Faktoren vergeben, solange ich nur für jede Messmethode bei einem festen Faktor bleibe.

D.h. ich stelle mir das so vor: Ich übergebe einer Matlab-Funktion die Tupel [a1,b1,c1],[a2,b2,c2],...,[an,bn,cn], sodass d1<d2<...<dn. Matlab findet dann für mich irgendeine absolut beliebige Funktion folgender Art:
f(a1,b1,c1)<f(a2,b2,c2)<...<f(an,bn,cn)

Ich hoffe man kann ungefähr nachvollziehen was mein Plan ist :P
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 16.03.2017, 12:45     Titel:
  Antworten mit Zitat      
Ja, das ist nachvollziehbar und legitim. Ich würde dann sowas wie Splines hernehmen.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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 - 2024 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.