Maison  >  Article  >  tutoriels informatiques  >  Comment réaliser le point extrême de la fonction par morceaux dans Matlab

Comment réaliser le point extrême de la fonction par morceaux dans Matlab

WBOY
WBOYavant
2024-01-20 08:03:131117parcourir

Comment réaliser le point extrême de la fonction par morceaux dans Matlab

Comment réaliser le point extrême de la fonction par morceaux dans Matlab

fonction m=fenduanhanshu(t)

m=t.*(t>=0 & t1 & t2)

【Explication】

Dans Matlab, la règle de fonctionnement de l'expression m=t.*(t>=0 & t1 & t2) dans la fonction ci-dessus est que lorsque l'expression booléenne est vraie, la valeur de l'expression booléenne est 1 , Participez à l'opération, sinon prenez 0 et participez à l'opération.

Par exemple, lorsque (t>=0 & t=0 & t1 & t2) dans l'expression ne sont pas vrais, 0 est utilisé pour participer à l'opération, donc à ce moment m=t.*1 +(-t+2) *0+0,1.*0=t.

Cette conception dans Matlab permet aux utilisateurs d'effectuer des calculs scientifiques, réduit la quantité de code et améliore l'efficacité du développement. Personnellement, je recommande vivement de l'utiliser.

Comment résoudre le problème de la valeur maximale d'une fonction via Matlab

La valeur maximale peut être convertie en un problème de valeur minimale. Par exemple : % Calculez la valeur minimale f(x) = -x1*x2*x3, le point de départ est x = [10;10;10] et la contrainte est :

% 0 ≤ x1 + 2*x2 + 2*x3 ≤ 72.

% –x1–2*x2–2*x3 ≤ 0

% 1. Écrivez la fonction objectif% function f = myfun(x)

% f = -x(1) * x(2) * x(3);% 2. Contraintes

% –x1–2*x2–2*x3 ≤ 0

% x1 + 2*x2 + 2*x3≤ 72

% 3. Construire la matrice de contraintes

%A = [-1 -2 -2 ...

% 1 2 2];

% b = [0;72];% 4. Calcul d'optimisation% x0 = [10;10;10];

% [x,fval] = fmincon (@myfun,x0,A,b);% 5. Résultat

%x

% x =

% 24.0000

% 12.0000

% 12.0000

%

%

% fval

% fval =

% -3.4560e+03

%

%

% A*x-b

%ans =

-72

valeur maximale Matlab de la fonction binaire

Le problème d'optimisation des fonctions multivariées ne peut pas être écrit simplement.

MATLAB lui-même n'est pas adapté à l'optimisation. Il est recommandé d'utiliser des outils tels que Lingo et 1stopt.

Voici le résultat obtenu en utilisant l'outil 1stopt :

1.Code :

Paramètres x=[1.8,2,2],y=[.46,.90];

Minimum ;

Fonction (-256,926x+572,13)*(y*(0,867+0,037*y+0,05*x)*252-17,784*y);

2. Résultat :

Nombre d'itérations : 25

Temps de calcul (heure : minute : seconde : milliseconde) : 00:00:00:141

Cause d'abandon du calcul : critère de convergence atteint

Algorithme d'optimisation : méthode du gradient conjugué + méthode d'optimisation globale générale

Expression de fonction : (-256,926*x+572,13)*(y*(0,867+0,037*y+0,05*x)*252-17,784*y)

Valeur de la fonction objectif (minimum) : 6170.8801616352

x : 2

y : 0,46

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer