Eu quero resolver um problema não linear com restrições de igualdade não lineares e estou usando um Lagrangiano aumentado com um termo de regularização de penalidade que, como se sabe, estraga o número de condições dos meus sistemas linearizados (a cada iteração de Newton, quero dizer) . Quanto maior o prazo da penalidade, pior é o número da condição. Alguém saberia uma maneira eficiente de se livrar desse mau condicionamento nesse caso específico?
Para ser mais específico, estou usando o lagrangiano aumentado clássico porque tenho muitas restrições que geralmente podem ser redundantes. Portanto, é muito conveniente incorporar cegamente as restrições diretamente às variáveis primárias. Tentei outras abordagens mais sofisticadas, baseadas em eliminações variáveis ou precondicionadores eficientes diretamente no sistema KKT, mas, devido à redundância de restrições, tenho alguns problemas.
O problema com relação às variáveis é formulado como segue meu Lagrangiano como a forma
Portanto, geralmente o objetivo em cada iteração de Newton é resolver um problema do formato With (deixamos de lado a restrição) e e o capital é destinado a .A ( u , ρ ) : = ∇ 2 u W ( u ) + ρ C t ( u ) C ( L ) b ( u , ρ ) : = - ( ∇ u W ( L ) + ( ρ + λ T c ( u ) ) ∇ u (
Obrigado.
Respostas:
Dependendo da estrutura do problema, é possível resolver diretamente o sistema Lagrangiano Aumentado mal condicionado. Por exemplo, o BDDC / FETI-DP pode resolver a elasticidade quase incompressível na forma primária com uma taxa de convergência independente da razão de Poisson (constante por partes nos subdomínios, mas com saltos arbitrários). Da mesma forma, métodos multigrid que reproduzem exatamente o modo volumétrico podem ter essa propriedade. Esses métodos são específicos ao problema e, em geral, grandes penalidades resultam em sistemas difíceis de pré-condicionar.
Para permitir mais flexibilidade na escolha dos pré-condicionadores, recomendo introduzir variáveis duplas explícitas e escrever o sistema maior de pontos de sela
como sugerido por Arnold Neumaier. Este sistema está muito melhor condicionado e permite avaliar com precisão um resíduo. Se existir um pré-condicionador para algum sistema penalizado (onde ), você poderá usá-lo como um pré-condicionador de blocos para o sistema de pontos de sela. Para um exemplo disso, consulte Dohrmann e Lehoucq (2006), que pré-condicionam a elasticidade incompressível na forma mista usando o BDDC aplicado a problemas compressíveis. Outra classe popular de métodos é baseada na aproximação do complemento Schur usando argumentos de "comutador aproximado". Há uma gama extremamente diversificada de métodos para resolver problemas de pontos de sela, consulte Benzi, Golub e Liesen,A−ρ~CTC ρ~≤ρ −ρ−1−CA−1CT Solução numérica de problemas do ponto de sela (2005) para uma revisão. Se você estiver usando o PETSc, muitos dos métodos descritos na revisão acima podem ser construídos usando opções de tempo de execução por meio do
PCFIELDSPLIT
componente.Se você puder ser mais específico sobre a origem do seu problema (o que você está minimizando e qual é a restrição), posso sugerir referências mais específicas.
fonte
Introduza variáveis extras para os termos de deterioração na condição KT e você poderá encontrar um sistema simétrico maior que seja numericamente bem-comportado, com apenas o inverso do fator de penalidade entrando na matriz.
Para resolver o sistema mal condicionado quando é grande, introduza e reformule seu problema no formato , , que é genericamente bem condicionado.ρ y = ρ C x A x + C T y = b C x - ρ - 1 y = 0(A+ρCTC)x=b ρ y=ρCx Ax+CTy=b Cx−ρ−1y=0
fonte