軟體工程中的曲線擬合模型
曲線擬合是構建最佳擬合一組資料點的曲線或數學函式的過程,受約束條件的限制。曲線擬合可以包括插值,這需要精確擬合數據,或者平滑,這涉及建立近似擬合數據的“平滑”函式。
迴歸分析是一個類似的主題,它關注統計推斷問題,例如擬合到帶有隨機誤差的資料的曲線的多少不確定性。
擬合曲線可用於幫助資料視覺化、在沒有提供資料的情況下預測函式值以及描述兩個或多個變數之間的關係。外推法是在觀測資料範圍之外使用擬合曲線,它容易被誤解,因為它可能代表用於構建曲線的方法以及實際資料。
曲線擬合組模型使用統計迴歸分析研究軟體複雜度與程式中的缺陷數量、修改數量或故障率之間的關係。這類模型使用線性迴歸、非線性迴歸或時間序列分析來確定輸入和輸出變數之間的關係。例如,程式中的錯誤數量是一個因變數。自變數是維護期間修改的模組數量、故障之間的時間間隔、程式設計師的經驗、軟體的大小等等。
此類別包括以下模型:
- 誤差估計;
- 複雜度估計;以及
- 故障率估計。
這些將在下面討論。
下圖比較了實際值和估計值。
- 誤差估計模型
可以使用線性或非線性迴歸模型來估計程式中的錯誤數量。以下是估計程式中初始錯誤總數 N 的基本非線性迴歸模型:
$$\mathrm{N = ∑a_{i}x_{i}+∑b_{i}{x^{2}_{i}}+ ∑c_{i}{x^{3}_{i}} + ε}$$
其中:
- xi 是第 i 個誤差因子;
- ai、bi、ci 是模型係數;以及
- ε 是誤差項。
軟體複雜度度量和環境變數是典型錯誤原因的示例。大多數曲線擬合模型只有一個誤差分量。
- 複雜度模型估計
使用時間序列方法,此模型用於估計軟體複雜度 CR。以下是軟體複雜度模型的總結:
$$\mathrm{CR = a_{0} + {a_{1}}R + {a_{2}}ER + {a_{3}}MR + {a_{4}}IR + {a_{5}}D + ε}$$
其中
- R 表示釋出序列號。
- ER = 釋出 R 時期的環境因素。
- MR 表示釋出 R 時的模組數量。
- IR 是釋出間隔 R 的縮寫。
- D = 第一個錯誤發生與第二個錯誤發生之間的時間(天)。
- ε = 誤差
當程式隨時間推移進行評估時,即釋出模型的新版本時,使用此模型。
- 故障率模型估計
此方法用於估計軟體故障率。給定 t1、t2、…、tn 故障間隔,第 i 個故障間隔的故障率的近似估計為:
$$\mathrm{λ_{i} =\frac{1}{t_{i} - t_{i-1}}}$$
假設故障率單調非遞增,則可以使用最小二乘法生成此函式 lambda (i = 1, 2,…, n) 的估計值。
各種曲線擬合
使用直線和多項式曲線擬合資料點。從一階多項式方程開始:
$$\mathrm{y = ax + b}$$
這是一條斜線。我們已經知道一條線可以連線任意兩個位置。因此,一階多項式方程是任意兩個位置之間的完美匹配。
當方程的階數增加到二階多項式時,我們得到:
$$\mathrm{y = ax^{2} + bx + c}$$
這將精確地擬合三個點的一條基本曲線。
當方程的階數增加到三階多項式時,我們得到:
$$\mathrm{y = ax^3 + bx^2 + cx + d}$$
這將精確擬合四個點。
更廣泛的說法是它將精確擬合四個約束。每個約束可以採用點的形式、角度或曲線(這是密切圓半徑的倒數)。角度和曲率約束最常新增到曲線的端點,在這種情況下稱為端部條件。
為了在包含在單個樣條線中的多項式曲線之間提供無縫過渡,通常使用相同的端部條件。還可以施加更高階的約束,例如“曲率變化率”。例如,這在高速公路立交橋設計中很重要,以便了解汽車沿著立交橋行駛時施加的壓力,並因此確定適當的速度限制。
鑑於此,一階多項式方程可以完美匹配一個點和一個角度,而三階多項式方程可以完美擬合 2 個點、一個角度約束和一個曲率約束。對於這些和更高階的多項式方程,還有許多其他附加約束組合是可能的。
將其他曲線擬合到資料點
在特定情況下,可以使用其他型別的曲線,例如圓錐曲線(圓形、橢圓形、拋物線形和雙曲線弧)或三角函式(例如正弦和餘弦)。例如,當忽略空氣阻力時,物體在重力作用下的軌跡遵循拋物線路徑。因此,將軌跡資料點與拋物線曲線匹配是有意義的。潮汐遵循正弦模式,因此潮汐資料點應與正弦波匹配,如果還考慮了月球和太陽的影響,則應與兩個不同週期的正弦波之和匹配。
曲線的代數擬合與幾何擬合
在代數資料分析中,“擬合”通常是指嘗試識別使點與曲線的垂直(即 y 軸)位移最小化的曲線(例如普通最小二乘法)。另一方面,幾何擬合嘗試為圖形和影像應用程式提供最佳視覺擬合,這通常涉及嘗試最小化到曲線的正交距離(例如總最小二乘法),或者選擇性地合併點與曲線的兩個軸位移。幾何擬合很少見,因為它們通常需要非線性和平鋪計算,儘管它們會產生更美觀和幾何上更精確的結果。
通過幾何擬合擬合圓
Coope 解決了確定圓到一組 2D 資料點的最佳視覺擬合的挑戰。該方法巧妙地將通常的非線性問題轉化為線性問題,無需使用迭代數值方法即可求解,因此比以前的方法快幾個數量級。
通過幾何擬合擬合橢圓
透過新增非線性步驟,將上述方法擴充套件到通用橢圓[2],從而產生一種快速且還能找到具有可變方向和位移的視覺上吸引人的橢圓的方法。
應用於曲面
雖然此解釋側重於二維曲線,但大多數推理也適用於三維曲面,每個面片由兩個引數方向(通常稱為 u 和 v)中的曲線網路描述。在每個方向上,曲面可以由一個或多個曲面面片構成。