Мне нужен алгоритм для выполнения двумерного метода деления пополам для решения нелинейной задачи 2x2.Пример: два уравнения f(x,y)=0
и g(x,y)=0
, которые я хочу решить одновременно.Я очень хорошо знаком с 1D-бисекцией (а также с другими численными методами).Предположим, я уже знаю, что решение лежит между границами x1 < x < x2
и y1 < y < y2
.
В сетке начальные границы:
^
| C D
y2 -+ o-------o
| | |
| | |
| | |
y1 -+ o-------o
| A B
o--+------+---->
x1 x2
и я знаю значения f(A), f(B), f(C) and f(D)
кака также g(A), g(B), g(C) and g(D)
.Чтобы начать деление пополам, я думаю, нам нужно разделить точки по краям, а также по центру.
^
| C F D
y2 -+ o---o---o
| | |
|G o o M o H
| | |
y1 -+ o---o---o
| A E B
o--+------+---->
x1 x2
Теперь рассмотрим возможности комбинаций, такие как проверка того, выглядит ли f(G)*f(M)<0 AND g(G)*g(M)<0
подавляющим.Может быть, я делаю это немного слишком сложным, но я думаю, что должна быть многомерная версия деления пополам, точно так же, как Ньютон-Рафсон может быть легко изменен с помощью операторов градиента.приветствуются.