Skip to content

Commit

Permalink
Add examples
Browse files Browse the repository at this point in the history
  • Loading branch information
eeshan9815 committed Jun 6, 2018
1 parent f4a6b53 commit fa378a8
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 5 deletions.
32 changes: 32 additions & 0 deletions examples/linear_eq.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Examples from Luc Jaulin, Michel Kieffer, Olivier Didrit and Eric Walter - Applied Interval Analysis

using IntervalArithmetic, IntervalRootFinding, StaticArrays

A = [4..5 -1..1 1.5..2.5; -0.5..0.5 -7.. -5 1..2; -1.5.. -0.5 -0.7.. -0.5 2..3]
sA = SMatrix{3}{3}(A)
mA = MMatrix{3}{3}(A)

b = [3..4, 0..2, 3..4]
sb = SVector{3}(b)
mb = MVector{3}(b)

p = fill(-1e16..1e16, 3)

rts = gauss_seidel_interval!(p, A, b, precondition=true) # Gauss-Seidel Method; precondition=true by default
rts = gauss_seidel_interval!(p, sA, sb, precondition=true) # Gauss-Seidel Method; precondition=true by default
rts = gauss_seidel_interval!(p, mA, mb, precondition=true) # Gauss-Seidel Method; precondition=true by default

rts = gauss_seidel_interval(A, b, precondition=true) # Gauss-Seidel Method; precondition=true by default
rts = gauss_seidel_interval(sA, sb, precondition=true) # Gauss-Seidel Method; precondition=true by default
rts = gauss_seidel_interval(mA, mb, precondition=true) # Gauss-Seidel Method; precondition=true by default

rts = gauss_seidel_contractor!(p, A, b, precondition=true) # Gauss-Seidel Method (Vectorized); precondition=true by default
rts = gauss_seidel_contractor!(p, sA, sb, precondition=true) # Gauss-Seidel Method (Vectorized); precondition=true by default
rts = gauss_seidel_contractor!(p, mA, mb, precondition=true) # Gauss-Seidel Method (Vectorized); precondition=true by default

rts = gauss_seidel_contractor(A, b, precondition=true) # Gauss-Seidel Method (Vectorized); precondition=true by default
rts = gauss_seidel_contractor(sA, sb, precondition=true) # Gauss-Seidel Method (Vectorized); precondition=true by default
rts = gauss_seidel_contractor(mA, mb, precondition=true) # Gauss-Seidel Method (Vectorized); precondition=true by default

rts = gauss_elimination_interval!(p, A, b, precondition=true) # Gaussian Elimination; precondition=true by default
rts = gauss_elimination_interval(A, b, precondition=true) # Gaussian Elimination; precondition=true by default
11 changes: 6 additions & 5 deletions src/linear_eq.jl
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ end
function gauss_seidel_interval(A::AbstractMatrix, b::AbstractArray; precondition=true, maxiter=100)

n = size(A, 1)
x = fill(-1e16..1e16, n)

x = similar(b)
x .= -1e16..1e16
gauss_seidel_interval!(x, A, b, precondition=precondition, maxiter=maxiter)
return x
end
Expand Down Expand Up @@ -47,7 +47,8 @@ end
function gauss_seidel_contractor(A::AbstractMatrix, b::AbstractArray; precondition=true, maxiter=100)

n = size(A, 1)
x = fill(-1e16..1e16, n)
x = similar(b)
x .= -1e16..1e16
x = gauss_seidel_contractor!(x, A, b, precondition=precondition, maxiter=maxiter)
return x
end
Expand Down Expand Up @@ -78,8 +79,8 @@ end
function gauss_elimination_interval(A::AbstractMatrix, b::AbstractArray; precondition=true)

n = size(A, 1)
x = fill(-1e16..1e16, n)

x = similar(b)
x .= -1e16..1e16
x = gauss_elimination_interval!(x, A, b, precondition=precondition)

return x
Expand Down

0 comments on commit fa378a8

Please sign in to comment.