Products and inverses of symmetric banded matrices
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 45/100
Direzione di ricerca
Inizia riproducendo gli esempi Julia per BandedMatrix, Symmetric, Diagonal e le operazioni di inversione. Ispeziona i punti di ingresso del dispatch per la moltiplicazione e l’inversione che coinvolgono Symmetric e BandedMatrix. Il lavoro è completato quando i prodotti mantengono una struttura bandata o simmetrica appropriata e l’ambiguità di moltiplicazione di Symmetric segnalata è risolta.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Symmetric banded matrices seem very fragile and fall back to a generic dense matrix on occasions. Consider the following:
B = BandedMatrix(Ones(5,5), (0,0))
B * B
5×5 BandedMatrix{Float64} with bandwidths (0, 0):
1.0 ⋅ ⋅ ⋅ ⋅
⋅ 1.0 ⋅ ⋅ ⋅
⋅ ⋅ 1.0 ⋅ ⋅
⋅ ⋅ ⋅ 1.0 ⋅
⋅ ⋅ ⋅ ⋅ 1.0
Product of banded matrices is banded, as expected. However, when the matrix is additionally specified as Symmetric,
a product turns out to be dense:
S = Symmetric(B)
S * S
5×5 Matrix{Float64}:
1.0 0.0 0.0 0.0 0.0
0.0 1.0 0.0 0.0 0.0
0.0 0.0 1.0 0.0 0.0
0.0 0.0 0.0 1.0 0.0
0.0 0.0 0.0 0.0 1.0
Moreover, inverse of a symmetric matrix should be symmetric. This works with regular matrices, but when it is a BandedMatrix,
the result is once again a generic matrix:
inv(S)
5×5 Matrix{Float64}:
1.0 0.0 0.0 0.0 0.0
0.0 1.0 0.0 0.0 0.0
0.0 0.0 1.0 0.0 0.0
0.0 0.0 0.0 1.0 0.0
0.0 0.0 0.0 0.0 1.0
EDIT: I discovered more issues:
Symmetric{BandedMatrix} x Diagonalbecomes dense, whileBandedMatrix x DiagonalremainsBandedMatrix.Symmetric{BandedMatrix} x Symmetric{Matrix}throws an error:MethodError: *(::Symmetric{Float64, BandedMatrix{Float64, Matrix{Float64}, Base.OneTo{Int64}}}, ::Symmetric{Float64, Matrix{Float64}}) is ambiguous.
- Lingua principale
- Julia
- Stelle
- 140
- Fork
- 40
- Merge medio
- 1g 11h
- PR unite (30g)
- 3
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di JuliaLinearAlgebra/BandedMatrices.jl
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
JuliaLinearAlgebra/BandedMatrices.jl#502 · 1 commento ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
JuliaLinearAlgebra/BandedMatrices.jl#495 · 1 commento ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 52/100
JuliaLinearAlgebra/BandedMatrices.jl#482 · 2 commenti ·
-
Bug in svdvalsAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
Tutte le issue di JuliaLinearAlgebra/BandedMatrices.jl
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
legend-exp/LegendDataManagement.jl#232 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
EnzymeAD/Reactant.jl#3569 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
astroautomata/SymbolicRegression.jl#783 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 90/100
I maintainer di solito rispondono entro 1 giorno