2009-05-28 44 views
1

這也與數學有關。但是這對計算也很有用。生成給定的一組座標所在的平面/曲面的函數

可以說你有10個座標。 (x1,y1)(x2,y2).....在2D空間中。 (即在X-Y平面上)。我們能否找到穿過每個座標的單一光滑曲線。

在擴展問題的同時,如果空間是3D的,那麼我們能否找到一個光滑曲面的方程,它將穿過給定的一組空間座標?

是否有任何庫(任何語言)\工具來執行此類計算?

+0

什麼順序曲線,你看畫? – 2009-05-28 08:18:16

+0

訂單不是問題。我只是想知道存在? – 2009-05-28 08:50:34

回答

2

你應該找的是一些實現NURBS(或非均勻有理B樣條)的庫。這將在2d和3d中解決您的問題,因爲2d只是3d的特例。

粗略地說,你對實際的方程不感興趣,你只關心用光滑的曲線或曲面來近似點。這是通過在2d或3d空間中找到「控制點」來完成的,它們與B樣條基函數相乘。 NURBS庫會爲你做這件事。

乾杯!

編輯:

看一看this one

1

你總是可以通過點擬合一個10階多項式。這並不一定是你想要做的,雖然 - 通過一系列樣條曲線擬合一條平滑的曲線會給你一個更好看的結果。關於維基百科的curve-fitting文章爲您提供了各種選項的完美概述。

1

在2D情況下,您要求進行曲線擬合。這實際上存在於Excel中,您繪製點的位置(如果列出了x和y,我通常使用XY散點圖),然後右鍵單擊曲線。選擇添加趨勢線。在那裏你可以選擇你想要的功能類型,你可以讓excel在圖像中顯示它(標籤命名選項,勾選「在圖表上顯示方程」框)。很好,很快。

否則,您可以使用matlab並使用lsqr(最小二乘法)。如果你想找到最能描述數據的多項式,你可以使用polyfit函數。它使用最小二乘法,但返回係數。 Matlab有一整套其他算法用於求解/找到線性方程組的「最佳」逼近。我提到lsqr是因爲如果你沒有matlab,它是實現自己最簡單的一個。另一方面,它用於求解線性方程組 - 我對你的數據一無所知。

相關問題