我尝试使用solve_ivp内置函数和Jacobian矩阵。 我收到以下错误消息:
UserWarning: The following arguments have no effect for a chosen solver:
jac
. .format(", ".join("{}
".format(x) for x in extraneous)))
我不确定这是语法错误还是雅可比矩阵错误。在
我的一些代码
def MyIntFun(t,y):
return DivWatFlux(y,t,wPar, sPar, RPar,dzIN, dzN)
def jacfunc(t,y):
jac = Richardsmatrix(y, t, wPar, sPar, RPar, dzIN, dzN)
return jac
mt.tic()
hwODE = spi.solve_ivp(MyIntFun, [tout[0], tout[-1]], hw0, method='RK45',
vectorized=True,rtol=1e-4, jac=jacfunc)
mt.toc()
这是雅可比的代码:
^{pr2}$我和我的团队在编程方面都是新手,所以非常感谢任何帮助!在
有两个不同的问题。在
首先,当},因为它们根据documentation使用Jacobian(特别是,
method='RK45'
传递给solve_ivp
时,解算器(在本例中为Runge-Kutta 4/5)不能使用Jacobian。尝试传递solver='Radau'
、solver='BDF'
、或{jac
关键字参数被记录)。在我看到的另一个问题是,
Richardsmatrix
函数有一个return语句,它不返回任何内容。您可能想改为尝试return sB
(假设sB
是您希望函数返回的矩阵)。在相关问题 更多 >
编程相关推荐