Optimisation avec Wolfram | Choses à essayer
Optimisation avec Wolfram | Choses à essayer
Effectuez des modifications et exécutez n’importe quel morceau de code en cliquant à l’intérieur du code et en appuyant sur .
+
Modélisez, résolvez et analysez des conceptions. L’optimisation avec Wolfram dispose d’un ensemble complet d’outils permettant de trouver la meilleure conception ou de prendre la meilleure décision en fonction des contraintes, entièrement intégrés avec l’apprentissage automatique, les statistiques, les données intégrées immédiatement calculables et bien plus encore.
Trouvez des extrema locaux ou globaux
Trouvez des extrema locaux ou globaux
Tracez une fonction qui possède des extrema globaux et locaux : |
In[]:=
Plot[+-5,{x,-3,3}]
4
x
3
x
2
x
Recherchez un minimum local au voisinage de x1 |
In[]:=
FindMinimum[+-5,{x,1}]
4
x
3
x
2
x
Recherchez maintenant un minimum local au voisinage de x-1.8 |
In[]:=
FindMinimum[+-5,{x,-1.8}]
4
x
3
x
2
x
In[]:=
Minimize[+-5,x]
4
x
3
x
2
x
Des contraintes peuvent également être incluses pour trouver la valeur minimale dans un domaine restreint : |
In[]:=
Minimize[{+-5,0<x<2},x]
4
x
3
x
2
x
In[]:=
NMinimize[{+-5,0<x<2},x]
4
x
3
x
2
x
Sans domaine restreint, il vise à trouver des minima globaux et à renvoyer des résultats numériques : |
In[]:=
NMinimize[+-5,x]
4
x
3
x
2
x
Visualisez les minima globaux et locaux qui ont été trouvés : |
In[]:=
Plot+-5,{x,-3,3},Epilog->
4
x
3
x
2
x
Trouvez des extrema dans des dimensions supérieures
Trouvez des extrema dans des dimensions supérieures
Vous pouvez utiliser la même fonctionnalité dans des dimensions plus élevées. Définissez une fonction objective et des contraintes que vous pouvez visualiser en trois dimensions : |
In[]:=
objective=3Sin[+]-x-2y;constraints=Norm[{x,y}]>=1&&+<=10;
2
x
2
(y-1)
4
x
4
y
Visualisez la fonction objective sur la région contrainte : |
regionandobjective=ShowPlot3Dobjective,{x,-2,2},{y,-2,2},AxesLabel{x,y,z},,DiscretizeRegionImplicitRegion[constraints&&z-9,{{x,-2,2},{y,-2,2},z}],
Trouvez le minimum local de la fonction objective au voisinage de (0,1) |
In[]:=
{localmin3D,localminimizer3D}=FindMinimum[objective,{{x,0},{y,1}}]
Trouvez le minimum global de la fonction objectif dans la région contrainte : |
In[]:=
{globalmin3D,globalminimizer3D}=NMinimize[{objective,constraints},{x,y}]
Visualisez le minimum global (en rouge) et le minimum local (en bleu) qui ont été trouvés : |
In[]:=
Show[regionandobjective,Graphics3D[{PointSize[Large],Blue,Point[{x,y,localmin3D}]/.localminimizer3D,Red,Point[{x,y,globalmin3D}]/.globalminimizer3D}]]
Minimisez une fonction objective soumise à des contraintes
Minimisez une fonction objective soumise à des contraintes
Définissez les régions en termes de contraintes, d’intersections et de formes intégrées : |
In[]:=
ℛ
1
,ImplicitRegion[2x-y>=3,{x,y}];
ℛ
2
,ImplicitRegion[2x-y<3,{x,y}];
Visualisez une fonction objective sur les régions précédemment définies : |
In[]:=
ShowPlot3D+,{x,y}∈,,Plot3D+,{x,y}∈,
3
(x+1)
2
(y-1)
ℛ
1
3
(x+1)
2
(y-1)
ℛ
2
Utilisez |
In[]:=
NMinimize[+,{x,y}∈]
3
(x+1)
2
(y-1)
ℛ
1
Utilisez |
In[]:=
{minvalue,minimizer}=Minimize[+,{x,y}∈]
3
(x+1)
2
(y-1)
ℛ
1
Affichez le minimum contraint trouvé ainsi que la fonction objective : |
In[]:=
ShowPlot3D+,{x,y}∈,,Plot3D+,{x,y}∈,,Graphics3D[{Red,PointSize[Large],Point[{x,y,minvalue}/.minimizer]}]
3
(x+1)
2
(y-1)
ℛ
1
3
(x+1)
2
(y-1)
ℛ
2
Résolvez des problèmes d’optimisation convexe
Résolvez des problèmes d’optimisation convexe
Définissez deux régions implicites par le biais de contraintes : |
In[]:=
1
2
x
2
y
2
2
(x-2)
2
(y-1)
Visualisez les régions : |
In[]:=
RegionPlot[{,},{x,-1,3},{y,-1,3},PlotTheme->"Minimal",Axes->False]
1
2
Trouvez la paire de points (un de chaque région) qui minimise la distance entre eux : |
In[]:=
closest2D=ConvexOptimization[Norm[p1-p2],{},{p1∈ImplicitRegion[,{x,y}],p2∈ImplicitRegion[,{x,y}]}]
1
2
Visualisez la paire de points trouvés et la distance qui les sépare : |
In[]:=
RegionPlot{,},{x,-1,3},{y,-1,3},PlotTheme->"Minimal",Axes->False,Epilog->
1
2
Définissez rapidement des régions en 3D à l’aide de formes intégrées : |
In[]:=
1
2
Visualisez les formes : |
In[]:=
Graphics3D[{,}]
1
2
Trouvez la paire de points (un dans chaque région) qui minimise la distance entre les deux régions : |
In[]:=
closest3D=ConvexOptimization[Norm[p1-p2],{},{p1∈,p2∈}]
1
2
Visualisez les points trouvés avec une ligne les reliant : |
In[]:=
Graphics3D[{,,{Red,Thick,Line[{p1,p2}/.closest3D]}}]
1
2
Résolvez et visualisez une version dynamique de l’exemple précédent : |
In[]:=
Manipulate[shape1=Dodecahedron[{0,0,0},{theta,phi}];shape2=Ellipsoid[{4,0,0},DiagonalMatrix[{2,3,1}]];dynamic3D=ConvexOptimization[Norm[p1-p2],{},{p1∈shape1,p2∈shape2}];Graphics3D[{shape1,shape2,{Red,Thick,Line[{p1,p2}/.dynamic3D]}},PlotRange->{{-1.5,5.5},{-2,2},{-1.4,1.4}}],{{theta,0,"Rotation about Z"},0,2Pi},{{phi,0,"Rotation about Y"},0,2Pi},ControlPlacement->Top,SaveDefinitions->True]
Utilisez l’ajustement optimal pour lisser les données
Utilisez l’ajustement optimal pour lisser les données
Trouvez l’itinéraire le plus court
Trouvez l’itinéraire le plus court
Obtenez des solutions exactes aux problèmes d’optimisation symbolique
Obtenez des solutions exactes aux problèmes d’optimisation symbolique
Obtenez des solutions paramétriques aux problèmes d’optimisation symbolique
Obtenez des solutions paramétriques aux problèmes d’optimisation symbolique