如何解决修复 python 上的 Broyden 优化问题?
[8.023027e+06,1.416185e-0.02]
但是在python上实现以下功能时,例如:
def Opt(params):
sigma,Assets = params
Market_cap,Debts,sigma2 = args2
d1 = (np.log(Assets/Debts) + (0.0232 - 0.5*sigma**2))/sigma
d2 = d1 - sigma
Diff1 = Market_cap - (Assets*norm.cdf(d1)-Debts*norm.cdf(d2)*np.exp(-0.0232))
Diff2 = norm.cdf(d1) * sigma * Assets - sigma2 * Market_cap
return Diff2,Diff1
添加参数:
Assets,Market_cap = 4740291,33404048,4740291
sigma2 = 0.02396919
Equity = Market_cap
args2 = [Market_cap,sigma2]
print(Market_cap,sigma2)
sol = optimize.broyden1(Opt,[sigma2,Assets])
Opt(sol)
它返回以下错误:
NoConvergence Traceback (most recent call last)
<ipython-input-480-de3204c1d7f2> in <module>
----> 1 sol = optimize.broyden1(Opt,Assets])
2 Opt(sol)
~/opt/anaconda3/lib/python3.7/site-packages/scipy/optimize/nonlin.py in broyden1(F,xin,iter,alpha,reduction_method,max_rank,verbose,maxiter,f_tol,f_rtol,x_tol,x_rtol,tol_norm,line_search,callback,**kw)
~/opt/anaconda3/lib/python3.7/site-packages/scipy/optimize/nonlin.py in nonlin_solve(F,x0,jacobian,full_output,raise_exception)
345 else:
346 if raise_exception:
--> 347 raise NoConvergence(_array_like(x,x0))
348 else:
349 status = 2
NoConvergence: [1.70805965e+11 4.80094866e+09]
谁能解释一下如何解决它(我尝试重新排列术语但没有结果)
PS:它是 KMV 模型的复制品,用于对信用违约建模。
感谢您的帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。