Использование якобийской матрицы в solve_ivpPython

Программы на Python
Ответить
Anonymous
 Использование якобийской матрицы в solve_ivp

Сообщение Anonymous »

Я пытаюсь использовать встроенную функцию solve_ivp с якобийской матрицей.
Я получаю это сообщение об ошибке: < /p>


userwarning: Следующие аргументы не имеют эффекта для выбранного решателя: jac < /code> .
.format ("," .join ("

Код: Выделить всё

{}< /code> ". Format (x) для x в посторонних))) < /p>
< /blockquote>

Я не уверен, что это синтаксическая ошибка или Ошибка в якобийской матрице.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()
Это код якобиана:

def Richardsmatrix(hw, t, wPar, sPar, RPar, dzIN, dzN): #the jacobian (a,b,c)

K=Kfun(hw, wPar, m)
kRes =RPar.kRobBotR

a = np.zeros(nN)
b = np.zeros(nN)
c = np.zeros(nN)

ii=np.arange(1, nN-1)

a[ii] = K[ii, 0]/(dzIN[ii, 0]*dzN[ii-1, 0]) #middle nodes
a[0] = 0 #a1l is zero and not in matrix
a[nN-1] = K[nN-1, 0] / (dzIN[nN-1, 0] * dzN[nN-2, 0])

b[ii] = -K[ii, 0] / (dzIN[ii,0] * dzN[ii-1,0])- K[ii+1,0] / (dzIN[ii,0] * dzN[ii, 0]) #middle nodes
b[0] = -K[1, 0]/(dzIN[0 , 0]*dzN[0, 0])- kRes / dzIN[0 ,0]
b[nN-1] = -K[nN-1, 0] / (dzIN[nN-1, 0] * dzN[nN-2, 0])

c[ii] = K[ii+1,0] / (dzIN[ii,0] * dzN[ii, 0]) #middle nodes
c[0] = K[1,0] / (dzIN[0, 0] * dzN[0, 0])
c[nN-1] = 0

B = np.diag(a[1:nN], -1)+ np.diag(b, 0) + np.diag(c[0:nN-1], 1)
sB = sp.sparse.csc_matrix(B)
return
< /code>

Моя группа и я довольно новичны в программировании, поэтому любая помощь очень ценится!

Подробнее здесь: https://stackoverflow.com/questions/505 ... -solve-ivp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»