Я написал код, который решает систему нелинейных уравнений 2-го порядка в большой размерности (i = 0, N) с помощью метода Ньютона (Jacobian N+1 * N+1) с двумя граничными условиями.
Я хотел бы спросить вас, возможно ли реализовать метод деления пополам в этой многомерной задаче. К сожалению, сходимость Ньютона не работает в некоторых областях моей задачи.
согласно этому источнику: http://ursa.as.arizona.edu/~rad/phys305/root_finding/node4.html
Усовершенствованная схема нахождения корня состоит в объединении метода деления пополам и метода Ньютона-Рафсона. Метод деления пополам гарантирует корень (или сингулярность) и используется для ограничения изменений положения, оцениваемого методом Ньютона-Рафсона, когда линейное предположение плохо. Однако шаги Ньютона-Рафсона предпринимаются в почти линейном режиме для ускорения сходимости.
Другими словами, если мы знаем, что у нас есть корень, заключенный между двумя нашими ограничивающими точками, мы сначала рассмотрим шаг Ньютона-Рафсона. Если это будет предсказывать следующую точку, которая находится за пределами нашего диапазона в квадратных скобках, то вместо этого мы делаем шаг пополам, выбирая середину диапазона в качестве следующей точки. Затем мы оцениваем функцию в следующей точке и, в зависимости от знака этой оценки, заменяем одну из ограничивающих точек новой точкой. Это удерживает корень в квадратных скобках, позволяя нам извлечь выгоду из скорости Ньютона-Рафсона. "
... возможно ли это сделать в Python в N-мерной задаче?
Модуль Rtsafe FORTRAN в многомерном формате может сделать это, и может у Matlab есть аналогичный модуль...