Excel用於計算二階多項式迴歸(曲線擬合)的算法是什麼?是否有示例代碼或僞代碼可用?Excel多項式曲線擬合算法
回答
我發現,返回相同的公式,Excel中給出瞭解決方案:
放在一起以最小二乘拋物線使用的值的增廣矩陣。請參閱http://www.efunda.com/math/leastsquares/lstsqr2dcurve.cfm的求和公式
使用高斯消元法來求解矩陣。這裏是C#代碼,將這樣做http://www.codeproject.com/Tips/388179/Linear-Equation-Solver-Gaussian-Elimination-Csharp
運行後,矩陣(M)中的剩餘值將等於Excel中給出的係數。
也許我可以找到R^2,但我不需要它爲我的目的。
這取決於,因爲根據您提供的數據以及曲線通過這些點的重要性,有很多方法可以完成這樣的工作。
我猜你比多項式中的係數有更多的點數(例如對於二階曲線超過三個點)。
如果這是真的,那麼您可以做的最好的是最小二乘擬合,它可以計算使所有點和結果曲線之間的均方誤差最小的係數。
圖表中的多項式趨勢線使用基於QR分解方法(如LINEST工作表函數(http://support.microsoft.com/kb/828533))的最小二乘法。給定(x,y)數據的二階或二次趨勢可以使用=LINEST(y,x^{1,2})
來計算。
您可以使用Worksheet.Evaluate
方法從C#中調用工作表公式。
+1直接申請 – brettdj 2012-07-27 03:49:11
我知道最基本的工作表函數。我想知道的是linest使用的算法(或帶有二階多項式趨勢線的圖表)。我想通了,並在下面回答我自己的問題,http://stackoverflow.com/questions/11672385/excel-polynomial-curve-fitting-algorithm/11677949#11677949 – user1214135 2012-07-27 14:26:43
如果你只是做一個二次趨勢線,你的鏈接應該足夠了但趨勢線(LINEST)算法實際上實現了QR分解以獲得更高的準確性 - 它並不像kb文章中所述的那樣直接求解「Normal Equations」。 – 2012-07-27 15:50:44
既然這是第二順序,我的建議只是創建該死的二階項並做一個線性迴歸。
Ex。如果你正在做z〜second_order(x,y),它相當於做z_first_order(x,y,x^2,y^2,xy)。
我將第二階解釋爲y = c0 + c1 * x + c2 * x^2。你的二階理念適合曲面,而不是曲線。 – duffymo 2012-07-26 17:11:20
- 1. 高斯曲線擬合算法
- 2. 帶曲線擬合的聚類算法
- 3. 如何將Excel中的擬合數據曲線擬合爲多變量多項式?
- 4. 曲線擬合
- 5. matlab與亞次多項式擬合的曲線
- 6. 如何用D3擬合多項式曲線?
- 7. 擬合時間序列數據的多項式曲線
- 8. 神經網絡多項式迴歸不能擬合曲線
- 9. python多項式曲線擬合 - 係數不正確
- 10. 用Python/Numpy將數據擬合成多項式曲線
- 11. 將曲線擬合多項式值分配給矢量
- 12. 加權多項式擬合的Excel線性公式
- 13. 曲線擬合scipy
- 14. scipy.optimize曲線擬合
- 15. Spotfire曲線擬合
- 16. python曲線擬合
- 17. Python曲線擬合
- 18. 用於圖像曲線擬合的多項式最小二乘法
- 19. 曲線擬合耦合ODEs
- 20. 用lsq曲線擬合加權曲線擬合
- 21. 曲線擬合普朗克曲線
- 22. 擬合曲線,另一條曲線
- 23. 線擬合算法OpenCV
- 24. OpenCV線擬合算法
- 25. Python多曲線擬合模型
- 26. 多個自動曲線擬合
- 27. 擬合多個曲線以設置點
- 28. 擬合曲線 - 擬合參數
- 29. scipy.optimize.curve_fit:無法做曲線擬合
- 30. 最小二乘法曲線擬合
你知道最小二乘擬合算法嗎?我想把一些代碼放在C#中。 – user1214135 2012-07-26 15:21:54
http://stackoverflow.com/questions/350852/least-squares-c-sharp-library – Dan 2012-07-26 15:31:05