我認爲你需要線性方程來消除高斯。
如果a,b和r是您需要解決的問題,很明顯這些是非線性方程。
您將需要一個非線性求解器,如Newton-Raphson。
你必須線性化你的方程。計算差分da,db和dr的Jacobean。
您就會開始與最初的猜測
a = a(old)
b = b(old)
r = r(old)
使用方程組的線性化版本來計算增量
2*(a(old)-x1)*da + 2*(b(old)-y1)*db = 2*r(old)*dr
2*(a(old)-x2)*da + 2*(b(old)-y2)*db = 2*r(old)*dr
2*(a(old)-x3)*da + 2*(b(old)-y3)*db = 2*r(old)*dr
更新你的猜測
a(new) = a(old) + da
b(new) = b(old) + db
r(new) = r(old) + dr
和重複,直到它收斂(如果收斂)。
你永遠不應該使用高斯消元來求解線性方程:它會遇到很多問題。更好的想法是做LU分解和前向替換。
如果我的線性化方程是正確的,它們的形式爲A(dx) = 0
。邊界條件應該是什麼?
(a, b)
是圓心的座標; r
是半徑。
你真的有三分(x1, y1)
,(x2, y2)
和(x3, y3)
?或者你有更多的積分?如果是後者,則需要最小二乘擬合。
http://en.wikipedia.org/wiki/Gaussian_elimination –
可能要問[Math.StackExchange](http://math.stackexchange.com/)而不是 – Landric