matlab解kmv方程,急:Matlab求解KMV模型,使用fsolve函数出现问题
最近也在做kmv模型
参考了你的和贴吧的改了一下代码,可是初始值设置总是有问题,参考了郑老师的初始值设置[1,1]可以搜索后,再改了以下代码,可是出的结果就只有1,1,但是用郑老师的代码改的话,出的结果就没有问题。
你的和贴吧的改的
clear all
clc
Ve=xlsread('C:\Users\lenovo\Desktop\kmv.xls','G2:G31');%股权价值
k=xlsread('C:\Users\lenovo\Desktop\kmv.xls','H2:H31');%负债总额
sigmae=xlsread('C:\Users\lenovo\Desktop\kmv.xls','F2:F31');%股权波动率
R=xlsread('C:\Users\lenovo\Desktop\kmv.xls','K2:K31');%利率
t =1;
result=zeros(30,2);%va和sigma
for i=1:30
VE=Ve(i);
K=k(i);
sigmaE=sigmae(i);
r =R(i);
x0=[1,1];%按X的初始值搜索
a=fsolve(@(X)Y(X,K,r,VE,sigmaE,t),x0);
result(i,1)=a(1)
result(i,2)=a(2)
end
调用的函数Y.m
function Y=Y(X,K,r,VE,sigmaE,t)
VA=X(1);
sigmaA=X(2);
d1=(log(VA/K)+(r+1/2*(sigmaA)^2)*t)/(sigmaA*sqrt(t));% d1
d2=d1-sigmaA *sqrt(t);% d2
Y=[VA*normcdf(d1)-K*exp(-r*t)*normcdf(d2)-VE;VA*normcdf(d1)*sigmaA/VE-sigmaE];%两个方程I
end
跟用郑老师书后给的代码改的出的结果怎么就不一样
%test KMV
%r: risk-free rate
r=0.015;
%T: Time to expiration
T=1;%输入年数
%EquityTheta: volatility of Theta value
equitytheta=xlsread('C:\Users\lenovo\Desktop\kmv.xls','F2:F31');
%AssetTheta: volatility of asset
%E:Equit maket value
e=xlsread('C:\Users\lenovo\Desktop\kmv.xls','G2:G31');
%负债总额
d=xlsread('C:\Users\lenovo\Desktop\kmv.xls','H2:H31');
result=zeros(30,2);%va和sigma
for i=1:30
D=d(i);
E=e(i);
EquityTheta=equitytheta(i)
%to compute the Va and AssetTheta
[Va,AssetTheta]=KMVOptSearch(E,D,r,T,EquityTheta)
result(i,1)=Va
result(i,2)=AssetTheta
end
调用的两函数
function F=KMVfun(EtoD,r,T,EquityTheta,x)
d1=( log(x(1)*EtoD)+(r+0.5*x(2)^2)*T ) / ( x(2)*sqrt(T));
d2=d1-x(2)*sqrt(T);
F=[ x(1)*normcdf(d1)-exp(-r*T)*normcdf(d2)/EtoD-1;
normcdf(d1)*x(1)*x(2)-EquityTheta];
end
function [Va,AssetTheta]=KMVOptSearch(E,D,r,T,EquityTheta)
%KMVOptSearch
%code by ariszheng@gmail.com
EtoD=E/D;
x0=[1,1];%搜素初始点
VaThetaX=fsolve(@(x) KMVfun(EtoD,r,T,EquityTheta,x), x0);
Va=VaThetaX(1)*E;
AssetTheta=VaThetaX(2);
% F=KMVfun(EtoD,r,T,EquityTheta,x)
end
matlab解kmv方程,急:Matlab求解KMV模型,使用fsolve函数出现问题相关推荐
- matlab解坐标方程,用MATLAB求解亥姆霍兹方程的方法
MATLAB求解偏微分方程的方法是数值解法,软件自带有求解亥姆霍兹方程的例程,在命令行中输入edit PDEDEMO2查看代码,在该例程里边界条件是一个带方形孔的单位圆. 最终得到的结果是: 椭圆型偏 ...
- matlab解整数方程,用matlab怎样解方程组的整数解
共回答了18个问题采纳率:83.3% 程序: clear; clc; %a+b+c+d+e=10 %290a+470b+720c+1060d+1490e=6000 e0 = floor(6000/14 ...
- matlab求解复杂方程,MATLAB解复杂方程并求解
MATLAB解复杂方程并求解0 现有三个等式,两个不等式(约束条件),想要求W/680的最小值,求助大神,应该怎么算呢?等式(三个)①(23086*Q1^2)/1000+(19648*Q9^2)/10 ...
- matlab在解线性方程组的应用,matlab解线性方程组线性方程组及MATLAB应用
matlab解线性方程组线性方程组及MATLAB应用 1matlab 解线性方程组 线性方程组及 MATLAB 应用数值实验 线性方程组与 MATLAB 应用王1.实验目的:理解矩阵的范数与条件数. ...
- MATLAB解隐函数方程时符号表达式转化为数值的方法-用vpa函数
今天在解决一个小问题时,遇到解隐函数方程,中间涉及一个解的传递问题,才好好研究了一下 syms这个语句的一些语法规则,最终用vpa这个函数解决了符号表达式到double数值的转化. syms是符号函数 ...
- matlab riccati 方程,matlab解riccati方程
Riccati 方程求解 ? ? 前三个问题将介绍解析解与数值解,后一 个属于非... 矩阵的化零空间或基础解系计算,支持符号运算 求解连续 Lyapunov 方程.Sylvester 方程的数值解 ...
- matlab解对流方程初值问题,对流方程——偏微分方程的数值解法
用迎风格式解对流方程 function u = peYF(a,dt,n,minx,maxx,M) format long; h = (maxx-minx)/(n-1); if a>0 for j ...
- matlab解欠定方程组,matlab解欠定方程组
0000 0.7408 0.4493 0.3329 0.2019 0.1003 ③欠定方程(系统中未知数的个数比方程式的个数多) 欠定方程的解都不唯一,Matlab会计算一组构成通解的 基解..... ...
- 直接法 matlab,解线性方程组直接方法matlab用法.doc
解线性方程组直接方法matlab用法 在这章中我们要学习线性方程组的直接法,特别是适合用数学软件在计算机上求解的方法. 2.1 方程组的逆矩阵解法及其MATLAB程序 2.1.3 线性方程组有解的判定 ...
- python解非线性方程组_python scipy求解非线性方程的方法(fsolve/root)
使用scipy.optimize模块的root和fsolve函数进行数值求解线性及非线性方程,下面直接贴上代码,代码很简单 from scipy.integrate import odeint imp ...
最新文章
- ICCV Neural Architects Workshop - 对话深度学习大咖
- 验证多个Filter过滤一个资源时执行顺序
- [Stardust]星尘分布式全链路监控
- jquery 选择器之children与find
- java 递归_两篇文章带你了解java基础算法之递归和折半查找
- sklearn.preprocessing.Imputer
- seo代码优化工具_谁是「南京SEO」搜索引擎网站关键词排名优化专家
- 天正的计算机快捷命令大全,新手必看-史上最全CAD快捷键大全
- RMII RGMII MII GMII个人总结
- 爬取某类网站并生成csv文件(人民邮电出版社书籍信息)
- 2016年北京邮电大学计算机考研机试试题及答案
- QQ被盗后被敲诈500元怎么办
- 针对win2003服务器的恶意代码攻击
- 短信发送接口(短信宝)
- 香草冰淇淋和代码调试
- Django——关于related查找
- requests使用splash
- 南大通用事务型数据库GBase 8s斩获2020年中国国际金融展“金鼎奖”
- 基于单片机的电话拨号系统设计(#0472)
- win安装nacos