Problema

Encontre estimativas dos pontos de máximo e mínimos globais da função

usando a técnica da Simulação Monte Carlo. Verifique Graficamente a qualidade do resultado obtido.

A simulação Monte Carlo - Método da força bruta

O processo conhecido como simulação Monte Carlo consiste em sortear um número grande de valores, testá-los na função que se deseja otimizar e selecionar os pontos para o qual a função atingiu maior valor, no caso da maximização, ou mínimo valor, no caso da minimização. Esse método também é conhecido como um método de força bruta, pois no lugar de encontrar as condições necessarias para encontrar os pontos de máximo e mínimo da função, esses pontos são encontrados testando um determinado (de preferência grande) conjunto de elementos que pertencem ao domínio e escolhendo aqueles que melhor se adequam.

bruto

Fig.1 Fisiculturista Jay Cutler mostrando como se operacionaliza o método da força bruta.

Operacionalizando

Começamos definindo a função que se deseja otimizar.

f<-function(v){
  return(exp(abs(v)))
}

No passo seguinte vamos sortear valores \(n\) no domínio,\([a,b]\) que serão aplicados a função que desejamos otimizar, e vamos armazenar esses valores em um vetor com \(n\) componentes.

sorteio<-function(n,a,b){
v<-runif(n,a,b)
}

Em seguida, vamos aplicar os valores sorteados na segunda função dentro da primeira função, e selecionar os maiores e menores.

otimo<-function(n,a,b){
  options(digits=15)
  set.seed(100)
  v<-runif(n,a,b)
  y<-f(v)
  min<-v[which.min(y)]
  max<-v[which.max(y)]
  cat("Mínimo=",min,"\n")
  cat("Máximo=",max,"\n")
  
 }

Definas as funções a serem utilizadas, basta aplicá-las e buscar os valores desejados. Faremos os testes e vamos comparalos para \(n = 1.000, n = 10.000 e n = 100.000\) No intervalo [-1,2].

otimo(1000,-1,2)
## Mínimo= 0.000509488163515925 
## Máximo= 1.99857103079557
otimo(10000,-1,2)
## Mínimo= 3.49851325154305e-06 
## Máximo= 1.99956093775108
otimo(100000,-1,2)
## Mínimo= -2.3464672267437e-06 
## Máximo= 1.9999807823915

Resolução Grafica

Como os números testados dependem de um sorteio, os resultados obtidos podem mudar a cada sorteio. Além disso, maior o número de elementos sorteados, maior a chance do resultado se aproximar do real. Analisando o problema graficamente podemos ter uma boa noção do quantos os resultados aqui obtidos se aproximam dos mínimos e máximos reais.

função

Fig.2 Gráfico da \(f(x) = e^{|x|}\). Elaborado no wxMaxima.

Podemos observar que o ponto de máximo para o determinado intervalo se encontra no limite \(x = 2\), enquanto o de mínimo global se encontra na origem \(x = 0\). Quanto maior o número de elementos (\(n\)) testados na função “otimo” criado, com mais precisão nos aproximamos dos reais valores de máximo e mínimo global.