Documentación | CI | Cobertura | DOI | Descargas |
---|---|---|---|---|
Si utiliza Krylov.jl en su trabajo, cítelo utilizando los metadatos proporcionados en 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 paquete proporciona implementaciones de algunos de los métodos Krylov más útiles para una variedad de problemas:
Sistemas de rango completo cuadrados o rectangulares
hacha = b
debe resolverse cuando b se encuentra en el espacio de rango de A. Esta situación se produce cuando
A es cuadrado y no singular,
A es alto y tiene rango de columna completo y b se encuentra en el rango de A.
Problemas lineales de mínimos cuadrados
minimizar ‖ b - Ax ‖
debe resolverse cuando b no está en el rango de A (sistemas inconsistentes), independientemente de la forma y el rango de A. Esta situación se presenta principalmente cuando
A es cuadrado y singular,
A es alto y delgado.
Los sistemas indeterminados son menos comunes pero también ocurren.
Si hay infinitos x de este tipo (porque A tiene un rango de columna deficiente), se identifica uno con la norma mínima
minimizar ‖ x ‖ sujeto a x ∈ argmin ‖ b - Ax ‖.
Problemas lineales de mínima norma
minimizar ‖ x ‖ sujeto a Ax = b
debe resolverse cuando A tiene un rango de columna deficiente pero b está en el rango de A (sistemas consistentes), independientemente de la forma de A. Esta situación se presenta principalmente cuando
A es cuadrado y singular,
A es corta y ancha.
Los sistemas sobredeterminados son menos comunes pero también ocurren.
Sistemas adjuntos
Ax = b y Aᴴy = c
donde A puede tener cualquier forma.
Sistemas cuasidefinidos hermitianos y de punto de silla
[ M A ] [ x ] = [ b ]
[ Aᴴ -N ] [ y ] [ c ]
donde A puede tener cualquier forma.
Sistemas generalizados de punto de silla y particiones no hermitianas
[ M A ] [ x ] = [ b ]
[ BN ] [ y ] [ c ]
donde A puede tener cualquier forma y B tiene la forma de Aᴴ . A , B , b y c deben ser todos distintos de cero.
Los solucionadores de Krylov son particularmente apropiados en situaciones donde este tipo de problemas deben resolverse pero no es posible una factorización, ya sea porque:
A no está disponible explícitamente,
A sería denso o consumiría una cantidad excesiva de memoria si se materializara,
factores consumirían una cantidad excesiva de memoria.
Se recomiendan métodos iterativos en cualquiera de las siguientes situaciones:
el problema es lo suficientemente grande como para que una factorización no sea factible o sería lenta,
se conoce un precondicionador eficaz en los casos en que el problema tiene una estructura espectral desfavorable,
el operador se puede representar eficientemente como una matriz dispersa,
el operador es rápido , es decir, se puede aplicar con mayor complejidad que si estuviera materializado como una matriz. Ciertos operadores rápidos se materializarían como matrices densas .
Todos los solucionadores de Krylov.jl tienen una versión local, son compatibles con GPU y funcionan con cualquier tipo de datos de punto flotante.
Krylov se puede instalar y probar a través del administrador de paquetes de Julia:
julia>] paquete> agregar Krylov paquete> prueba Krylov
Si cree que encontró un error, no dude en abrir un problema. Las sugerencias y solicitudes específicas también se pueden abrir como problemas. Antes de abrir una solicitud de extracción, inicie un problema o una discusión sobre el tema, por favor.
Si desea hacer una pregunta que no sea adecuada para un informe de error, no dude en iniciar una discusión aquí. Este foro es para debates generales sobre este repositorio y la organización JuliaSmoothOptimizers, por lo que las preguntas sobre cualquiera de nuestros paquetes son bienvenidas.