我想做一个函数并计算它的雅可比矩阵,它帮助我用sympy来推导,但现在我不能像以前那样用numpy来计算。我不知道如何把雅各比的每一个条目都传递给一个数组。因为Jacobian[1][1]的类型是sympy.core.add.add,而值为numpy.ndarray时的类型是sympy.core.add.add。但我也不知道如何评价
import numpy as np
import sympy as sp
from string import ascii_lowercase as asi
vari=list(asi)[0:10]
var=sp.symbols(vari,real=True)
Funcion=[]
for i in np.arange(1, len(var)+1,1):
if i==1:
Funcion=Funcion+[(3-2*var[0])*var[0]-2*var[1]+1]
elif i!=1 and i!=10:
Funcion=Funcion+[(3-2*var[i-1])*var[i-1]-2*var[i-2]-2*var[i]+1]
elif i==10:
Funcion=Funcion+[(3-2*var[9])*var[9]-var[8]+1]
Jacobiano=[]
Gradiente=[]
for i in np.arange(0, len(var),1): #varia la funcion
Gradiente=[]
for j in np.arange(0, len(var),1): #varia la fila (lo mato a derivadas)
Gradiente=Gradiente+[sp.diff(Funcion[i],var[j])]
Jacobiano=Jacobiano+[Gradiente]
目前没有回答
相关问题 更多 >
编程相关推荐