三次样条插值法的C++程序实现(追赶法求解线性方程组)

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

三次样条插值法的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])*
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值