三次样条插值法的C++程序实现(追赶法求解线性方程组)
求解线性方程组追赶法的程序为:
double capway(int n,double nu[],double d[],double lan[],double h[],double x[],double y[], double t){
double beita[n-1];
beita[0]=lan[0]/2;
for (int i=1;i<n-1;i++){
beita[i]=lan[i]/(2-nu[i-1]*beita[i-1]);
}
double yy[n];
yy[0]=d[0]/2;
for (int i=1;i<n;i++){
yy[i]=(d[i]-nu[i-1]*yy[i-1])/(2-nu[i-1]*beita[i-1]);
}
double xx[n];
xx[n-1]=yy[n-1];
for (int i=n-2;i>=0;i--){
xx[i]=yy[i]-beita[i]*xx[i+1];
}
//上面求解线性方程组成功。
}
计算线性方程组矩阵的程序为:
double spline(int n,double x[],double y[],int s,double x1,double xn,double t){
//下面求hn的值;
double h[n-1];
for (int i=0;i<n-1;i++){
h[i]=x[i+1]-x[i];
}
double aver[n-1];
for (int i=0;i<n-1;i++){
aver[i]=(y[i+1]-y[i])/h[i];
}
//下面判断边界条件,第一类边界条件;
double lan[n-1];
double d[n];
double nu[n-1];
if(s==1){
lan[0]=1;
d[0]=(6/h[0])*

本文介绍了一种使用C++实现的三次样条插值法,并详细展示了通过追赶法求解线性方程组的具体过程。该程序能够处理不同类型的边界条件,并输出线性方程组的矩阵及系数向量。
最低0.47元/天 解锁文章
3006

被折叠的 条评论
为什么被折叠?



