smkxyjs
2009-07-08, 22:34
现在要解这个非线性方程组,程序好像错了,请各位大虾指点哪里有错误?
两个方程是
V_E= V_A N(d_1 )-De^(-rt) N(d_2 )=f(V,σ_A,r,D,t)
σ_E=(N(d_1)V_A σ_A)/V_E =g(V,σ_A,r,D,t)
其中
d_1=[ln(V_A/D)+(r+1/2 (σ_A)^2 )t]/(σ_A √t)
d_2=d_1-σ_A √t
V_E:公司股权价值 σ_E:公司股权价值波动率
r:无风险利率 t:债务期限,一般是一年
D:违约点
求未知数:V_A,σ_A。
Matlab程序:
第一个文件 a:
function f=fun(x)
d=118705.48;------d应该是违约点
t=1;----应该债务期限
r=0.02;----应该是无风险利率
e=1568160.00;---应该是公司股权价值
a=0.186;---应该是公司股权价值波动率
d1=(log(x(1)/d)+(x(1)+x(2)/2)^2*t)/x(2)*sqrt(t);
d2=d1-x(2)*sqrt(t);
f(1)=x(1)*normcdf(d1,0,1)-d*exp(-r*t)*normcdf(d2,0,1)-e;
f(2)=(normcdf(d1,0,1)*x(1)*x(2))/e-a;
第二个文件b:
[x,f,h]=fsolve(@a,[100000 0.1])
小女子接触matlab不久,现急用此方程组解决问题,在此求助各位大侠们了~
两个方程是
V_E= V_A N(d_1 )-De^(-rt) N(d_2 )=f(V,σ_A,r,D,t)
σ_E=(N(d_1)V_A σ_A)/V_E =g(V,σ_A,r,D,t)
其中
d_1=[ln(V_A/D)+(r+1/2 (σ_A)^2 )t]/(σ_A √t)
d_2=d_1-σ_A √t
V_E:公司股权价值 σ_E:公司股权价值波动率
r:无风险利率 t:债务期限,一般是一年
D:违约点
求未知数:V_A,σ_A。
Matlab程序:
第一个文件 a:
function f=fun(x)
d=118705.48;------d应该是违约点
t=1;----应该债务期限
r=0.02;----应该是无风险利率
e=1568160.00;---应该是公司股权价值
a=0.186;---应该是公司股权价值波动率
d1=(log(x(1)/d)+(x(1)+x(2)/2)^2*t)/x(2)*sqrt(t);
d2=d1-x(2)*sqrt(t);
f(1)=x(1)*normcdf(d1,0,1)-d*exp(-r*t)*normcdf(d2,0,1)-e;
f(2)=(normcdf(d1,0,1)*x(1)*x(2))/e-a;
第二个文件b:
[x,f,h]=fsolve(@a,[100000 0.1])
小女子接触matlab不久,现急用此方程组解决问题,在此求助各位大侠们了~