我需要一個算法來執行二分二分法來求解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
似乎勢不可擋。也許我會讓這個過於複雜,但我認爲應該有一個多維版本的Bisection,就像使用梯度運算符可以很容易地對Newton-Raphson進行多重處理一樣。
歡迎任何線索,評論或鏈接。
我不太明白。你的方程是什麼?它不能是f(x,y)= 0,因爲f(A)= f(B)= f(C)= f(D)= 0並且對於g也是一樣的。 – Troubadour 2010-08-18 15:39:37
我正在繪製(x,y)上面函數的域。把它想象成解決方案可能存在的表面圖。上圖中未顯示'f'和'g'的實際值。在地圖上的每個點上,我的函數'f'和'g'都有一個值,我試圖找到地圖上的哪一點使它們同時爲零。 – ja72 2010-08-18 16:48:44
@jalexiou:好的,謝謝。那真的是兩個表面。我現在明白了。 – Troubadour 2010-08-18 16:56:40