I have run the code on octave which gives the following plot.
When I tried the same code on Matlab , there was a dimension mismatch on line starting with "d1" . I think this is because of broadcasting. Anyone knows how to fix it ?
m=6; n=61; S0=70;S1=130; K=100;r=.12; T=1.0; sigma=0.10;time=transpose(linspace(T,0,m))S=linspace(S0,S1,n); d1=(log(S/K)+(( r + (sigma.^2)/2)*(T-time)))./(sigma*sqrt(T - time)); %(problem in this line)
d2=(log(S/K)+(( r - (sigma.^2)/2)*(T-time)))./(sigma *sqrt(T - time)); part1=bsxfun ( @times , normcdf ( d1 ) , S ) ;part2=bsxfun ( @times , K *exp( - r *( T - time ) ) , normcdf ( d2 ) ) ;VC = part1 - part2plot(S,VC)
Best Answer