Hello
I’m a high school junior and was recently self-studying linear algebra. I was reading about calculating determinants and the properties of them.
I read that whenever in a determinant, there are 2 similar rows (or columns), then the determinant value must be zero.

I have a habit of trying out all my math in julia too, so I wrote

```
julia> a = [1 2 3 7; 4 1 7 2; 5 7 1 9; 1 2 3 7]
4×4 Array{Int32,2}:
1 2 3 7
4 1 7 2
5 7 1 9
1 2 3 7
julia> det(a)
4.168280304250871e-14
```

I’m surprised why didn’t it return zero but a very small number (maybe tending towards zero ?)

Thanks

Sukera
March 14, 2020, 9:08am
#2
```
julia> a
4×4 Array{Int64,2}:
1 2 3 7
4 1 7 2
5 7 1 9
1 2 3 7
julia> det(a)
0.0
julia> a = convert(Array{Int32}, a)
4×4 Array{Int32,2}:
1 2 3 7
4 1 7 2
5 7 1 9
1 2 3 7
julia> det(a)
0.0
julia> versioninfo()
Julia Version 1.3.1
Commit 2d5741174c (2019-12-30 21:36 UTC)
Platform Info:
OS: Linux (x86_64-linux-gnu)
CPU: Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-6.0.1 (ORCJIT, skylake)
Environment:
JULIA_NUM_THREADS = 4
```

What julia version are vou on?

Although (like @Sukera ) I cannot replicate this using a recent Julia version, note that floating point arithmetic has some special properties you should be aware of .

If you are following along the calculations in a linear algebra text, you may want to convert to a type that is closed under the operations required for the determinant, eg

```
julia> det(Rational.(a))
0//1
```

(Incidentally, I would recommend textbooks that place less emphasis on the determinant ).

This is weird
Im on 1.0.4 the LTS version

I tried with numpy still didn’t get zero.

What does `julia> versioninfo()`

say?
Do you get the same result if you first restart your computer?

Here it is

```
julia> versioninfo()
Julia Version 1.0.4
Commit 38e9fb7f80 (2019-05-16 03:38 UTC)
Platform Info:
OS: Linux (i686-pc-linux-gnu)
CPU: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
WORD_SIZE: 32
LIBM: libopenlibm
LLVM: libLLVM-6.0.0 (ORCJIT, skylake)
```

Mason
March 14, 2020, 11:16am
#7
I find it a little surprising that Julia converts to floating point here given that the input array was full of `Int`

s.

There’s no efficient way to compute exact integer determinants.

4 Likes