Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中如何使用odeint的解决方案作为变量?_Python_Numpy_Scipy_Odeint - Fatal编程技术网

在Python中如何使用odeint的解决方案作为变量?

在Python中如何使用odeint的解决方案作为变量?,python,numpy,scipy,odeint,Python,Numpy,Scipy,Odeint,所以基本上我用odeint来解一个ode,我想用它作为另一个方程的变量(这个方程实际上是我最后的解) 所以这里我解第一个常微分方程(我的代码实际上是解一个常微分方程矩阵,但同样的问题仍然适用) 其中my f()函数的定义如下: def f(y, t, dh, v): """Returns dh/ds with initial values plugged in""" # Create vector for solved DEs solvedEqs = range(len(dh)) #

所以基本上我用odeint来解一个ode,我想用它作为另一个方程的变量(这个方程实际上是我最后的解)

所以这里我解第一个常微分方程(我的代码实际上是解一个常微分方程矩阵,但同样的问题仍然适用)

其中my f()函数的定义如下:

def f(y, t, dh, v):
"""Returns dh/ds with initial values plugged in"""
# Create vector for solved DEs    
solvedEqs = range(len(dh))

# Establish a dictionary for values to substitue
subValues = {}
for i in range(0,len(v)):
    subValues.update({v[i]:y[i]}) #add {symbol:value} to dictionary

# Set each element of dh with initial values subed in to return array
for i in range(0,len(solvedEqs)):
    solvedEqs[i] = dh[i].subs(subValues)
return solvedEqs
所以在所有这些好东西之后,我得到了一个数组或数字,点,我可以绘制来显示解决方案,等等。但我的问题是,我需要使用这个解决方案(为了简单起见,假设它是一个,而不是解的矩阵)来插入到我实际试图找到的函数中:

Hs = H0
for i in range(1,order): # length of order
    Hs += ((bernoulli(i-1)*1.)/math.factorial(i-1))*(adjointOp(H0,Omeg,i))
其中,bernoulli()只是一个返回该阶bernoulli数的函数,而adjointOp()只是给定阶的伴随算子(换向器关系)


我首先在Mathematica中这样做,Omeg的解决方案是一个插值函数,但它只是作为一个变量工作,然后乘以等等。然而,我不知道如何在python中处理这种情况

你的具体问题是什么?我不确定我是不是很笨,但你是否尝试用python解决这个问题并遇到了问题?我认为你可以使用插值,但请先发布
adjiuntOp
的源代码,因为它使用了
odeint
的结果。
Hs = H0
for i in range(1,order): # length of order
    Hs += ((bernoulli(i-1)*1.)/math.factorial(i-1))*(adjointOp(H0,Omeg,i))