Вы на самом деле не можете, или, с другой стороны, odeint
или ode->zvode
уже делает это с любой заданной проблемой.
Для первого вам нужно будет дать две части уравнение отдельно. Очевидно, что это не является частью интерфейса решателя. Посмотрите на решатели DDE и SDE, где такое разделение уравнения действительно требуется.
Во втором случае odeint
и ode->zvode
используют неявные многошаговые методы, что означает, что значения u(t+dt)
и с правой стороны введите вычисление и лежащее в основе локальное приближение.
Вы все еще можете попытаться взломать свой исходный подход в решателе, предоставив функцию Якоби, которая содержит только второй производный член, но вполне вероятно, что вы это сделаете не достичь улучшения.
Вы можете разделить операторное ODE и решить линейную часть отдельно, введя
vhat(k,t) = exp(nu*k^2*t)*uhat(k,t)
так, чтобы
d/dt vhat(k,t) = -i*k*exp(nu*k^2*t)*conv(uhat(.,t),uhat(.,t))(k)