JuliaIntervals / IntervalLinearAlgebra.jl

Linear algebra done rigorously
MIT License
36 stars 9 forks source link

added Hertz method for eigenbox #88

Closed lucaferranti closed 2 years ago

lucaferranti commented 3 years ago

PR description

Added the Hertz method to compute the hull of eigenvalues of symmetric interval matrices

Before

After

julia> A = [0 -1 -1; 2 -1.399.. -0.001 0; 1 0.5 -1]
3×3 Matrix{Interval{Float64}}:
 [0, 0]  [-1, -1]                       [-1, -1]
 [2, 2]       [-1.39901, -0.000999999]    [0, 0]
 [1, 1]        [0.5, 0.5]               [-1, -1]

julia> eigenbox(A)
[-1.90679, 0.970154] + [-2.51903, 2.51903]im

julia> eigenbox(A, HertzMethod)
[-1.64732, 0.520456] + [-2.1112, 2.1112]im

Related issues

Other

codecov-commenter commented 3 years ago

Codecov Report

Merging #88 (9c3079b) into main (7baba67) will increase coverage by 0.65%. The diff coverage is 100.00%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main      #88      +/-   ##
==========================================
+ Coverage   90.30%   90.96%   +0.65%     
==========================================
  Files          14       14              
  Lines         454      487      +33     
==========================================
+ Hits          410      443      +33     
  Misses         44       44              
Impacted Files Coverage Δ
src/IntervalLinearAlgebra.jl 100.00% <ø> (ø)
src/eigenvalues/interval_eigenvalues.jl 100.00% <100.00%> (ø)
src/rref.jl 100.00% <0.00%> (ø)
src/multiplication.jl 100.00% <0.00%> (ø)
src/linear_systems/solve.jl 100.00% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 7baba67...9c3079b. Read the comment docs.

lucaferranti commented 3 years ago

I'll come back to this in a week or so!

mforets commented 2 years ago

lucaferranti requested a review from mforets 2 days ago

yes, the updates lgtm :ok_hand: