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

Schätzung von mehreren Parametern

 

elchico
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 87
Anmeldedatum: 04.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.06.2019, 15:11     Titel: Schätzung von mehreren Parametern
  Antworten mit Zitat      
Hallo zusammen,

ich habe mehrere Parameter (zB. Breite, Länge, Höhe, können auch mehr als drei sein), allerdings keine Ahnung, welche Zusammenstellung dieser drei Parameter mir das beste Ergebnis ausgibt. Mein Ergebnis ist eine abstrakte Zahl, welche möglichst groß werden soll (Cost Function?).

Ich habe allerdings so ein Problem noch nie angehen müssen, weswegen mir so ein bisschen der Initialfunke fehlt.

Meine Vorgehensweise würde ungefähr so aussehen:
1) Nehme drei zufällige Zahlen an für diese drei Parameter ("1", "2", "3" für Breite, Länge, Höhe) und rechne dafür das Ergebnis aus (die Anfangswerte würde der User jedes Mal neu eingeben dürfen)
2) Gehe bei jetzt für Breite jeweils +/- 0.5 weg und rechne wieder das Ergebnis aus
3) Vergleiche Ergebnis aus 1 mit 2 -- und übernehme das bessere Ergebnis
4) Gehe von der neuen Zahl nur noch +/- 0.2 weg und rechne aus
5) Vergleiche wieder usw.
4) Variiere nun Länge und Höhe

Gibt es sowas als Funktion in Matlab? Würdet Ihr das Problem auch so angehen oder habt Ihr da eine andere Herangehensweise im Kopf? Im Grunde geht es meiner Meinung nach um das "Fitten" von Daten, wobei die Fit-Funktion nicht bekannt ist. Die Qualität meiner Daten wir einzig und allein durch die Maximierung dieser abstrakten Ergebniszahl definiert.

Vielen Dank für Eure Vorschläge.
LG
elchico
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: 14.06.2019, 16:06     Titel:
  Antworten mit Zitat      
Hallo,

es gibt zwei Produkte, die sich alleine darum drehen: Optimization Toolbox und Global Optimization Toolbox. Deine Vorgehensweise passt am ehesten zu patternsearch.

In Schritt 2 gehe ich davon aus, dass du jede der drei (oder mehr) Größen variieren willst?

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
elchico
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 87
Anmeldedatum: 04.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.06.2019, 19:17     Titel:
  Antworten mit Zitat      
Hallo,

danke @Harald für deinen Tipp. Ich bin gerade dabei, mich in PatternSearch einzuarbeiten.

Dazu habe ich noch eine Frage: Kann ich meine Limits per Variable irgendwie eingeben?
Also zB soll die Breite zwischen 0.1 und 10 liegen, die Länge zwischen 10 und 1000 und die Höhe zwischen 1 und 2?

Und kann ich auch die Step-Größe einstellen pro Variable? Es soll zB die Breite untersucht werden in "ganzen 0.1er Schritten", die Länge in 10er Schritten und die Höhe nur als 1 oder 2?

Ich bin mir unsicher, ob die StepSize dem Sinn des PatternSearch nicht irgendwie im Wege steht, aber zumindest die Limits per Variable wären ja durchaus sinnvoll (weil ich schon grob abschätzen kann, in welchem Rahmen sich die Werte bewegen müssen).

LG
elchico
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: 17.06.2019, 19:39     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Kann ich meine Limits per Variable irgendwie eingeben?

Die Argumente lb und ub.

Zitat:
Es soll zB die Breite untersucht werden in "ganzen 0.1er Schritten", die Länge in 10er Schritten und die Höhe nur als 1 oder 2?

Die Idee von patternsearch ist, dass die Gitterbreite immer wieder vergrößert oder verkleinert wird. Wenn die Schrittweite je nach Richtung unterschiedlich sein soll, würde ich die Variablen skalieren.

Wenn du nur relativ wenige Kombinationen zulassen willst, dann würde ich diese einfach durchprobieren - vorzugsweise vektorisiert.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
elchico
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 87
Anmeldedatum: 04.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.06.2019, 19:42     Titel:
  Antworten mit Zitat      
Hallo,

manchmal sieht man den Wald vor lauter Bäumen nicht, danke Dir.

Das mit dem Gitter verstehe ich, allerdings gibt es Variablen, da macht es physikalisch keinen Sinn (zB), wenn sie als Dezimalzahl angegeben werden. Wir simulieren zB menschlichen Zellen und es gibt keine halben Zellen. Deswegen die Frage.

Aber das hilft mir schon mal sehr, danke Dir!

LG
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: 17.06.2019, 20:58     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
allerdings gibt es Variablen, da macht es physikalisch keinen Sinn (zB), wenn sie als Dezimalzahl angegeben werden.

Das ist eine neue Information.
In manchen Fällen wird das eine untergeordnete Rolle spielen (z.B. ob es nun 999998 oder 999999 Zellen sind). In anderen Fällen (z.B. 3 oder 4 Zellen) kann das natürlich ganz anders aussehen.

patternsearch ist nur für den ersteren Fall geeignet. Für den anderen Fall kann das systematische Durchtesten aller Kombinationen oder auch ga eine Alternative sein.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
elchico
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 87
Anmeldedatum: 04.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.09.2019, 19:16     Titel:
  Antworten mit Zitat      
Vielen Dank, probiere jetzt seit einiger Zeit mich an PatternSearch. Mal gucken, wohin mich das führt =)

Danke Dir.
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 - 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.