# LinearAlgebra.SingularException Error while executing radial basis interpolation using Surrogates in julia?

**URL:** <https://discourse.julialang.org/t/linearalgebra-singularexception-error-while-executing-radial-basis-interpolation-using-surrogates-in-julia/59573>\
**Category:** General Usage\
**Tags:** question, interpolations\
**Created:** [April 19, 2021, 2:12am UTC](https://discourse.julialang.org/t/linearalgebra-singularexception-error-while-executing-radial-basis-interpolation-using-surrogates-in-julia/59573 "2021-04-19T02:12:54Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![mdsa3d](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mdsa3d/32/20389_2.png) [@mdsa3d](https://discourse.julialang.org/u/mdsa3d)\
**Post date:** [April 19, 2021, 2:12am UTC](https://discourse.julialang.org/t/linearalgebra-singularexception-error-while-executing-radial-basis-interpolation-using-surrogates-in-julia/59573/1 "2021-04-19T02:12:54Z")

</div>

I am trying to execute `radial basis interpolation` in `Julia` using `Surrogates` package.

I have developed the following code:

```julia
using Surrogates

function t(train, test)
        xy = zip(train[:,1],train[:,2]) |> collect
        lb = vcat(minimum(train[:,1]), minimum(train[:,2]))
        ub = vcat(maximum(train[:,1]),maximum(train[:,2]))
        rbf = Surrogates.RadialBasis(xy, train[:,3], lb, ub)
        testing = [rbf(i) for i in test]
        return rbf, testing
end

train = [0.0 0.0 4;
    0.0 0.0 2;
    0.0 0.0 2;
    0.0 0.0 2;
    0.0 0.0 1;
    0.0 0.0 3;
    0.0 0.0 6;
    0.0 0.0 7]
test = [(1.0, 1.0),
    (1.0, 1.0),
    (2.0, 2.0),
    (2.0, 2.0), 
    (2.0, 2.0),
    (2.0, 2.0),
    (2.0, 2.0),
    (2.0, 2.0)]

t(train, test)

```

However, upon executing this above code I am getting the following error:

```julia
LinearAlgebra.SingularException(7)

Stacktrace:
 [1] checknonsingular at C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\LinearAlgebra\src\factorization.jl:19 [inlined]
 [2] checknonsingular at C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\LinearAlgebra\src\factorization.jl:21 [inlined]
 [3] bunchkaufman!(::LinearAlgebra.Symmetric{Float64,Array{Float64,2}}, ::Bool; check::Bool) at C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\LinearAlgebra\src\bunchkaufman.jl:99
 [4] #bunchkaufman#142 at C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\LinearAlgebra\src\bunchkaufman.jl:186 [inlined]
 [5] #_factorize#94 at C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\LinearAlgebra\src\symmetric.jl:638 [inlined]
 [6] _factorize at C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\LinearAlgebra\src\symmetric.jl:636 [inlined]
 [7] factorize at C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\LinearAlgebra\src\symmetric.jl:634 [inlined]
 [8] \(::LinearAlgebra.Symmetric{Float64,Array{Float64,2}}, ::Array{Float64,1}) at C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.5\LinearAlgebra\src\symmetric.jl:648
 [9] _calc_coeffs(::Array{Tuple{Float64,Float64},1}, ::Array{Float64,1}, ::Array{Float64,1}, ::Array{Float64,1}, ::Function, ::Int64, ::Float64, ::Bool) at C:\Users\user\.julia\packages\Surrogates\wJbFN\src\Radials.jl:61
 [10] RadialBasis(::Array{Tuple{Float64,Float64},1}, ::Array{Float64,1}, ::Array{Float64,1}, ::Array{Float64,1}; rad::Surrogates.RadialFunction{Int64,Surrogates.var"#1#2"}, scale_factor::Float64, sparse::Bool) at C:\Users\user\.julia\packages\Surrogates\wJbFN\src\Radials.jl:51
 [11] RadialBasis(::Array{Tuple{Float64,Float64},1}, ::Array{Float64,1}, ::Array{Float64,1}, ::Array{Float64,1}) at C:\Users\user\.julia\packages\Surrogates\wJbFN\src\Radials.jl:49

```

Please suggest solution to resolve this issue!!

Thanks!

---

<div class="post-metadata">

**Author:** ![ettersi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ettersi/32/6829_2.png) [@ettersi](https://discourse.julialang.org/u/ettersi)\
**Post date:** [April 19, 2021, 2:40am UTC](https://discourse.julialang.org/t/linearalgebra-singularexception-error-while-executing-radial-basis-interpolation-using-surrogates-in-julia/59573/2 "2021-04-19T02:40:26Z")

</div>

> [@mdsa3d](#):
>
> ```julia
> function(train, test)
> 
> ```

Should this be `function training(train,test)`?

---

<div class="post-metadata">

**Author:** ![mdsa3d](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mdsa3d/32/20389_2.png) [@mdsa3d](https://discourse.julialang.org/u/mdsa3d)\
**Post date:** [April 19, 2021, 2:43am UTC](https://discourse.julialang.org/t/linearalgebra-singularexception-error-while-executing-radial-basis-interpolation-using-surrogates-in-julia/59573/3 "2021-04-19T02:43:40Z")

</div>

@ettersi thanks for pointing it out! Sorry!! 😛 typo heheh yeah!!

---

<div class="post-metadata">

**Author:** ![ettersi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ettersi/32/6829_2.png) [@ettersi](https://discourse.julialang.org/u/ettersi)\
**Post date:** [April 19, 2021, 3:01am UTC](https://discourse.julialang.org/t/linearalgebra-singularexception-error-while-executing-radial-basis-interpolation-using-surrogates-in-julia/59573/6 "2021-04-19T03:01:40Z")

</div>

> [@mdsa3d](#):
>
> ```julia
> train = [0.0 0.0 4;
> 0.0 0.0 2;
> 0.0 0.0 2;
> 0.0 0.0 2;
> 0.0 0.0 1;
> 0.0 0.0 3;
> 0.0 0.0 6;
> 0.0 0.0 7]
> 
> ```

Your training data contains only a single sampling point with multiple values. Replace with more sound data and your code works:

```julia
julia> train = Float64[
           1 2 3
           4 5 6
           7 8 9
       ]
3×3 Matrix{Float64}:
 1.0 2.0 3.0
 4.0 5.0 6.0
 7.0 8.0 9.0

julia> t(train, test)
(RadialBasis{Surrogates.var"#1#2", Int64, Vector{Tuple{Float64, Float64}}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Float64, Bool}(Surrogates.var"#1#2"(), 0, [(1.0, 2.0), (4.0, 5.0), (7.0, 8.0)], [3.0, 6.0, 9.0], [1.0, 2.0], [7.0, 8.0], [0.3535533905932738, 0.0, -0.3535533905932738, 6.0], 1.0, false), [3.0939521879919494, 3.0939521879919494, 3.5922131362964587, 3.5922131362964587, 3.5922131362964587, 3.5922131362964587, 3.5922131362964587, 3.5922131362964587])

```
