Wolfram Otimização | Experimente!
Wolfram Otimização | Experimente!
Edite e execute qualquer trecho de código clicando dentro do código e pressionando .
+
Modelar, Resolver & Analisar Designs. Wolfram Otimização fornece um conjunto abrangente de ferramentas para encontrar o melhor design ou tomar a melhor decisão dentro de restrições, totalmente integrado com machine learning, altamente automatizado, estatísticas, dados computáveis integrados e muito mais.
Encontre Extremos Locais ou Globais
Encontre Extremos Locais ou Globais
Represente graficamente uma função que possui extremos globais e locais: |
In[]:=
Plot[+-5,{x,-3,3}]
4
x
3
x
2
x
Busque um mínimo local próximo de x1 |
In[]:=
FindMinimum[+-5,{x,1}]
4
x
3
x
2
x
Agora busque um mínimo local próximo 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
Restrições também podem ser incluídas para encontrar o valor mínimo em um domínio restrito: |
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
Sem um domínio restrito, a busca visa encontrar mínimos globais e retornar resultados numéricos: |
In[]:=
NMinimize[+-5,x]
4
x
3
x
2
x
Visualize os mínimos globais e locais encontrados: |
In[]:=
Plot+-5,{x,-3,3},Epilog->
4
x
3
x
2
x
Encontrar Extremos em Dimensões Superiores
Encontrar Extremos em Dimensões Superiores
A mesma funcionalidade pode ser usada em dimensões superiores. Defina uma função objetivo e restrições que possam ser visualizadas em três dimensões: |
In[]:=
objective=3Sin[+]-x-2y;constraints=Norm[{x,y}]>=1&&+<=10;
2
x
2
(y-1)
4
x
4
y
Visualize a função objetivo sobre a região restrita: |
regionandobjective=ShowPlot3Dobjective,{x,-2,2},{y,-2,2},AxesLabel{x,y,z},,DiscretizeRegionImplicitRegion[constraints&&z-9,{{x,-2,2},{y,-2,2},z}],
Encontre o mínimo local da função objetivo próximo de (0,1) |
In[]:=
{localmin3D,localminimizer3D}=FindMinimum[objective,{{x,0},{y,1}}]
Encontre o mínimo global da função objetivo na região restrita: |
In[]:=
{globalmin3D,globalminimizer3D}=NMinimize[{objective,constraints},{x,y}]
Visualize o mínimo global (em vermelho) e o mínimo local (em azul) encontrados: |
In[]:=
Show[regionandobjective,Graphics3D[{PointSize[Large],Blue,Point[{x,y,localmin3D}]/.localminimizer3D,Red,Point[{x,y,globalmin3D}]/.globalminimizer3D}]]
Minimizar uma Função Objetivo Sujeita a Restrições
Minimizar uma Função Objetivo Sujeita a Restrições
Defina regiões em termos de restrições, interseções e formas embutidas: |
In[]:=
ℛ
1
,ImplicitRegion[2x-y>=3,{x,y}];
ℛ
2
,ImplicitRegion[2x-y<3,{x,y}];
Visualize uma função objetivo sobre as regiões previamente definidas: |
In[]:=
ShowPlot3D+,{x,y}∈,,Plot3D+,{x,y}∈,
3
(x+1)
2
(y-1)
ℛ
1
3
(x+1)
2
(y-1)
ℛ
2
Use |
In[]:=
NMinimize[+,{x,y}∈]
3
(x+1)
2
(y-1)
ℛ
1
Use |
In[]:=
{minvalue,minimizer}=Minimize[+,{x,y}∈]
3
(x+1)
2
(y-1)
ℛ
1
Mostre o mínimo restrito encontrado junto com a função objetivo: |
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
Resolver Problemas de Otimização Convexa
Resolver Problemas de Otimização Convexa
Defina duas regiões implícitas por meio de restrições: |
In[]:=
1
2
x
2
y
2
2
(x-2)
2
(y-1)
Visualize the regions: |
In[]:=
RegionPlot[{,},{x,-1,3},{y,-1,3},PlotTheme->"Minimal",Axes->False]
1
2
Encontre o par de pontos (um de cada região) que minimiza a distância entre eles: |
In[]:=
closest2D=ConvexOptimization[Norm[p1-p2],{},{p1∈ImplicitRegion[,{x,y}],p2∈ImplicitRegion[,{x,y}]}]
1
2
Visualize o par de pontos encontrados e a distância entre eles: |
In[]:=
RegionPlot{,},{x,-1,3},{y,-1,3},PlotTheme->"Minimal",Axes->False,Epilog->
1
2
Defina rapidamente regiões 3D usando formas embutidas: |
In[]:=
1
2
Visualize as formas: |
In[]:=
Graphics3D[{,}]
1
2
Encontre o par de pontos (um de cada região) que minimiza a distância entre as duas: |
In[]:=
closest3D=ConvexOptimization[Norm[p1-p2],{},{p1∈,p2∈}]
1
2
Visualize os pontos encontrados com uma linha conectando-os: |
In[]:=
Graphics3D[{,,{Red,Thick,Line[{p1,p2}/.closest3D]}}]
1
2
Resolva e visualize uma versão dinâmica do exemplo anterior: |
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]
Aplicar o Ajuste Ideal para Suavizar Dados
Aplicar o Ajuste Ideal para Suavizar Dados
Encontrar o Menor Percurso
Encontrar o Menor Percurso
Obter Soluções Exatas para Problemas de Otimização Simbólica
Obter Soluções Exatas para Problemas de Otimização Simbólica
Obter Soluções Paramétricas para Problemas de Otimização Simbólica
Obter Soluções Paramétricas para Problemas de Otimização Simbólica