我需要对M进行转置,但是每次尝试时,它只会再次返回与M相同的东西。在使用Python时,我有些陌生,所以我看不出问题出在哪里。
我尝试使用不同的代码(例如M.T,M.tranpose等)。我用不同的脚本制作了新的无关的矩阵,以确保M.T能够正常工作,而且它确实可以工作,所以我不明白为什么它在主代码中不起作用。
def integrandtemp(s):
K = 17.5
r = 0.7
x0 = 0.1
t = 5
x = K/(1+((K/x0)-1)*np.exp(-r*s))
dxdK = (x0*x0-x0*x0*np.exp(-r*s))/((x0+K*np.exp(-r*s)-x0*np.exp(-r*s))**2)
dxdr = (K*K*x0*s*np.exp(-r*s)-K*x0*x0*s*np.exp(-r*s))/((x0+K*np.exp(-r*s)-x0*np.exp(-r*s))**2)
dxdx0 = (K*x0+K*K*np.exp(-r*s)-K*x0*np.exp(-r*s)-K*x0+K*x0*np.exp(-r*s))/((x0+K*np.exp(-r*s)-x0*np.exp(-r*s))**2)
M = [dxdK, dxdr, dxdx0]
M = np.array([M])
transpose = M.T
var = 0.16
return (1/var)*M@transpose
F = integrate.quad(integrandtemp, 0, 10)
print(F)
newF = F[0]
print(newF)
F_inv = inv(newF)
没有错误,但是M和M.T返回相同的东西,它们不应该。当我稍后尝试取F的倒数时,确实出现错误(期望方矩阵)。