我需要一种算法来执行二维二分法来解决 2x2 非线性问题。示例:两个方程f(x,y)=0
and g(x,y)=0
我想同时解决这个问题。我非常熟悉一维二分(以及其他数值方法)。假设我已经知道解决方案位于界限之间x1 < x < x2
and 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
似乎势不可挡。也许我把它做得有点太复杂了,但我认为应该有一个二分法的多维版本,就像牛顿-拉夫森可以使用梯度运算符轻松地进行多维化一样。
欢迎任何线索、评论或链接。
抱歉,虽然二分在一维中有效,但在更高维度中却失败了。您根本无法仅使用有关区域角点和内部点的函数的信息将二维区域分解为子区域。用米克·贾格尔的话来说,.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)