lescape_m.c

来自「包括线性插值」· C语言 代码 · 共 43 行

C
43
字号
/* Note:Your choice is C IDE */
#include "stdio.h"

void main()
{
	int i;
	void Lescape(double a[13],double b[5],int n);
    static double a[13]={13.0,12.0,11.0,10.0,9.0,8.0,7.0,
                         6.0,5.0,4.0,3.0,2.0,1.0};//将三对角矩阵的元素采用一微数组存储
    static double b[5]={3.0,0.0,-2.0,6.0,8.0};
      Lescape(a,b,5);
      for (i=0;i<=4;i++)
        printf("x(%d)=%13.7e\n",i,b[i]);
    
}

void Lescape(double a[13],double b[5],int n)
{
  int i,j;
  double p[5],q[4],y[5];
  p[0]=a[0];
  j=1;
  for(i=0;i<=n-2;i++)
  {  	
  	q[i]=a[2*i+j]/p[i];
  	p[i+1]=a[2*(i+1)+j]-a[2*(i+1)+(j-1)]*q[i];
  	j=j+1;  	
  }
  
  y[0]=b[0]/p[0];
  j=1;
  for(i=1;i<=n-1;i++)
  {  	
  	y[i]=(b[i]-a[(2*i)+(j-1)]*y[i-1])/p[i];
  	j=j+1;
  } 
  b[n-1]=y[n-1];
  for(i=n-2;i>=0;i--)
  	b[i]=y[i]-q[i]*b[i+1];
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?