返回

python-表示具有多个元素的数组的真值不明确的获取错误

发布时间:2022-08-25 23:47:05 345
# node.js

...还有一个建议Use a.any() or a.all().

我是python新手,正在尝试实现sabr模型。我定义了一个具有以下参数的函数:

def haganimpliedvol(a,f,k,B,v,t,p):
    if k != f:
        z = v/a*math.pow(f*k,(1-B)/2)*math.log(f/k)
        xz = math.log((math.sqrt(1-2*p*z+math.pow(z,2))+z-p)/(1-p))
        
        sigma = a/math.pow(f*k,(1-B)/2)*(1 + math.pow(1-B,2)/24* math.pow(math.log(f/k),2)+\
                                        math.pow(1-B,4)/1920* math.pow(math.log(f/k),4))*\
                                        xz*\
                                        (1+(math.pow(1-B,2)/24*math.pow(a,2)/math.pow(f/k,1-B)+1/4*(p*B*v*a)/math.pow(f/k,(1-B)/2)+\
                                           (2-3*math.pow(p,2))/24*math.pow(v,2)))*t
        
    else:
        sigma = a/math.pow(f,1-B)*\
        (1+(math.pow(1-B,2)/24*math.pow(a,2)/math.pow(f,(2-2*B))+\
            1/4*(p*B*a*v)/math.pow(f,1-B)+(2-3*math.pow(p,2))/24*math.pow(v,2)))*t
    
    return(sigma)

现在我定义另一个函数,并调用haganimpliedvol()作用

params = [0.4,0.6,0.1,-0.4]

def objective(params):
    global k,sigma_iv,t,f
    a = params[0]
    B = params[1]
    v = params[2]
    p = params[1]

    for (i,j,k) in zip(k,t,f):
        calc_vols = np.array([haganimpliedvol(a,f,k,B,v,t,p)])
    return(calc_vols)

可以看到,函数中的一些参数如下所示。我想得到一个数组作为输出。然而,我一直在主题行中得到信息。

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(2)
按点赞数排序
用户头像
下一篇
postgresql查询小时分钟和秒 2022-08-25 21:38:27