Estou tentando resolver um problema de mínimos quadrados não lineares de um lado com restrições lineares, ou seja, o problema:
Onde
se e mais.
Em palavras, isso pode ser considerado um problema de mínimos quadrados, onde apenas os resíduos positivos ( 's) são incluídos. Não posso enfatizar o suficiente para que este não seja um caso de ajuste de dados. Estou ciente do que aconteceria se usado na maioria dos casos de ajuste de dados, onde o resultado seria apenas uma função que está "acima" de todas as observações. O aplicativo é para resolver um problema de otimização muito específico que normalmente é resolvido na norma minmax ( ). Em todos os casos práticos, a solução não atinge zero, ou seja, devido ao comportamento das funções .
As funções são não lineares e temos acesso a suas derivadas, de modo que podemos calcular analiticamente o jacobiano sem muitos problemas adicionais.
Com algum sucesso, aplicamos um algoritmo de Levenberg-Marquardt em que a função objetivo é formulada como acima, ou seja, os 's abaixo de 0 são removidos da soma e com as linhas correspondentes do J jacobiano definidas como zero (ou seja, J_ {i ,: } = 0 se Isso é bastante bruto, mas funciona bem, infelizmente não conseguimos incorporar as restrições lineares.
Estamos cientes de vários métodos que resolvem o problema NLLSQ apenas com restrições vinculadas, mas esses métodos obviamente não resolvem nosso problema. Encontramos apenas um NLLSQ com restrições lineares, chamado DQED, e o usamos com sucessos limitados (estamos descontentes com o número de avaliações de iterações / funções) modificando nossa função objetivo, como fizemos com Levenberg Marquardt.
O que estou procurando
Quaisquer sugestões de métodos que resolvam o problema de mínimos quadrados não lineares com restrições lineares. Além disso, sugestões sobre como modificar algoritmos para incorporar o fato de incluir apenas os resíduos positivos são bem-vindas. Finalmente, qualquer dica ou sugestão é bem-vinda, embora eu deva enfatizar novamente que a formulação do problema não está errada, embora eu perceba que não é a mais adequada para otimização devido à falta de diferenciabilidade de quando .