[問題] 條件問題已回收

看板MATLAB作者 (well)時間16年前 (2010/04/26 01:33), 編輯推噓2(204)
留言6則, 2人參與, 最新討論串1/1
以下為部份code Nrep=1000; b0=90; s0=10; r10(1,1)=0.02; for i=1:Nrep bond(i,1)=b0; end ********************* for i=1:Nrep for j=1:120 bond(i,j+1)=bond(i,j).*(1+r10(1,1))./12); end end ********************* for i=1:Nrep stock(i,1)=s0; end *********************(以下Rss lapse liability rpadd1均已知) for i=1:Nrep for j=1:120 stock(i,j+1)=stock.*Rss(i,j)-lapse(i,j).*liability(i,j).*rpadd1(i,j) end end ********************* 以上為原本code 為求簡化假設Nrep=1 並且假設只算到第7行 假設算出的 bond=[90 91 92 93 94 95 96]; stock=[10 5 3 -1 -3 -4 -5]; 由stock可知在code倒數第3行 stock(i,j+1)=stock.*Rss(i,j)-lapse(i,j).*liability(i,j).*rpadd1(i,j) 後面扣掉的一長串即lapse(i,j).*liability(i,j).*rpadd1(i,j) 為d(1,j)=stock(1,j+1)-stock(1,j) d=[5 2 4 2 1 1] *******問題開始***** for j=1:7 if stock(1,j)<0 stock(1,j)=0; end end %得到stock=[10 5 3 0 0 0 0] ******************** 而bond的部分 一旦stock(1,j)<0 bond開始改變 即在stock(1,j)>=0之前 for i=1:1 for j=1:7 bond(i,j+1)=bond(i,j).*(1+r10(1,1))./12); end end 但在stock(1,j)<0 之後 for i=1:1 for j=1:7 bond(i,j+1)=bond1(i,j).*(1+r10(1,1)./12)- lapse(i,j).*liability(i,j).*rpadd1(i,j); end end *******************************以上可能解釋不夠清楚 以下舉例子 bond =[90 91 92 93 94 95 96] stock=[10 5 3 -1 -3 -4 -5 ] d= [5 2 4 2 1 1 ] 由上可知stock(1,4)<0 因此stock=[10 5 3 0 0 0 0] 而 bond= [90 91 92 b14 b15 b16 b17] b14 b15 b16 b17就是和原來不同的地方 首先b14=93+stock(1,4)=93-1=92 而b15 b16 b17就利用 bond(i,j+1)=bond1(i,j).*(1+r10(1,1)./12)- lapse(i,j).*liability(i,j).*rpadd1(i,j); 就是b15=b14.*(1+r10(1,1)./12)-d4 b16=b15.*(1+r10(1,1)./12)-d5 b17=b16.*(1+r10(1,1)./12)-d6 我想問code要怎麼改才可以算出修改後的bond 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.230.16

04/26 09:21, , 1F
d=diff(stock);
04/26 09:21, 1F

04/26 09:21, , 2F
[ii jj]=find(stock<0);
04/26 09:21, 2F

04/26 09:24, , 3F
bond(jj(1))=bond(jj(1))+stock(jj(1));
04/26 09:24, 3F

04/26 09:24, , 4F
for k=jj(1)+1:length(bond),bond(k)=bond(k-1)*()-d(k-1);
04/26 09:24, 4F

04/26 09:25, , 5F
end
04/26 09:25, 5F

04/26 14:31, , 6F
thank you
04/26 14:31, 6F
文章代碼(AID): #1Br7pX7F (MATLAB)
文章代碼(AID): #1Br7pX7F (MATLAB)