樣條插值是一種工業設計中常用的、得到平滑曲線的一種插值方法,三次樣條是其中用的較為廣泛的一種。
樣條插值最初是用於函式擬合
對於平面上的離散點,進行函式擬合時,一種簡單粗暴的方法就是不光滑的直線來將離散的點相連,即我們通常所說的線性擬合。
線性擬合會存在乙個問題,擬合出來的函式不夠「光滑」,為了讓線條更加光滑,可以使用二次線條或者三次線條來連線每乙個點。三次多項式的擬合效果相對於二次多項式更好,但是以上的擬合結果都是使用n次的線條將點簡單連線起來。
若使用三次樣條插值對離散點進行擬合,對比3次線條連線方法,三次樣條插值方法擬合出來的曲線更加符合實際。
1.三次樣條曲線在銜接點處是連續光滑的
2.三次樣條的一階導數和二階導數是連續的
3.自由邊界三次樣條(nature cubic spline)的邊界二階導數也是連續的
4.單個點並不會影響到整個插值曲線
人在計算三次樣條的係數我們使用的是代數方法,即使用已有的方程組不斷的代入求解即可,在實際的演算法實現中通常不是通過代數解方程來求解,下面我們給出三次樣條插值的計算機演算法:
公式原理此處不作具體的推導。可參考部落格:
三次樣條插值
條件 1 輸入 x y f x 0 leq i leq n 2 要求擬合的曲線 s x 滿足 對於任意的 1 leq i leq n 1 在 x 處一階二階導數連續,s x 也連續,且 s x f x s x f x 求解過程 設 s m 對於區間 x x s x 是 x x 上的線性函式,所以設 ...
三次樣條插值 c
include include include include using namespace std double zuigan double a,double b,double c,double f,int n 追趕法求線性方程組 for int i 0 ifor int i n 2 i 0 i...
Python實現線性插值和三次樣條插值
關於python資料分析在數學建模中的更多相關應用 python資料分析在數學建模中的應用彙總 持續更新中!y sin x 資料準備 x np.arange np.pi,np.pi,1 定義樣本點x,從 pi到pi每次間隔1 y np.sin x 定義樣本點y,形成sin函式 new x np.ar...