度量信用风险的kmv模型中的方程需要用matlab迭代法求解
求A和sigemaA,其他的变量都是已知的,怎么在matlab里编程呢?急求大神解答啊!!
求解kmv模型方程的matlab程序
答案:2 悬赏:0
解决时间 2021-03-09 14:18
- 提问者网友:枫涩帘淞幕雨
- 2021-03-08 22:54
最佳答案
- 二级知识专家网友:啵啵桃汀
- 2021-03-08 23:10
如这表达式S=solve('u*y^2+v*z+w=0','y+z+w=0','y','z')
S.z为关于z的解,再用subs(S.z,'u',2)替换u即可得数值解。。
同样你的方程就可以解了,,
S.z为关于z的解,再用subs(S.z,'u',2)替换u即可得数值解。。
同样你的方程就可以解了,,
全部回答
- 1楼网友:飘零作归宿
- 2021-03-09 00:13
function f=myfun3(x(1),x(2),r,c1,c2,c3)
d1=(log(x(1)/c1)+(r+x(2)^2))/x(2)
f=[x(1)*normcdf(d1,0,1)-exp(-r)*c1*normcdf(d1-x(2),0,1)-c2;normcdf(d1,0,1)*x(1)*x(2)/c2-c3]
clear all
clc
close all
c=xlsread('g:\毕业设计\计算\600684 珠江实业','计算表格','c2:c13');
e=xlsread(以下格式同上,贴子超过发表限制);
f=xlsread();
g=xlsread();
h=1.326+0.53*g;
ve=h.*f+c.*e;
std=xlsread();
ltd=xlsread();
dp=std+0.5*ltd;
sige=xlsread();
rf=xlsread();
%以上我都验证过,都可以成功。
for i=1:12
c1=dp(i); (因为以上数从excel里导进来都是一列一列的,不知道是不是可以这样写。我的数比较多,这里去12个只是试验一下。我就是希望都导进来,最后又能都算出来的可以一起倒回去)
c2=ve(i);
c3=sige(i);
r=rf(i);
a=fsolve(@(x)f,[10000;0.1])
%初值我是随便设的,我也不知道应该是多少。
va(i)=a(1,1)
siga(i)=a(2,1)
end
va
siga
出错信息是:warning: default trust-region dogleg method of fsolve cannot
handle non-square systems; switching to gauss-newton method.
> in fsolve at 232
in kmvmycomputer2 at 21
optimizer appears to be converging to a minimum that is not a root:
sum of squares of the function values is > sqrt(options.tolfun).
try again with a new starting point.
a =
1.0e+004 *
1.0000
0.0000
va =
10000
siga =
0.1000
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