0

我正在拼命地想要整合一个矩阵,这是我的第 3 或第 4 种方法。每次我尝试解决错误时,我都会得到一个新错误并卡住。这一次,我得到了错误:

---------------------------------------------------------------------------
PolynomialError                           Traceback (most recent call last)
<ipython-input-20-445ad8aa95c1> in <module>
     25 var = 0.16
     26 A = (1/var)*transpose@M
---> 27 A.integrate((s,0,1))
PolynomialError: 1.0*(6.25000000000002*_t0 + 0.0359195402298851)/(1.0*_t0 + 0.00574712643678161) is not an element of K[_t0, 1/_t0].

我已经查看了有关此错误的所有其他帖子(包括关于余弦的帖子),但没有解决我的错误。我尝试过 np.exp、sym.exp 等。

import sympy
from scipy.integrate import odeint
%matplotlib inline
import matplotlib.pyplot as plt
import scipy.integrate as integrate
from scipy.linalg import inv
from sympy.matrices import Matrix
from sympy.abc import s
from sympy import symbols, diff, exp, log, power


#M = Matrix([[x, y], [1, 0]])
#M.integrate((x, ))

K = 17.5
r = 0.7
x0 = 0.1

dxdK = (x0*x0-x0*x0*sympy.exp(-r*s))/((x0+K*sympy.exp(-r*s)-x0*sympy.exp(-r*s))**2)
dxdr = (K*K*x0*s*sympy.exp(-r*s)-K*x0*x0*s*sympy.exp(-r*s))/((x0+K*sympy.exp(-r*s)-x0*sympy.exp(-r*s))**2)
dxdx0 = (K*x0+K*K*sympy.exp(-r*s)-K*x0*sympy.exp(-r*s)-K*x0+K*x0*sympy.exp(-r*s))/((x0+K*sympy.exp(-r*s)-x0*sympy.exp(-r*s))**2)

M = Matrix([[dxdK, dxdr, dxdx0]])
transpose = M.T
var = 0.16
A = (1/var)*transpose@M
A.integrate((s,0,1))

如前所述,我唯一真正的目标是能够将矩阵 (1/var)*tranpose@M 相对于 s 进行积分。我目前正在尝试解决上述错误,但也愿意接受完全更改代码以便能够集成事物的建议(这就是我提供这么多代码的原因)。我有另一篇关于以前代码的帖子,我不得不尝试整合它,但从来没有得到好的答案。

4

0 回答 0