แพ็คเกจ Julia รวบรวมอัลกอริธึมที่ใช้ Krylov จำนวนหนึ่งสำหรับปัญหาเชิงเส้น ปัญหาค่าเอกพจน์และค่าลักษณะเฉพาะ และการประยุกต์ใช้ฟังก์ชันของแผนที่เชิงเส้นหรือตัวดำเนินการกับเวกเตอร์
เอกสารประกอบ | สถานะการสร้าง | ตัวระบุวัตถุดิจิทัล | ใบอนุญาต |
---|---|---|---|
ตอนนี้เวอร์ชันนี้ขึ้นอยู่กับและใช้ VectorInterface.jl เพื่อกำหนดพฤติกรรมที่เหมือนเวกเตอร์ของเวกเตอร์อินพุต แทนที่จะเป็นชุดวิธีการขั้นต่ำบางชุดจาก Base
และ LinearAlgebra
ข้อดีก็คือ ประเภทอื่นๆ อีกมากมายจาก Julia มาตรฐานได้รับการสนับสนุนแบบสำเร็จรูปแล้ว เช่น เวกเตอร์ที่ซ้อนกัน หรือวัตถุที่ไม่เปลี่ยนรูป เช่น สิ่งอันดับ สำหรับประเภทผู้ใช้แบบกำหนดเองซึ่งใช้ชุดวิธีการที่จำเป็นแบบเก่า มีคำจำกัดความสำรองของวิธีการใน VectorInferace.jl ซึ่งยังคงได้รับการสนับสนุนประเภทเหล่านี้ แต่อาจส่งผลให้มีการพิมพ์คำเตือน ขอแนะนำให้ใช้การสนับสนุนอย่างเต็มที่สำหรับวิธีการอย่างน้อยใน VectorInterface ที่ไม่มี Bang หรือ Double Bang โดยที่วิธีการชุดหลังสามารถใช้การกลายพันธุ์แบบแทนที่ได้หากประเภทของคุณรองรับพฤติกรรมนี้
โดยเฉพาะอย่างยิ่ง tuples ได้รับการสนับสนุนแล้ว:
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 " )
แพ็คเกจนี้ได้รับการทดสอบกับ Julia 1.0
ซึ่งเป็นเวอร์ชันเสถียรในปัจจุบันและรุ่นต่อคืนของสาขา master
Julia บน Linux, macOS และ Windows, สถาปัตยกรรม 32- และ 64- บิต และมี 1
และ 4
เธรด
เรายินดีอย่างยิ่งที่จะมีส่วนร่วม เช่นเดียวกับคำขอคุณลักษณะและข้อเสนอแนะ กรุณาเปิดปัญหาหากคุณพบปัญหาใด ๆ