Além da resposta de Jeromy Anglim, tenho mais alguns links.
Ao lado optim
há uma outra função na base de R que permite que você quer: nlminb
. Veja ?nlminb
e ?optim
exemplos de uso.
Existem vários pacotes que podem fazer otimizações. O que achei mais interessante foram os pacotes optimx e, bastante novo, o pacote neldermead para diferentes versões do algoritmo simplex.
Além disso, você pode dar uma olhada na Visualização de tarefas CRAN na otimização para obter mais pacotes
Observe que minhas recomendações assumem que você tem uma função determinística (ou seja, nenhum ruído aleatório). Para funções que não sejam estritamente determinísticas (ou muito grandes), você precisará usar algoritmos como recozimento simulado ou algoritmos genéticos. Mas a tela de tarefas CRAN deve ter o que você precisa.