''' 首先我声明采用原来这个博主的模型,他代码很干净,感谢!被我改的有点不好意思。 https://github.com/HongzoengNg/KMVmodel 原来的博主NLFG是他自己定义的模块,我取出来函数直接用了 针对原来的网络文档我做了以下修改,单一我采用读取csv文件,将Ve/D/ThetaE/r 五个数值放入 另外由于没有长期负债,因此我用D作为流动负债,D_long是长期负债=0,实际情况可能需要再csv文件再增加一列,后期优化 输出为了检查模型方便,我采用屏幕打印方式,后期可以建立一个文件,把读到的数据append到文件中 输入为了检查模型方便,我把数据读取到内存中,如果以后数据量大,博主的文件读取方式更加合理 还有对DD_mat >1.67的解释,我不理解,我注释了,后期研究一下为啥 原始模型中对d1没有thetaA的除法,我修改了d1,经过确认,这个版本比原来博主那个更好些。 ''' from numpy import * import numpy as np import math from scipy.optimize import fsolve import pandas as pd import os # import NLFG import scipy.stats as stats import matplotlib.pyplot as plt def N(x): #求导数的函数 return stats.norm.cdf(x) def KMV_f(Ve,ThetaE,D,r,t=1): #计算的核心模块 Ve=float(Ve) ThetaE=float(ThetaE) D=float(D) r=float(r) t=float(t) def