Я хочу, чтобы вычислитьИнтеграл normcdf в Matlab
$$e_0=r*K \int_{0}^{T} \exp{(-rt)} N\bigg(\frac{\ln{(B_t/S_0)}-e_2 t}{\sigma \sqrt{t}} \bigg)dt,$$
где
$$e_2=r-\frac{\sigma^2}{2},$$
и
$$N(x)=\int_{0}^{x} \frac{\exp{(-z^2/2)}}{\sqrt{2\pi}}dz$$
является стандартной нормальной кумулятивной функции распределения или normcdf в Matlab.
Даны r, K, T, B_t, S_0,
и sigma
. Вот мой код:
K=90.054
r=0.075
sigma=0.2964203
T=1
Bt=66.0377
S0=206.67
syms t
e0=r*K*int(exp(-r*t)*normcdf((log(Bt/S0)-(r-(sigma^2)/2)*t)/(sigma*sqrt(t))),t,0,T)
Однако, когда я запускаю его, результат по-прежнему в переменном т:
e0 =
(7604384265810425*int((erfc((9007199254740992*2^(1/2)*((279831188732951*t)/9007199254740992 + 642268209798613/562949953421312))/(5339833410500203*t^(1/2)))*exp(-(3*t)/40))/2, t, 0, 1))/1125899906842624
Первая формулой является ранним осуществлением премии американской оферты Карр и др бумаги и, следовательно, результат должен быть числовым, но результат, который я получил, - нет. Любая идея, что я сделал неправильно?
Да, спасибо за ответ! Обычно я использую int, потому что он хорошо работает в Matlab 2010 в моем ноутбуке, но я только что установил Matlab 2015 на своем новом ноутбуке. –