📄 complete.m
字号:
function value=complete(S0,K,T,r,delta,v)q=2*r/(v^2); q2=2*(r-delta)/(v^2);xmin=-5; xmax=5;m=100;vmax=m;dx=(xmax-xmin)/m; dtau=(0.5*v^2*T)/vmax;lambda=dtau/(dx^2); alpha=0.5*lambda;for i=1:m w(i)=W((xmin+i*dx),q2); V(i)=w(i);endfor j=1:m tau=dtau*j; b(1)=w(1)+0.5*lambda*(w(2)-2*w(1)+g((xmin+dx),(tau-dtau),q,q2))+0.5*lambda*g((xmin+dx),tau,q,q2); for i=2:m-2 b(i)=w(i)+0.5*lambda*(w(1+i)-2*w(i)+w(i-1)); end b(m-1)=w(m-1)+0.5*lambda*(g(xmax,(tau-dtau),q,q2)-2*w(m-1)+w(m-2))+0.5*lambda*g((xmin+dx*m),tau,q,q2); Error=-10^(-5); sum=1; while sqrt(sum)>Error sum=0; Error=10^(-5); Vnew(1)=0; for i=1:m-1 rho=(b(i)+alpha*(Vnew(i)+V(i+1)))/(1+2*alpha); Vnew(i+1)=max((V(i)+(rho-V(i))),g((xmin+dx*i),tau,q,q2)); sum=sum+(Vnew(i+1)-V(i))^2; end for i=1:m-1 V(i)=Vnew(i+1); end end for i=1:m-1 w(i)=V(i); endend x0=log(S0/K);j=fix((x0-xmin)/dx);value = K*exp(-0.5*(q2-1)*x0)*exp(-(0.25*(q2-1)^2+q)*0.5*v^2*T)*w(j);function [w2]=W(x,q2) w2=max((exp(0.5*x*(q2+1))-exp(0.5*x*(q2-1))),0);function [g2]=g(x,tau,q,q2) g2=exp(0.25*tau*((q2-1)^2+4*q))*max((exp(0.5*x*(q2+1))-exp(0.5*x*(q2-1))),0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -