I'm having a difficulty with calibrating the drift of the continuous version of the BDT to the yield-curve.
I have first calibrated a discrete constant-volatility BDT (tree) to a set of interest-rate derivatives, this gave me a reasonable value of the log volatility [$]\sigma(t)=\sigma = 0.59[$].
I, however, need a continuous version of the BDT because I want to use it together with a continuous default intensity process to price defaultable claims using PDE methods. In my case, the log of the short rate in BDT follows
[$]d\ln r(t) = \theta (t)dt + \sigma dW(t)[$],
where [$]\theta(t)[$] is a deterministic function of time ensuring a perfect fit to the yield curve. What I did to find [$]\theta (t),t \in [0,{T^*}][$] is that I constructed a PDE for a bond price [$]B(t,{T^*}) = B(t,{T^*},x)[$], where [$]x = \ln r[$], which is
[$]\frac{{\partial B}}{{\partial t}} + \theta (t)\frac{{\partial B}}{{\partial x}} + \frac{1}{2}{\sigma ^2}\frac{{{\partial ^2}B}}{{\partial {x^2}}} - {e^x}B = 0[$] and given [$]\sigma[$] is known I iteratively looked for [$]\theta ({t_i})[$] (where [$]i[$] is an index of a time horizon) such that the PDE result matches the observed bond price in every time horizon [$]t_i[$]. (This is done in the same way as bootstrapping, i.e. I'm using previous values of [$]\theta(t),t<t_i[$] as fixed inputs and calculate only the value of [$]\theta(t_i)[$] that relates to [$]t_i[$] by matching the observed zero bond price, maturing at [$]t_i[$].)
I, however, get very wild values of [$]\theta(t)[$], reaching even the value 100 which I suspect is a too high number. I would be happy if someone could give me a hint about how to calibrate the [$]\theta(t)[$] appropriately so that its values don't explode.



