Worse convergence for `block_minres` than `minres`
```julia
julia> A = [4.0 0 0 0 0; 0 4 0 0 0; 0 0 8 -3 -4; 0 0 -3 0 0; 0 0 -4 0 0]
5×5 Matrix{Float64}:
4.0 0.0 0.0 0.0 0.0
0.0 4.0 0.0 0.0 0.0
0.0 0.0 8.0 -3.0 -4.0
0.0 0.0 -3.0 0.0 0.0
0.0 0.0 -4.0 0.0 0.0
julia> B = [24.0 0; -16 0; 33 0; 0 -7; 0 -11]
5×2 Matrix{Float64}:
24.0 0.0
-16.0 0.0
33.0 0.0
0.0 -7.0
0.0 -11.0
julia> X, stats = block_minres(A, B);
julia> stats
SimpleStats
niter: 4
solved: false
inconsistent: false
indefinite: false
npcCount: 0
residuals: []
Aresiduals: []
κ₂(A): []
timer: 51.73μs
status: maximum number of iterations exceeded
julia> A*X # the second column is quite poor
5×2 Matrix{Float64}:
24.0 0.0101519
-16.0 -0.0236623
33.0 0.0625
-5.89079e-15 -7.77615
-7.85439e-15 -10.3682
julia> B
5×2 Matrix{Float64}:
24.0 0.0
-16.0 0.0
33.0 0.0
0.0 -7.0
0.0 -11.0
julia> x, stats = minres(A, B[:, 2]);
julia> stats
SimpleStats
niter: 3
solved: true
inconsistent: true
indefinite: false
npcCount: 0
residuals: []
Aresiduals: []
κ₂(A): []
timer: 10.61μs
status: found approximate minimum least-squares solution
julia> A*x # here it's fine
5-element Vector{Float64}:
0.0
0.0
0.0
-7.800000000000001
-10.4
```
Note that `A` has one zero eigenvalue.
2 条评论