? ? ? ? ?三次樣條插值方法,是將一個(gè)曲線函數(shù)分成多段,每相鄰的兩個(gè)標(biāo)準(zhǔn)點(diǎn)就是一個(gè)三次多項(xiàng)式函數(shù).也就是說(shuō),n+1個(gè)標(biāo)準(zhǔn)點(diǎn),共有 n?個(gè)三次函數(shù).求解分段時(shí)共有4*n個(gè)未知系數(shù)
?其相鄰的分段函數(shù)之間連續(xù),一階導(dǎo)連續(xù),二階導(dǎo)也連續(xù)。
因此?
- 每個(gè)分段三次樣條函數(shù)要經(jīng)過(guò)每?jī)蓚€(gè)標(biāo)準(zhǔn)點(diǎn)即,??共可以列出2n?個(gè)方程;
- 一階導(dǎo)連續(xù)
? 共有n -1 個(gè)方程;
- 二階導(dǎo)連續(xù)
? 共有n -1 個(gè)方程,
共4n -2個(gè)方程,還要加上額外2個(gè)兩兩互不線性相關(guān)的方程才能求解得出 4n個(gè)未知系數(shù)。
這額外的2個(gè)方程就是所謂的邊界條件。其分成左邊界條件和右邊界條件,分別用來(lái)進(jìn)行模擬左外插和右外插。
主流邊界條件如下
邊界條件 | 說(shuō)明 | 意義 |
Not-A-Knot |
非扭結(jié) | 左邊界和右邊界的三階導(dǎo)數(shù)值相等 即? |
Natural | 自然邊界 | 指定端點(diǎn)二階導(dǎo)數(shù)為0 |
Clamped | 固定邊界 | 指定端點(diǎn)一階導(dǎo)數(shù) |
當(dāng)然,也可以自行設(shè)置其他邊界條件
利用三彎矩法求解三次樣條方程
設(shè)三次樣條函數(shù) S(x) 和分段函數(shù)如下
????????
為表示方便,另
這樣 h?表示相鄰的兩個(gè)標(biāo)準(zhǔn)點(diǎn)的x軸距離, s表示斜率,M表示函數(shù)的二階導(dǎo)
根據(jù)樣條函數(shù)的定義可知,其二階導(dǎo)數(shù)必然是線性方程,且為連續(xù)的折現(xiàn)段。因此折現(xiàn)段上的任一點(diǎn)可由折現(xiàn)段兩端的值以及該點(diǎn)的所處位置表示出來(lái),即拉格朗日線性插值法:
? ? ? ? .......①
對(duì)上式進(jìn)行兩次積分后得到
...........②
根據(jù)定義得知,函數(shù)必然經(jīng)過(guò)標(biāo)準(zhǔn)點(diǎn),因此把??代入到上述公式中,得到公式
?...③? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???
將 S(x)求導(dǎo)可得
....④
另兩式相等構(gòu)成方程,
可通過(guò)移向得到方程組
其中? ?.....................⑤
n-1個(gè)方程在加上兩個(gè)邊界方程,可以求解出 n+1 個(gè)M. 例如 "端點(diǎn)二階導(dǎo)相等"的邊界條件
將左邊界方程加入到方程組第0個(gè)方程位置,將右邊界加入到方程組第n個(gè)方程位置,可以得到一個(gè)三對(duì)角方陣.
剩下的就是線性代數(shù)矩陣行變換求解出M,再代入S(x)函數(shù)③?得到 S(x)的函數(shù)方程。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-818866.html
只要輸入的標(biāo)準(zhǔn)點(diǎn)的x坐標(biāo)兩兩不相等,其方程組就可以求解的出來(lái)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-818866.html
到了這里,關(guān)于三次樣條插值——三彎矩方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!