I have implemented the Libor Market Model in Matlab. When I generate a number of paths, I notice that some of them explode. Does anybody have an idea what could cause this?
I already tried solving the problem by decreasing the timestep (up to dt=0.001) in order to reduce the error and also by simulating with the log-Euler scheme instead of the 'normal' Euler. In both cases it did not resolve the problem, since some of the Libor rates paths are still diverging.
Specifics:
I simulate the forward Libor rates under the spot measure, whose dynamics are given by: $$dL_n\left(t\right)=\sigma_n\left(t\right)L_n\left(t\right)\sum_{j=q\left(t\right)}^n \frac{\tau_j \rho_{j,n} \sigma_j\left(t\right)L_j\left(t\right)}{1+\tau_j L_j\left(t\right)}dt + \sigma_n\left(t\right)L_n\left(t\right)dW\left(t\right)$$ where $$L_n\left(t\right):=L\left(t;T_n,T_{n+1}\right),$$ $$\tau_n = T_{n+1}-T_n,$$ $$\sigma_n\left(t\right) = k_n \left[\left(a+b\left(T_n-t\right)\right)e^{-c\left(T_n-t\right)}+d\right],$$ index function $q\left(t\right)$ is defined by $$T_{q\left(t\right)-1}\leq t < T_{q\left(t\right)},$$ $W$ is a Brownian Motion under the spot measure.