# Integral matrices with integral inverses using Sherman-Morrison formula - with Julia code

**URL:** <https://discourse.julialang.org/t/integral-matrices-with-integral-inverses-using-sherman-morrison-formula-with-julia-code/83989>\
**Category:** Teaching & Outreach\
**Tags:** linearalgebra, math, matrices\
**Created:** [July 9, 2022, 2:50pm UTC](https://discourse.julialang.org/t/integral-matrices-with-integral-inverses-using-sherman-morrison-formula-with-julia-code/83989 "2022-07-09T14:50:30Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![VinodV](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/vinodv/32/32733_2.png) [@VinodV](https://discourse.julialang.org/u/VinodV)\
**Post date:** [July 9, 2022, 2:50pm UTC](https://discourse.julialang.org/t/integral-matrices-with-integral-inverses-using-sherman-morrison-formula-with-julia-code/83989/1 "2022-07-09T14:50:30Z")

</div>

This blog post is on how to make a square matrix with integer entries so that its inverse contains only integer entries. This kind of matrices might be useful for demonstrating Gaussian-Jordan elimination for solving a linear system without any fractions coming up in between. Generation of linear systems with unimodular coefficient matrix is coded in Julia.  
[Integral matrices with integral inverses using Sherman-Morrison formula](https://forem.julialang.org/vinodv/integral-matrices-with-integral-inverses-using-sherman-morrison-formula-30)  
Can you provide your valuable feedback.

---

<div class="post-metadata">

**Author:** ![rveltz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rveltz/32/2707_2.png) [@rveltz](https://discourse.julialang.org/u/rveltz)\
**Post date:** [July 10, 2022, 11:02am UTC](https://discourse.julialang.org/t/integral-matrices-with-integral-inverses-using-sherman-morrison-formula-with-julia-code/83989/2 "2022-07-10T11:02:37Z")

</div>

are you sure you need to use `global`?

---

<div class="post-metadata">

**Author:** ![VinodV](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/vinodv/32/32733_2.png) [@VinodV](https://discourse.julialang.org/u/VinodV)\
**Post date:** [July 10, 2022, 1:17pm UTC](https://discourse.julialang.org/t/integral-matrices-with-integral-inverses-using-sherman-morrison-formula-with-julia-code/83989/3 "2022-07-10T13:17:09Z")

</div>

If I comment that line #global u,v,p  
the following message comes:

> u = [-3; -2; 4]  
> v = [0; 4; 0]  
> ERROR: LoadError: UndefVarError: u not defined  
> Stacktrace:  
> [1] getVectors  
> @ IntegerMatrices.jl:47 [inlined]  
> [2] getCoefficientMatrix(n::Int64, lim::Int64)  
> @ Main IntegerMatrices.jl:59  
> [3] top-level scope  
> @ IntegerMatrices.jl:118  
> [4] include(fname::String)  
> @ Base.MainInclude .\client.jl:444  
> [5] top-level scope  
> @ REPL[1]:1

---

<div class="post-metadata">

**Author:** ![rveltz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rveltz/32/2707_2.png) [@rveltz](https://discourse.julialang.org/u/rveltz)\
**Post date:** [July 10, 2022, 2:08pm UTC](https://discourse.julialang.org/t/integral-matrices-with-integral-inverses-using-sherman-morrison-formula-with-julia-code/83989/4 "2022-07-10T14:08:44Z")

</div>

you can pass it as parameters

---

<div class="post-metadata">

**Author:** ![VinodV](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/vinodv/32/32733_2.png) [@VinodV](https://discourse.julialang.org/u/VinodV)\
**Post date:** [July 10, 2022, 2:21pm UTC](https://discourse.julialang.org/t/integral-matrices-with-integral-inverses-using-sherman-morrison-formula-with-julia-code/83989/5 "2022-07-10T14:21:56Z")

</div>

like function getVectors(n,lim,u,v,p)?  
What is the advantage?
