Documentação | IC | Cobertura | DOI | Transferências |
---|---|---|---|---|
Se você usa Krylov.jl em seu trabalho, cite-o usando os metadados fornecidos em CITATION.cff
.
@article{montoison-orban-2023, author = {Montoison, Alexis and Orban, Dominique}, title = {{ Krylov.jl : A Julia basket of hand-picked Krylov methods}}, journal = {Journal of Open Source Software}, volume = {8}, number = {89}, pages = {5187}, year = {2023}, doi = {10.21105/joss.05187} }
Este pacote fornece implementações de alguns dos métodos Krylov mais úteis para uma variedade de problemas:
Sistemas de classificação completa quadrados ou retangulares
Machado = b
deve ser resolvido quando b estiver no espaço de imagem de A . Esta situação ocorre quando
A é quadrado e não singular,
A é alto e tem classificação de coluna completa e b está no intervalo de A .
Problemas lineares de mínimos quadrados
minimizar ‖ b - Machado ‖
deve ser resolvido quando b não está no intervalo de A (sistemas inconsistentes), independentemente da forma e da classificação de A . Esta situação ocorre principalmente quando
A é quadrado e singular,
A é alto e magro.
Sistemas subdeterminados são menos comuns, mas também ocorrem.
Se houver infinitos x (porque A é deficiente na classificação da coluna), um com norma mínima é identificado
minimizar ‖ x ‖ sujeito a x ∈ argmin ‖ b - Ax ‖.
Problemas lineares de menor norma
minimizar ‖ x ‖ sujeito a Ax = b
deve ser resolvido quando A é deficiente na classificação da coluna, mas b está no intervalo de A (sistemas consistentes), independentemente da forma de A . Esta situação ocorre principalmente quando
A é quadrado e singular,
A é curto e largo.
Sistemas sobredeterminados são menos comuns, mas também ocorrem.
Sistemas adjuntos
Machado = b e Aᴴy = c
onde A pode ter qualquer forma.
Sistemas quase definidos de ponto de sela e Hermitiano
[ MA ] [ x ] = [ b ]
[ Aᴴ -N ] [ y ] [ c ]
onde A pode ter qualquer forma.
Sistemas generalizados de ponto de sela e particionados não-Hermitianos
[ MA ] [ x ] = [ b ]
[ B N ] [ y ] [ c ]
onde A pode ter qualquer forma e B tem a forma de Aᴴ . A , B , b e c devem ser todos diferentes de zero.
Os solucionadores de Krylov são particularmente apropriados em situações em que tais problemas devem ser resolvidos, mas a fatoração não é possível, seja porque:
A não está disponível explicitamente,
A seria denso ou consumiria uma quantidade excessiva de memória se fosse materializado,
fatores consumiriam uma quantidade excessiva de memória.
Os métodos iterativos são recomendados em qualquer uma das seguintes situações:
o problema é suficientemente grande que uma fatoração não é viável ou seria lenta,
um pré-condicionador eficaz é conhecido nos casos em que o problema tem estrutura espectral desfavorável,
o operador pode ser representado eficientemente como uma matriz esparsa,
o operador é rápido , ou seja, pode ser aplicado com maior complexidade do que se fosse materializado como uma matriz. Certos operadores rápidos materializar-se-iam como matrizes densas .
Todos os solucionadores em Krylov.jl possuem versão local, são compatíveis com GPU e funcionam em qualquer tipo de dados de ponto flutuante.
Krylov pode ser instalado e testado através do gerenciador de pacotes Julia:
Júlia> ] pacote> adicionar Krylov pacote> teste Krylov
Se você acha que encontrou um bug, sinta-se à vontade para abrir um problema. Sugestões e solicitações focadas também podem ser abertas como problemas. Antes de abrir uma pull request, inicie um issue ou uma discussão sobre o tema, por favor.
Se você quiser fazer uma pergunta inadequada para um relatório de bug, sinta-se à vontade para iniciar uma discussão aqui. Este fórum é para discussão geral sobre este repositório e a organização JuliaSmoothOptimizers, portanto, perguntas sobre qualquer um de nossos pacotes são bem-vindas.