全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
12922 20
2013-09-01
本人初入matlab,现在做论文,需要用到KMV模型里面求解违约距离的,所以要用到非线性方程组求解上市公司资产价值VA和它的波动率σA
原方程关系式如下:
未命名2.jpg
已知

a(1)=E即公司股权的价值; a(2)=DB即违约距离;a(3)=σE上市公司股权的波动率。

求解

x(1)=VA;x(2)=σA

%首先新建函数


function F= myfun(x)
a(1)=4.489850237*(10^9);a(2)=0.99633839*(10^9);a(3)=0.474561615;
a=[a(1);a(2);a(3)];
F=[a(1)-x(1)*normcdf((log(x(1)/a(2))+0.025+x(2)*x(2)/2)/x(2))+a(2)*(exp(-0.025))*normcdf((log(x(1)/a(2))+0.025-x(2)*x(2)/2)/x(2));x(1)*x(2)*normcdf((log(x(1)/a(2))+0.025+x(2)*x(2)/2)/x(2))-a(1)*a(3)];

然后在命令窗口里面:
>> x0=[5;0.4];options=optimset('display','iter');
>> [x,fval]=fsolve(@myfun,x0,options)

结果是:
                                                   Norm of      First-order   Trust-region
Iteration  Func-count     f(x)          step         optimality    radius
     0          3          2.46987e+019                             0               1
No solution found.
fsolve stopped because the problem appears regular as measured by the gradient,
but the vector of function values is not near zero as measured by the
default value of the function tolerance.
x =
    5.0000
    0.4000
fval =
  1.0e+009 *
    4.4899
   -2.1307

这个结果本来就有点奇怪,而且试了几次发现他解出来的x的结果总是等于设置的初值。我用的是MATLAB(R2010b),由于10月就要交论文初稿了,这个计算涉及我的基础数据的获得,求不出来后面也没法进行下去,有点着急,求助大神,麻烦帮我看一下,前面编写代码的过程是不是有什么错误,本人感激不尽!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-9-2 22:24:09
我用EXCEL解出:
X1=5,461,588,063
X2=39.01273104%
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-9-2 23:12:38
TimeT 发表于 2013-9-2 22:24
我用EXCEL解出:
X1=5,461,588,063
X2=39.01273104%
多谢解答,这结果看起来靠谱多了。麻烦问一下,excel求解是用的 规划求解 吗?(之前在网上看到 规划求解 好像可以解方程,但是我用的03的excel貌似找不到规划求解。)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-9-2 23:38:21
小雅要加油 发表于 2013-9-2 23:12
多谢解答,这结果看起来靠谱多了。麻烦问一下,excel求解是用的 规划求解 吗?(之前在网上看到 规划求解 ...
可以用SOLVER(规划求解)。不过,我试着用SOLVER(规划求解)解你的题,但是结果似乎精度不够高(没我给你的解的精度高),当然其实精度不必要求很高,本来就是估计么。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-9-3 14:19:05
TimeT 发表于 2013-9-2 23:38
可以用SOLVER(规划求解)。不过,我试着用SOLVER(规划求解)解你的题,但是结果似乎精度不够高(没我给 ...
那你第一次给的解(精度高些的)是用什么解的?不是规划求解的话。如果方便的话,能说的具体些吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-9-3 23:48:42
小雅要加油 发表于 2013-9-3 14:19
那你第一次给的解(精度高些的)是用什么解的?不是规划求解的话。如果方便的话,能说的具体些吗?
那第一次给的解是:多次试验用不同的SOLVER初始值,以SOLVER来解得到的。有点猜和运气成分。如果直接用SOLVER,不多次尝试得到的精度就不是很高。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群