Я искал способ найти точку, в которой дифференциальное уравнение меняет знак, это может быть пересечение нуля или поиск корня.
Кто-то сказал мне использовать Brent's Method
, но это былоне точный.Например, рисунок обрезает ноль в 0.12
, но метод получает что-то вроде 0.19
или более, что недопустимо.
Теперь я нашел этот алгоритм scipy.integrate.solve_ivp ,в этом методе утверждается, что The solver looks for a sign change over each step, so if multiple zero crossings occur within one step, events may be missed.
Я не понимал, как это сделать.
Рассмотрим, что у нас есть дифференциальное уравнение
dE/dz = f(E,z)
Мы знаем ответиз dE/dz
мы знаем начальную точку E0
, но мы хотели бы знать, в каком z
у нас есть ответ dE/dz
.поэтому мы должны получить значение z
, что приводит к ответу dE/dz
Любая помощь, пожалуйста?
Спасибо