📄 cubicsplineinterpolation.java
字号:
public class CubicSplineInterpolation {
public double CubicSplineInterpolation(double[] t,double[] y,double m)
{
double yValue=0;
double[][] aaaa=this.arrary(t);
Gaussian b=new Gaussian();
double[] value=new double[8];
value[0]=y[0];
value[1]=y[1];
value[2]=y[1];
value[3]=y[2];
for(int i=4;i<8;i++)
value[i]=0;
//double[] value=new double[8];
value=b.Gaussian(aaaa, value, 8);
if(m>=t[0]&&m<=t[1]) {yValue=value[0]+value[1]*m+value[2]*m*m+value[3]*m*m;
return yValue;
}
else if(m>t[1]&&m<=t[2]){yValue=value[4]+value[5]*m+value[6]*m*m+value[7]*m*m;
return yValue;
}
else return 0;
//return yValue;
}
public double[][] arrary (double[] t)
{
double[][] arrary=new double[8][8];
for(int i=0;i<8;i++)
for(int j=0;j<8;j++)
arrary[i][j]=0;
//1-2
arrary[0][0]=1;
arrary[1][0]=1;
for(int i=0;i<=1;i++)
for(int j=1;j<=3;j++)
arrary[i][j]=arrary[i][j-1]*t[i];
//3-4
arrary[2][4]=1;
arrary[3][4]=1;
for(int i=2;i<=3;i++)
for(int j=5;j<=7;j++)
arrary[i][j]=arrary[i][j-1]*t[i-1];
//5
arrary[4][1]=1;
arrary[4][2]=2*t[1];
arrary[4][3]=3*t[1]*t[1];
arrary[4][5]=-1;
arrary[4][6]=-2*t[1];
arrary[4][7]=-3*t[1]*t[1];
//6
arrary[5][2]=2;
arrary[5][3]=6*t[1];
arrary[5][6]=-2;
arrary[5][7]=-6*t[1];
//7
arrary[6][2]=2;
arrary[6][3]=6*t[0];
//8
arrary[7][6]=2;
arrary[7][7]=6*t[2];
for(int i=0;i<8;i++)
{for(int j=0;j<8;j++)
System.out.print(arrary[i][j]+"\t");
System.out.println();
}
return arrary;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -