Funktion m=fenduanhanshu(t)
m=t.*(t>=0 & t1 & t2)
【Erklärung】
In Matlab lautet die Operationsregel des Ausdrucks m=t.*(t>=0 & t1 & t2) in der obigen Funktion, dass der Wert des booleschen Ausdrucks 1 ist, wenn der boolesche Ausdruck wahr ist Nehmen Sie an der Operation teil, andernfalls nehmen Sie 0 und nehmen Sie an der Operation teil.
Wenn zum Beispiel (t>=0 & t=0 & t1 & t2) im Ausdruck nicht wahr sind, wird 0 verwendet, um an der Operation teilzunehmen, also zu diesem Zeitpunkt m=t.*1 +(-t+2) *0+0,1.*0=t.
Dieses Design in Matlab erleichtert Benutzern die Durchführung wissenschaftlicher Berechnungen, reduziert die Codemenge und verbessert die Entwicklungseffizienz. Persönlich kann ich die Verwendung nur wärmstens empfehlen.
Maximalwert kann in ein Minimalwertproblem umgewandelt werden. Beispiel: % Berechnen Sie den Mindestwert f(x) = -x1*x2*x3, der Startpunkt ist x = [10;10;10] und die Einschränkung lautet:
% 0 ≤ x1 + 2*x2 + 2*x3 ≤ 72.
% –x1–2*x2–2*x3 ≤ 0
% 1. Schreiben Sie die Zielfunktion% Funktion f = myfun(x)
% f = -x(1) * x(2) * x(3);% 2. Einschränkungen
% –x1–2*x2–2*x3 ≤ 0
% x1 + 2*x2 + 2*x3≤ 72
% 3. Konstruieren Sie die Einschränkungsmatrix
% A = [-1 -2 -2; ...
% 1 2 2];
% b = [0;72];% 4. Optimierungsberechnung% x0 = [10;10;10];
% [x,fval] = fmincon(@myfun,x0,A,b);% 5. Ergebnis
% x
% x =
% 24,0000
% 12,0000
% 12,0000
%
%
% fval
% fval =
% -3.4560e+03
%
%
% A*x-b
% ans =
-72
Das Optimierungsproblem multivariater Funktionen kann nicht einfach geschrieben werden.
MATLAB selbst ist nicht zur Optimierung geeignet. Es wird empfohlen, Tools wie Lingo und 1stopt zu verwenden.
Das Folgende ist das Ergebnis mit dem 1stopt-Tool:
1. Code:
Parameter x=[1.8,2,2],y=[.46,.90];
Minimum;
Funktion (-256,926x+572,13)*(y*(0,867+0,037*y+0,05*x)*252-17,784*y);
2. Ergebnis:
Anzahl der Iterationen: 25
Berechnungszeit (Stunde: Minute: Sekunde: Millisekunde): 00:00:00:141
Ursache für Berechnungsabbruch: Konvergenzkriterium erreicht
Optimierungsalgorithmus: Konjugierte Gradientenmethode + allgemeine globale Optimierungsmethode
Funktionsausdruck: (-256,926*x+572,13)*(y*(0,867+0,037*y+0,05*x)*252-17,784*y)
Zielfunktionswert (Minimum): 6170,8801616352
x: 2
y: 0,46
Das obige ist der detaillierte Inhalt vonSo realisieren Sie den Extrempunkt der stückweisen Funktion in Matlab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!