====== Nash-Cascade ====== The Nash cascade is a sequence of $N$ linear stores in series, each having a residence time of $K$ time units. The resulting mathematical form of the Nash-cascade is: $$h(t) = (t/K)^{N-1}*exp\left(\frac{-t/K}{K*\Gamma(N)}\right)$$ where $h(t)$ is the unit hydrograph in terms of a unit discharge and $\Gamma$ is the gamma function $\gamma(N)=(N-1)!$ for integer values $N$. $N$ can also have rational values. n <- 3 k <- 0.2 ks <- 0.1 kl <- 0.3 x <- seq(0.1,3,by=0.05) y <- 1/(k*gamma(n))*(x/k)^(n-1)*exp(-x/k) plot(x,y,col=2, xlab= " ", ylab="Q", xlim=range(0:3), ylim=range(0:3)) abline( h = seq( 5, 25, 5 ),lty = 2,col = colors()[440]) abline( v = seq( 1, 4, 1 ),lty = 2,col = colors()[440]) curve(1/(ks*gamma(n))*(x/ks)^(n-1)*exp(-x/ks), add = TRUE, col="blue") curve(1/(k *gamma(n))*(x/k )^(n-1)*exp(-x/k ), add = TRUE, col="red") curve(1/(kl*gamma(n))*(x/kl)^(n-1)*exp(-x/kl), add = TRUE, col="green") from pylab import * from scipy import * from math import * from numpy import * N = 5 k = 0.5 t = arange(0.0, 100, 1) def Nash(t,N,k): h = (t/k)**(N-1)*exp((-t/k)/(k*gamma(N))) return h plot(t, Nash(t,N,k)) xtext = xlabel('time') ytext = ylabel('response') setp(xtext, size='medium', name='courier', weight='bold', color='g') setp(ytext, size='medium', name='helvetica', weight='light', color='b') show() Model in R: [[https://thl-pro.shinyapps.io/Nash-Kaskade/#3|Nash-Kaskade mit Shiny/R Studio in HTML]]