선형 문제, 특이값 및 고유값 문제와 선형 맵 또는 연산자의 함수를 벡터에 적용하기 위한 다양한 Krylov 기반 알고리즘을 수집하는 Julia 패키지입니다.
선적 서류 비치 | 빌드 상태 | 디지털 객체 식별자 | 특허 |
---|---|---|---|
이제 이 버전은 Base
및 LinearAlgebra
의 일부 최소 메소드 세트 대신 VectorInterface.jl을 사용하여 입력 벡터의 벡터와 유사한 동작을 정의합니다. 장점은 이제 중첩된 벡터나 튜플과 같은 불변 객체와 같이 표준 Julia의 더 많은 유형이 기본적으로 지원된다는 것입니다. 이전 필수 메소드 세트가 구현된 사용자 정의 사용자 유형의 경우 VectorInferace.jl에 메소드에 대한 대체 정의가 있으므로 이러한 유형은 계속 지원되지만 이로 인해 경고가 인쇄될 수 있습니다. Bang이 없거나 Double Bang이 있는 VectorInterface의 메서드에 대해 완전한 지원을 구현하는 것이 좋습니다. 여기서 후자의 메서드 집합은 해당 유형이 이 동작을 지원하는 경우 내부 변형을 사용할 수 있습니다.
특히, 이제 튜플이 지원됩니다.
julia > values, vectors, info = eigsolve (t -> cumsum (t) .+ 0.5 .* reverse (t), ( 1 , 0 , 0 , 0 ));
julia > values
4 - element Vector{ComplexF64} :
2.5298897746721303 + 0.0im
0.7181879189193713 + 0.4653321688070444im
0.7181879189193713 - 0.4653321688070444im
0.03373438748912972 + 0.0im
julia > vectors
4 - element Vector{NTuple{ 4 , ComplexF64}} :
( 0.25302539267845964 + 0.0im , 0.322913174072047 + 0.0im , 0.48199234088257203 + 0.0im , 0.774201921982351 + 0.0im )
( 0.08084058845575778 + 0.46550907490257704im , 0.16361072959559492 - 0.20526827902633993im , - 0.06286027036719286 - 0.6630573167350086im , - 0.47879640378455346 - 0.18713670961291684im )
( 0.08084058845575778 - 0.46550907490257704im , 0.16361072959559492 + 0.20526827902633993im , - 0.06286027036719286 + 0.6630573167350086im , - 0.47879640378455346 + 0.18713670961291684im )
( 0.22573986355213632 + 0.0im , - 0.5730667760748933 + 0.0im , 0.655989711683001 + 0.0im , - 0.4362493350466509 + 0.0im )
KrylovKit.jl은 일반 함수나 호출 가능한 객체를 선형 맵으로 받아들이고, (문서에 정의된 대로) 벡터와 같은 동작을 가진 일반 Julia 객체를 벡터로 받아들입니다.
KrylovKit의 고급 인터페이스는 다음 기능으로 제공됩니다.
linsolve
: 선형 시스템 풀기eigsolve
: 몇 가지 고유값과 이에 대응하는 고유벡터를 찾습니다.geneigsolve
: 몇 가지 일반 고유값과 이에 대응하는 벡터를 찾습니다.svdsolve
: 몇 가지 특이값과 이에 대응하는 왼쪽 및 오른쪽 특이 벡터를 찾습니다.exponentiate
: 선형 맵의 지수를 벡터에 적용합니다.expintegrator
: 선형 비균질 ODE에 대한 지수 적분기는 ϕ₀(z) = exp(z)
를 일반화하는 ϕⱼ
함수의 선형 조합을 계산합니다. KrylovKit.jl
Julia 패키지 관리자를 사용하여 설치할 수 있습니다. Julia REPL에서 ]
입력하여 Pkg REPL 모드로 들어가서 다음을 실행합니다.
pkg> add KrylovKit
또는 Pkg
API를 통해 동일하게:
julia > import Pkg; Pkg . add ( " KrylovKit.jl " )
패키지는 Linux, macOS, Windows, 32비트 및 64비트 아키텍처와 1
및 4
스레드를 갖춘 Julia master
브랜치의 현재 안정적인 야간 빌드인 Julia 1.0
에 대해 테스트되었습니다.
기능 요청 및 제안과 마찬가지로 기여도 매우 환영합니다. 문제가 발생하면 이슈를 열어주세요.