样条函数插值拟合
2014–02–11 09:26:49
在拟合势能函数的时候, 除解析式外, 也可以利用样条函数进行拟合. 样条拟合与其插值正好相反: 已知函数在节点上的值求任意位置的值, 做插值; 已知函数的某些组合值求函数节点上的值, 属于拟合. 由于样条函数可以化为节点函数值的线性表达式, 这样就可以将待求参数线性化, 得到最优情况下函数的形状, 为寻找合适的解析式提供依据, 当然也可以直接利用得到的离散数据拟合解析式.
样条函数可以是零阶, 一阶, 二阶, 三阶或更高阶. 实际使用中, 三阶使用最为普遍. 由于三次样条的构造需要求解一个三对角线性方程组, 其显式解很难得到, 所以线性化结果很繁琐.零阶
在每一区间上样条函数为常量, 函数整体呈台阶状. 对等距情况, 计算时最好使用就近原则, 取最近点的值作为拟合点, 可用i=nint(x/dx)实现.
一阶
在每一区间上样条函数为线性函数, 函数整体呈折线状$.$
fi(x)=yi+yi+1−yiΔx(x−xi)
此式自动满足函数值连续条件, 即零阶连续.
二阶
在每一区间上, 样条函数为二次函数, 整体一阶连续, 即有连续的导数. 但仅有节点的函数值不能唯一确定整个函数, 还须提供某一节点上的导数值, 一般可令端点的导数值为零. 二次样条函数在偶数点的曲率不连续. 由二阶开始, 插值函数不再具有局域性, 改变某一节点, 函数整体都会改变. 使得线性系数分离很困难.
fi(x)ki+1=yi+ki(x−xi)+ki+1−ki2Δx(x−xi)2=−ki+2yi+1−yiΔx,ki=2yi+1−yiΔx−ki+1
可化简得
fi(x)α=yi+ki(x−xi)+(yi+1−yi−kiΔx)(x−xiΔx)2=α2yi+1+(1−α2)yi+(1−α)ωki=ω/Δx,ω=x−xi
对势能函数, 一般满足远距离处导数为零, 故可使用自然条件 kn=0 , 由此, 可推知所有系数 ki .
令 ki=2ΔxTi,Δi=yi+1−yi, 则 Ti 满足递推式
Ti=Δi−Ti+1
可求得
Ti=∑j=in−1(−1)j−iΔj
样条函数可写为
fi(x)=α2yi+1+(1−α2)yi+2α(1−α)Ti,α=(x−xi)/Δx
对不等距划分, 令 Δi=yi+1−yixi+1−xi, ki 满足如下递推式
ki=2Δi−ki+1
求得
ki=2∑j=in−1(−1)j−iΔj
三阶
对等距划分的均匀样条, 设节点为 1,2,....n, 若 x∈[xi,xi+1],a=x−xi,b=xi+1−x,a+b=h=Δx, 则
6hfi(x)=6(ayi+1+byi)+a(a2−h2)Mi+1+b(b2−h2)Mi
Mi 为节点的二阶导数, 对应于力学上的弯矩, 满足下面的方程
Mi+4Mi+1+Mi+2=di+1=6h2(yi+2−2yi+1&