Hauptinhalt

Optimize

Optimieren oder Lösen von Gleichungen im Live-Editor

Beschreibung

Mit dem Task „Optimize“ können Sie zwischen zwei Methoden wählen, um Probleme interaktiv zu optimieren oder nichtlineare Gleichungssysteme zu lösen:

  • Problembasiert (empfohlen) – Erstellen symbolischer Optimierungsvariablen und Ausdrücke, um die Zielfunktion sowie die Nebenbedingungen oder Gleichungen darzustellen

  • Solverbasiert – Darstellen der Zielfunktion und der Nebenbedingungen bzw. Gleichungen mithilfe von Standard-MATLAB®-Code

Der Task generiert automatisch MATLAB-Code für Ihr Live-Skript.

Mit der problembasierten Version dieses Tasks können Sie:

  • Arrays von Optimierungsvariablen angeben, einschließlich ihrer Schranken und Anfangswerte.

  • den Problemtyp festlegen: Minimierung, Maximierung, Machbarkeit oder Gleichungslösung.

  • die Zielfunktion und Nebenbedingungen angeben, indem Sie entweder Ausdrücke verfassen oder nach Funktionen suchen.

  • optional einen Solver auswählen und nicht-standardmäßige Optionen angeben.

  • die Optimierung durchführen.

Mit der solverbasierten Version dieses Tasks können Sie:

  • anhand der Eigenschaften Ihres Problems einen geeigneten Solver auswählen. Sofern Sie über die Global Optimization Toolbox verfügen, können Sie auch deren Solver verwenden.

  • die Zielfunktion und Nebenbedingungen angeben, indem Sie entweder Funktionen verfassen oder nach Funktionen suchen.

  • Solver-Optionen festlegen.

  • die Optimierung durchführen.

Einen Leitfaden zum Einstieg in „Optimize“ finden Sie unter Get Started with Solver-Based Optimize Live Editor Task und Erste Schritte mit dem problembasierten Live-Editor Task „Optimize“. Tipps zur Verwendung von „Optimize“ finden Sie unter Use Solver-Based Optimize Live Editor Task Effectively oder Use Problem-Based Optimize Live Editor Task Effectively. Derzeit können Sie die Solver fseminf, GlobalSearch und MultiStart mit „Optimize“ nicht verwenden.

Allgemeine Informationen zu Live-Editor Tasks finden Sie unter Add Interactive Tasks to a Live Script.

Optimize task in Live Editor: Choose between problem-based (recommended) and solver-based

Öffnen Sie die Aufgabe

Wählen Sie zum Einfügen des Tasks „Optimize“ in ein Live-Skript im MATLAB-Editor im Live-Editor auf der Registerkarte Insert die Option Task > Optimize aus.

Insert an Optimize Live Editor task

Alternativ können Sie in einem Codeblock des Skripts ein relevantes Schlüsselwort eingeben, beispielsweise optim oder fmincon. Wählen Sie Optimize aus den vorgeschlagenen Befehlsvervollständigungen aus.

Choosing Optimize from command completion suggestions

Nachdem Sie den Task eingefügt haben, wählen Sie entweder Problem-based (recommended) oder Solver-based aus.

Parameter

alle erweitern

Die problembasierten Variablennamen sind dynamisch. Sie können beliebige Namen wählen, sofern diese den üblichen Namenskonventionen entsprechen (siehe Variablennamen).

Problembasiert

Problemtyp; wird durch Anklicken der entsprechenden beschrifteten Schaltfläche festgelegt.

Zielfunktion, angegeben als Optimierungsausdruck, lokale Funktion oder Funktionsdatei. Gilt, wenn das Ziel (Goal) Minimize oder Maximize ist.

Nebenbedingungen für die Lösung, angegeben als Optimierungsausdruck, lokale Funktion oder Funktionsdatei. Fügen Sie dem Problem Nebenbedingungen hinzu, indem Sie auf die Schaltfläche „+“ klicken.

