ZKX's LAB

MATLAB来做三次样条插值,如何得到插值的函数表达式? 第二类三次样条插值三弯矩法

2020-10-01知识8

三次样条插值的三弯矩法 3次样条?B样条?貌似图形学有提到唉。

MATLAB来做三次样条插值,如何得到插值的函数表达式? 第二类三次样条插值三弯矩法

MATLAB来做三次样条插值,如何得到插值的函数表达式? x=[1:1:10];y=[2:2:20];pp=interp1(x,y,'spline','pp')breaks=pp.breakscoefs=pp.coefs三次样条插值(Cubic Spline Interpolation)简称Spline插值,2113是通5261过一系列形值点的一条光滑曲线,4102数学上通过求解三弯矩方程组得出1653曲线函数组的过程。实际计算时还需要引入边界条件才能完成计算。一般的计算方法书上都没有说明非扭结边界的定义,但数值计算软件如Matlab都把非扭结边界条件作为默认的边界条件。在工程上,构造三次样条插值函数通常有两种方法:一是以给定插值结点处得二阶导数值作为未知数来求解,而工程上称二阶导数为弯矩,因此,这种方法成为三弯矩插值。二是以给定插值结点处得一阶导数作为未知数来求解,而一阶导数右称为斜率,因此,这种方法称为三斜率插值。

MATLAB来做三次样条插值,如何得到插值的函数表达式? 第二类三次样条插值三弯矩法

求助:求三次样条插值函数的C++程序 includeincludeusing namespace std;const int MAX=50;float x[MAX],y[MAX],h[MAX];float c[MAX],a[MAX],fxym[MAX];float f(int x1,int x2,int x3){float a=(y[x3]-y[x2])/(x[x3]-x[x2]);float b=(y[x2]-y[x1])/(x[x2]-x[x1]);return(a-b)/(x[x3]-x[x1]);}/求差分void cal_m(int n){/用追赶法求解出弯矩向量M…float B[MAX];B[0]=c[0]/2;for(int i=1;i;i+)B[i]=c[i]/(2-a[i]*B[i-1]);fxym[0]=fxym[0]/2;for(i=1;i=0;i-)fxym[i]=fxym[i]-B[i]*fxym[i+1];}void printout(int n);int main(){int n,i;char ch;do{coutn;for(i=0;i

MATLAB来做三次样条插值,如何得到插值的函数表达式? 第二类三次样条插值三弯矩法

#matlab函数#三次函数#导数#matlab

随机阅读

qrcode
访问手机版