حزمة جوليا تجمع عددًا من الخوارزميات المستندة إلى كريلوف للمشكلات الخطية، ومسائل القيمة المفردة والقيمة الذاتية وتطبيق وظائف الخرائط الخطية أو العوامل على المتجهات.
التوثيق | حالة البناء | معرف الكائن الرقمي | رخصة |
---|---|---|---|
يعتمد هذا الإصدار الآن على VectorInterface.jl ويستخدمه لتحديد السلوك الشبيه بالمتجه لمتجهات الإدخال، بدلاً من مجموعة بسيطة من الأساليب من Base
و LinearAlgebra
. الميزة هي أن العديد من الأنواع من Julia القياسية يتم دعمها الآن خارج الصندوق، مثل المتجهات المتداخلة أو الكائنات غير القابلة للتغيير مثل الصف. بالنسبة لأنواع المستخدمين المخصصة التي تم تنفيذ المجموعة القديمة من الأساليب المطلوبة لها، توجد تعريفات احتياطية للطرق في VectorInferace.jl بحيث تظل هذه الأنواع مدعومة، ولكن قد يؤدي ذلك إلى طباعة تحذيرات. يوصى بتنفيذ الدعم الكامل للطرق الموجودة في 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 الوظائف العامة أو الكائنات القابلة للاستدعاء كخرائط خطية، وكائنات جوليا العامة ذات السلوك الشبيه بالمتجه (كما هو محدد في المستندات) كمتجهات.
يتم توفير الواجهة عالية المستوى لـ 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 " )
تم اختبار الحزمة مقابل Julia 1.0
، الإصدار المستقر الحالي والإصدارات الليلية لفرع Julia master
على أنظمة Linux وmacOS وWindows، وببنية 32 و64 بت ومع 1
و 4
سلاسل عمليات.
المساهمات موضع ترحيب كبير، وكذلك طلبات الميزات والاقتراحات. يرجى فتح الموضوع إذا واجهت أي مشاكل.