我有在基質中的晶格的值示於圖1:如何用下面的格子樹形式表示我的Matlab矩陣值?
圖1:作爲當前顯示在Matlab我的代碼值的格式
現在我想代表這些值的格子樹形式如圖2所示(注意圖2中的值與圖1中的值不同,圖2僅用於演示目的)。我怎麼能修改我在Matlab代碼纔能有結果,看起來像圖中所示的樹格式2 ?:
圖2:值的格式,因爲我想顯示在我的Matlab的結果
以下是我的代碼:
function [price,BLOV_lattice]=BLOV_general(S0,K,sigma,r,T,nColumn)
%% Constant parameters
del_T=T./nColumn; % where n is the number of columns
u=exp(sigma.*sqrt(del_T));
d=1./u;
p=(exp(r.*del_T)-d)./(u-d);
a=exp(-r.*del_T);
%% Initializing the lattice
Stree=zeros(nColumn+1,nColumn+1);
BLOV_lattice=zeros(nColumn+1,nColumn+1);
%% Developing the lattice
for i=0:nColumn
for j=0:i
Stree(j+1,i+1)=S0.*(u.^j)*(d.^(i-j));
end
end
for i=0:nColumn
BLOV_lattice(i+1,nColumn+1)=max(Stree(i+1,nColumn+1)-K,0);
end
for i=nColumn:-1:1
for j=0:i-1
BLOV_lattice(j+1,i)=a.*(((1-p).*BLOV_lattice(j+1,i+1))+(p.*BLOV_lattice(j+2,i+1)));
end
end
price=BLOV_lattice(1,1);
嗨MarkV:我猜這裏的'A'是'BLOV_lattice'?我試過你的代碼,但它給出了錯誤'? (idx0(i-n + 2):(2 * n-2):(2 * n^2-n))= A(i-(n-1)+ 1,i-(n-1)+1:end);' – Pupil 2011-03-28 02:42:46
什麼是'A'?如果它的'BLOV_lattice',那麼它不一定是正方形我猜。 – Pupil 2011-03-28 03:00:11
我寫了這個假設'A'是方形的。例如,我能做 '[P A] = BLOV_general(10,5,.3,.05,1,20);' 'BLOV = newShape(A);' – MarkV 2011-03-28 03:01:39