當前位置:編程學習大全網 - 編程語言 - 模型編程

模型編程

編程如下(不知道別人論文找的對不對,有興趣可以先運行壹下)

Matlab程序:

函數[Va,SigmaVa]=Conv(E,SigmaE,D,r,T)

%計算Va,SigmaVa

key = 0;

pl = 4 * atan(l);

va = E;%va取e為叠代初值。

newVa = Va

SigmaVa = SigmaE%SigmaVa以SigmaE為叠代初值。

對於k=1:100000%叠代SigmaVa

對於j=1:100000%叠代Va

oldVa = newVa

% Va =(E+D * exp(-r * T)* Nd2)/Ndl;

% sigma va = E * sigma E/(E+D * exp(-r * T)* Nd2);

dl=(log(oldva/d)+(r+(sigmava^2)/2)*t)/(sigmava*(t^0.5));

d2=dl-(sigmava*(t^(1/2)));

Ndl=normedf(dl,0,1);

Nd2=normedf(d2,0,1);

fV = old va * Ndl-D * exp(-r * T)* Nd2-E;

dfv=ndl+exp(-dl*dl/2)/((2*pi*t)^0.5*sigmava)-d*exp(-r*t)*exp(-d2*d2/2)/((2*pl*t)^0.5*oldva*sigmava);

如果dfV==0

dfV

暫停;

結束

dV =-fV/dfV;

newVa = old va+dV;%前後的值被認為非常接近,叠代成功。

%newVa

如果newVa==0

奧爾德瓦

紐瓦

暫停;

結束

if(dV/newVa)& lt;樂7 & amp(dV/newVa)>-樂7

打破;

結束

結束

Va = newVa

dl=(log(va/d)+(r+(sigmava^2)/2)*t)/(sigmava*(t^(1/2)));

d2=dl-(sigmava*(t^(l/2)));

Ndl=normedf(dl,0,1);

Nd2=normedf(d2,0,l);%等式的左右之比

diff =(Va * Ndl-D * exp(-r * T)* Nd2)/E;

if diff & lt1-le-5 | diff & gt;1+le-5

assert(' error ');%叠代中的錯誤。

其他

key = key+1;

結束

newSigmaVa = E * SigmaE/(E+D * exp(-r * T)* Nd2);

if((sigma va-newSigmaVa)/newSigmaVa)& lt;樂5 & amp(sigma va-newSigmaVa)/newSigmaVa)& gt;-樂5

打破;

key = key+1;

其他

SigmaVa = newSigmaVa

結束

結束

如果key==2

%e1se

% Va =-1;

% sigma va =-1;

結束

如果不麻煩,請留個郵箱。

我把股票波動率σ,股權價值違約點D,無風險利率R,時間T的數據發給妳,

結果應該是企業資本市值(V)和行業風險(σ)。

謝謝您們。

  • 上一篇:幼兒園小班年級組的教學工作計劃
  • 下一篇:山東嵌入式培訓
  • copyright 2024編程學習大全網