# Tsit5 - What is it?

**URL:** <https://discourse.julialang.org/t/tsit5-what-is-it/88237>\
**Category:** New to Julia\
**Tags:** ode\
**Created:** [October 4, 2022, 3:08pm UTC](https://discourse.julialang.org/t/tsit5-what-is-it/88237 "2022-10-04T15:08:47Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![yoshi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yoshi/32/38259_2.png) [@yoshi](https://discourse.julialang.org/u/yoshi)\
**Post date:** [October 4, 2022, 3:08pm UTC](https://discourse.julialang.org/t/tsit5-what-is-it/88237/1 "2022-10-04T15:08:47Z")

</div>

I did some poking around – I think this is just a particular implementation of runga-kutta 4(5). Is this correct?

---

<div class="post-metadata">

**Author:** ![stillyslalom](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stillyslalom/32/45687_2.png) [@stillyslalom](https://discourse.julialang.org/u/stillyslalom)\
**Post date:** [October 4, 2022, 3:27pm UTC](https://discourse.julialang.org/t/tsit5-what-is-it/88237/2 "2022-10-04T15:27:11Z")

</div>

Yes, see the (brief) [docs](https://diffeq.sciml.ai/stable/solvers/ode_solve/#Explicit-Runge-Kutta-Methods). According to the underlying [paper](https://www.sciencedirect.com/science/article/pii/S0898122111004706) and Chris’s benchmarks, it hits a sweet spot in precision and speed for many non-stiff problems using RK4(5).

---

<div class="post-metadata">

**Author:** ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)\
**Post date:** [October 4, 2022, 3:32pm UTC](https://discourse.julialang.org/t/tsit5-what-is-it/88237/3 "2022-10-04T15:32:17Z")

</div>

It’s a newer [tableau](https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Explicit_Runge.E2.80.93Kutta_methods) of coefficients for Runge–Kutta [by Tsitouras (2011)](https://www.sciencedirect.com/science/article/pii/S0898122111004706) that is more efficient than older versions like Dormand–Prince, as [reviewed here by @ChrisRackauckas](https://www.stochasticlifestyle.com/comparison-differential-equation-solver-suites-matlab-r-julia-python-c-fortran/).

---

<div class="post-metadata">

**Author:** ![mcmuffin6o](https://avatars.discourse-cdn.com/v4/letter/m/9f8e36/32.png) [@mcmuffin6o](https://discourse.julialang.org/u/mcmuffin6o)\
**Post date:** [July 25, 2024, 8:50pm UTC](https://discourse.julialang.org/t/tsit5-what-is-it/88237/4 "2024-07-25T20:50:54Z")

</div>

I just wanted to note that one of the nice things about Tsit5 over Dormand-Prince is that it gives you a fourth-order interpolant for free in case you need dense output! This can be a huge boost to performance if you want to specify the output times of the integration procedure.

---

<div class="post-metadata">

**Author:** ![njacki](https://avatars.discourse-cdn.com/v4/letter/n/e8c25b/32.png) [@njacki](https://discourse.julialang.org/u/njacki)\
**Post date:** [September 19, 2024, 10:24am UTC](https://discourse.julialang.org/t/tsit5-what-is-it/88237/5 "2024-09-19T10:24:44Z")

</div>

(I probably shouldn’t dig up an old post, but my question is related)

I wanted to implement the method myself (or any other RK with a tableau) as an exercise. However, I struggled a bit with this one.

There are two possibilities to build the approximation, either with order p using the factors b\_i or p-1 using the factors \hat{b}\_i. However, when I extract the second factors from the paper  
`bhat = Float64[0.001780011052226, 0.000816434459657, -0.007880878010262, 0.144711007173263, -0.582357165452555, 0.458082105929187, 1.0/66.0]`  
I see that the sum is not equal to 1 but rather 2/66; hence it cannot be used to build y\_{n+1}.

Is there somewhere a trick that I missed? This is kind of weird, as in the algorithm they describe to find those coefficients, there is the unity constraint.

---

<div class="post-metadata">

**Author:** ![ovanvincq](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ovanvincq/32/31869_2.png) [@ovanvincq](https://discourse.julialang.org/u/ovanvincq)\
**Post date:** [September 19, 2024, 11:13am UTC](https://discourse.julialang.org/t/tsit5-what-is-it/88237/6 "2024-09-19T11:13:42Z")

</div>

I think that bhat is used to calculate the difference between the two orders.

The sum of bhat should be null and the last coefficient is -1.0/66.0

You can see the coefficients used in `OrdinaryDiffEq.jl` [here](https://github.com/SciML/OrdinaryDiffEq.jl/blob/b0f957c39047582bc5b822ca016aeb83fc807d06/lib/OrdinaryDiffEqTsit5/src/tsit_tableaus.jl)
