r=0.02; sigma=0.3; T=1; x=100; K=200; function [res]=f(g) d=prod(size(g)); S_T=zeros(1,d); S_T=x .* exp((r - sigma*sigma/2)*T*ones(1,d)+sigma*sqrt(T)*g); res=exp(-r*T)*max(S_T-K,0); endfunction function res=approx_variance(lambda) Y=f(G).^2 .* exp(-lambda*G+lambda^2/2); res=mean(Y)-mean(f(G))^2; endfunction K=100; lambda=[0.0:0.05:3.0]; z=0; G=grand(1,n,"nor",0,1); for i=[1:prod(size(lambda))] do z(i)=approx_variance(lambda(i)); end; plot2d(lambda,z); K=200; z=0; lambda=[0:0.05:6]; G=grand(1,n,"nor",0,1); for i=[1:prod(size(lambda))] do z(i)=approx_variance(lambda(i)); end; plot2d(lambda,z);