C 開發 最小二乘擬合圓

2021-07-15 22:39:41 字數 1187 閱讀 5536

最小二乘擬合圓曲線方程為:r²=(x-a)²+(y-b)²

因此只需求出圓心座標(a,b)和半徑r即可。

擬合圓的詳細推導公式見:

這裡只給出使用c#編寫的擬合圓程式:

///

/// 擬合圓

///private

struct circle

////// 定義的擬合點

///private

struct pixelpoint

////// 擬合圓程式

//////

要擬合點集

///返回圓物件

private circle fittingcircle(listppointlist)

double x1 = 0;

double y1 = 0;

double x2 = 0;

double y2 = 0;

double x3 = 0;

double y3 = 0;

double x1y1 = 0;

double x1y2 = 0;

double x2y1 = 0;

for (int i = 0; i < ppointlist.count; i++)

double c, d, e, g, h, n;

double a, b, c;

n = ppointlist.count;

c = n * x2 - x1 * x1;

d = n * x1y1 - x1 * y1;

e = n * x3 + n * x1y2 - (x2 + y2) * x1;

g = n * y2 - y1 * y1;

h = n * x2y1 + n * y3 - (x2 + y2) * y1;

a = (h * d - e * g) / (c * g - d * d);

b = (h * c - e * d) / (d * d - g * c);

c = -(a * x1 + b * y1 + x2 + y2) / n;

pcircle.x = a / (-2);

pcircle.y = b / (-2);

pcircle.r = math.sqrt(a * a + b * b - 4 * c) / 2;

return pcircle;

}

最小二乘擬合 6 7 最小二乘擬合問題

資料擬合問題的一般形式 任給一組離散資料 注 這裡的擬合函式不一定為多項式函式 記殘量的平方和為 求使得殘量平方和最小得一組係數就是線性最小二乘問題,為最小二乘問題得基函式,求得的擬合函式為資料的最小二乘擬合。求解 利用偏導數為零得到極值點的原理可以得到最小二乘問題滿足的方程組,求解方程組中未知係數...

最小二乘擬合

來自 某小皮 最優化函式庫optimization 優化是找到最小值或等式的數值解的問題。scipy.optimization子模組提供函式最小值,曲線擬合和尋找等式的根的有用演算法。最小二乘擬合 假設有一組實驗資料 xi,yi 事先知道它們之間應該滿足某函式關係yi f xi 通過這些已知的資訊,...

最小二乘線性擬合

實驗 給出實驗資料 程式 如下 write by void,2013.4.15,beijing import matplotlib.pyplot as plt import numpy as np x 13,15,16,21,22,23,25,29,30,31,36,40,42,55,60,62,6...