matlab编程问题-循环语句怎么加?
最近在做关于KMV的模型,其中测度EDF需要用matlab求解,样本量100多个,现有的程序只能跑单个数据,不知该如何设计循环语句,然后一次性跑完并输出所有结果,请各位学...
最近在做关于KMV的模型,其中测度EDF需要用matlab求解,样本量100多个,现有的程序只能跑单个数据,不知该如何设计循环语句,然后一次性跑完并输出所有结果,请各位学霸赐教。现有程序如下(每个样本都对应一套SD、LD、PriceTheta和E的赋值,共107个样本),十分感谢:
子程序1.KMVfun.m如下:
function F=KMVfun(EtoD,r,T,EquityTheta,x)
d1=(log(x(1)*EtoD)+(r+0.5*x(2)^2*T))/x(2);
d2=d1-x(2);
F=[x(1)*normcdf(d1)-exp(-r)*normcdf(d2)/EtoD-1;normcdf(d1)*x(1)*x(2)-EquityTheta];
end
2.子程序2.KMVOptSearch.m如下:
function [Va,AssetTheta]=KMVOptSearch(E,D,r,T,EquityTheta)
EtoD=E/D;
x0=[1,1];
VaThetax=fsolve(@(x)KMVfun(EtoD,r,T,EquityTheta,x),x0);
Va=VaThetax(1)*E;
AssetTheta=VaThetax(2);
end
3.主程序
%test KMV
%r: risk-free rate
r=0.0425;
%T: Time to expiration
T=2;%输入年数
%DP:Defaut point
%SD: short debt, LD: long debt
SD=59632719.12;%输入
LD=0;%输入
%计算违约点
%DP=SD+0.5*LD;
DP=SD+0.5*LD;
%D:Debt maket value
D=DP;%债务的市场价值,可以修改
%theta: volatility
%PriceTheta: volatility of stockprice
PriceTheta=0.459;%(输入)
%EquityTheta: volatility of Theta value
EquityTheta=PriceTheta;
%AssetTheta: volatility of asset
%E:Equit maket value
E=2550253780;%(输入)
%Va: Value of asset
%to compute the Va and AssetTheta
[Va,AssetTheta]=KMVOptSearch(E,D,r,T,EquityTheta)
%计算违约距离
DD=(Va-DP)/(Va*AssetTheta)
%计算违约率
EDF=normcdf(-DD) 展开
子程序1.KMVfun.m如下:
function F=KMVfun(EtoD,r,T,EquityTheta,x)
d1=(log(x(1)*EtoD)+(r+0.5*x(2)^2*T))/x(2);
d2=d1-x(2);
F=[x(1)*normcdf(d1)-exp(-r)*normcdf(d2)/EtoD-1;normcdf(d1)*x(1)*x(2)-EquityTheta];
end
2.子程序2.KMVOptSearch.m如下:
function [Va,AssetTheta]=KMVOptSearch(E,D,r,T,EquityTheta)
EtoD=E/D;
x0=[1,1];
VaThetax=fsolve(@(x)KMVfun(EtoD,r,T,EquityTheta,x),x0);
Va=VaThetax(1)*E;
AssetTheta=VaThetax(2);
end
3.主程序
%test KMV
%r: risk-free rate
r=0.0425;
%T: Time to expiration
T=2;%输入年数
%DP:Defaut point
%SD: short debt, LD: long debt
SD=59632719.12;%输入
LD=0;%输入
%计算违约点
%DP=SD+0.5*LD;
DP=SD+0.5*LD;
%D:Debt maket value
D=DP;%债务的市场价值,可以修改
%theta: volatility
%PriceTheta: volatility of stockprice
PriceTheta=0.459;%(输入)
%EquityTheta: volatility of Theta value
EquityTheta=PriceTheta;
%AssetTheta: volatility of asset
%E:Equit maket value
E=2550253780;%(输入)
%Va: Value of asset
%to compute the Va and AssetTheta
[Va,AssetTheta]=KMVOptSearch(E,D,r,T,EquityTheta)
%计算违约距离
DD=(Va-DP)/(Va*AssetTheta)
%计算违约率
EDF=normcdf(-DD) 展开
2015-03-25
展开全部
“样本量100多个”体现在哪里?
换句话说,主程序里需要进行循环的量是什么?输出是那个变量,要求什么形式?
换句话说,主程序里需要进行循环的量是什么?输出是那个变量,要求什么形式?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询