(十万火急!!!!!!!) 本人matalb学的很差,现在要毕业了,选了一个欧式期权定价有限差分法方向的论文,老师要求用matlab程序实现求解过程,我不会啊!现在粘贴了一个程序,运行了没有结果,求高手帮忙修改一下!
程序如下:
%欧式看跌
s0=40;
k=50;
r=0.1;
T=5/12;
sigma=0.4;
Smax=100;
ds=0.5;
dt=5/2400;
M=round(Smax/ds);
ds=Smax/M;
N=round(T/dt);
dt=T/N;
matval=zeros(M+1,N+1);
vetS=linspace(0,Smax,M+1);
veti=0:N;
vetj=0:M;
matval(:,N+1)=max(k-vetS,0);
matval(1,:)=k*exp(-r*dt*(N-veti));
matval(M+1,:)=0;
a=0.5*(r*dt*vetj-sigma^2*dt*vetj.^2);
b=1+sigma^2*dt*vetj.^2+r*dt;
c=-0.5*(r*dt*vetj+sigma^2*dt*vetj.^2);
for i=N:-1:1
for j=2:M
matval(j,i)=a(j)*matval(j-1,i+1)+b(j)*matval(j,i+1)+c(j)*matval(j+1,i+1);
end
end
jdown=floor(s0/ds);
jup=ceil(s0/ds);
if jdown==jup
price=matval(jdown+1,1);
else
price=matval(jdown+1,1)+(s0-jdown*ds)*(matval(jup+1,1)-matval(jup+1,1))/ds;
end
|