Problemgleichungen, angegeben als Optimierungsausdruck, lokale Funktion oder Funktionsdatei. Gilt, wenn das Goal (Ziel) Solve equations (Gleichungen lösen) ist. Fügen Sie dem Problem Gleichungen hinzu, indem Sie auf die Schaltfläche „+“ klicken.

Task-Status, angegeben als Define problem (Problem definieren) oder Solve problem (Problem lösen). Weitere Informationen finden Sie unter Use Problem-Based Optimize Live Editor Task Effectively.

Solverbasiert

Zielfunktionstyp; wird durch Anklicken der entsprechenden beschrifteten Schaltfläche festgelegt. Die ausgewählte Zielfunktion bestimmt, welche Solver verfügbar sind und welcher Solver zur Problemlösung empfohlen wird (siehe Solver).

Nebenbedingungstyp; wird durch Anklicken der entsprechenden beschrifteten Schaltfläche festgelegt. Sie können mehr als einen Nebenbedingungstyp festlegen. Die ausgewählten Nebenbedingungen bestimmen, welche Solver verfügbar sind und welcher Solver zur Problemlösung empfohlen wird (siehe Solver).

Optimierungssolver, den MATLAB zur Lösung des Problems verwendet; wird durch Auswahl eines Solvers aus der Liste der verfügbaren Solver festgelegt. Die verfügbaren Solver und der empfohlene Solver hängen davon ab, über welche Lizenz Sie verfügen und welche Objective (Zielfunktion) und Constraints (Nebenbedingungen) Sie ausgewählt haben.

Einschränkungen

  • Derzeit gelten für „Optimize“ die folgenden Einschränkungen bei der Mehrzieloptimierung:

    • Sie müssen Ihre Zielfunktionen mithilfe einer einzigen Funktion mit mehreren Ausgaben angeben. Mit anderen Worten: Ihre Zielfunktion muss einen Vektor von Werten ausgeben, wobei jeder Eintrag einem Ziel entspricht.

    • Alle Zielfunktionen müssen dieselbe Richtung aufweisen: Minimierung für den solverbasierten Task und entweder Minimierung oder Maximierung für den problembasierten Task.

Tipps

  • Bei Funktionen mit zusätzlichen Eingaben sind die Anforderungen bei solverbasierten und problembasierten „Optimize“-Tasks etwas unterschiedlich.

    • Solverbasiert: Wählen Sie die Optimierungsvariable aus und geben Sie an, welche Workspace-Variablen die festen Eingabewerte enthalten. Unter Place Optimization Variables in One Vector and Data in Other Variables finden Sie ein Beispiel mit drei Funktionseingaben:

      Optimization input = vars, Fixed input y = y, Fixed input w = w.

      „Optimize“ generiert erst dann Code, wenn Sie alle Funktionseingaben angegeben haben.

    • Problembasiert: Geben Sie für jede Funktionseingabe den Namen einer Optimierungsvariablen oder einer Workspace-Variablen an. Wenn der Name eines Eingabearguments in der Funktionssignatur mit dem Namen einer vorhandenen Optimierungsvariablen oder Workspace-Variablen übereinstimmt, wählt „Optimize“ diesen Namen automatisch aus.

      Function inputs = x, y, a.

      „Optimize“ generiert erst dann Code, wenn Sie alle Funktionseingaben angegeben haben.

  • „Optimize“ kann eine Funktion, die die Eingabe varargin oder einen Fehler enthält, nicht analysieren.

  • Wenn Sie eine Funktion aus einer Datei auswählen, fügt „Optimize“ den Speicherort der Datei zu Ihrem MATLAB-Pfad hinzu.

  • Wenn bei „Optimize“ ein Syntaxanalysefehler auftritt oder wenn mehrere lokale Funktionen denselben Namen haben, ist die Liste der verfügbaren lokalen Funktionen leer.

Versionsverlauf

Eingeführt in R2020b

alle erweitern

Siehe auch

Apps

Funktionen