Como encontrar Mínimo ou valores máximos para Funções no R

Um grande corpo de matemática visa resolver problemas de otimização de todos os tipos. Em R, o otimizar () função fornece um mecanismo bastante simples para otimizar funções.

Imagine que você é o diretor de vendas de uma empresa e você precisa definir o melhor preço para o seu produto. Em outras palavras, encontrar o preço de um produto que maximiza a receita.

Em economia, um modelo simples de estados de preços que as pessoas compram menos de um determinado produto quando o preço aumenta. Aqui está uma função muito simples que tem esse comportamento:

> vendas lt; - função (preço) {100 - 0,5 * Preço}

receita esperada é então simplesmente o produto de preço e vendas esperadas:

> receita lt; - função (preço) {preços * vendas (preço)}

Você pode usar o curva() função para traçar funções contínuas. Isso leva uma função como entrada e produz um enredo. Tente traçar o comportamento de vendas e da receita usando o curva() função, preço de $ 50 a $ 150 variando:

image0.jpg
> Par (mfrow = c (1, 2))> curva (de vendas, desde = 50, a = 150, XName = "preço", ylab = "Sales", principais = "vendas")> curva (receitas, a partir = 50, a = 150, XName = "preço", ylab = "Receita", main = "Receita")> par (mfrow = c (1, 1))

Você tem um modelo de trabalho de vendas e receitas. Você pode ver imediatamente que há um ponto de máximo rendimento. Em seguida, use a função R otimizar () para encontrar o valor dessa máxima.

Usar otimizar (), você precisa dizer a ele que funcionam para usar (neste caso, receita()), Bem como o intervalo (neste caso, os preços entre 50 e 150). Por padrão, otimizar () procura por um valor mínimo, então neste caso você tem que dizer a ele para procurar valor máximo:

> Otimizar (receitas, intervalo = c (50, 150), = TRUE máximo) $ máxima [1] 100 $ objectivo [1] 5000

E lá vai você. Cobrar um preço de US $ 100, e espera obter US $ 5.000 em receita.

A função R otimizar () utiliza uma combinação de pesquisa seção áurea e interpolação parabólica sucessiva. Felizmente, um grande número de pacotes fornecem vários algoritmos diferentes para resolver problemas de otimização. Na verdade, há uma especial vista de tarefas em CRAN para otimização e programação matemática.

menu