追赶法

来源:互联网 发布:刀塔传奇源码下载 编辑:程序博客网 时间:2024/06/11 10:48
//追赶法   #include <iostream.h>   #include <stdio.h>   #define N 4 //定义一个4*4的矩阵,改变N可以改变矩阵的大小   void TDMA(float a[N],float b[N],float c[N-1],float f[N],float x[N]){float u[N],l[N],y[N];    u[0]=b[0];       y[0]=f[0];    for(int i=1;i<=N-1;i++)       {           l[i]=a[i]/u[i-1];           u[i]=b[i]-l[i]*c[i-1];         y[i]=f[i]-l[i]*y[i-1];     }    //计算x:       x[N-1]=y[N-1]/u[N-1];          for(i=N-2;i>=0;i--)       {           x[i]=(y[i]-c[i]*x[i+1])/u[i];       }      }//主函数   void main()   {        float a[]={0,-1,-2,-3};float b[]={2,3,4,5};float c[]={-1,-2,-3};float f[]={6,1,-2,1};  float x[N];TDMA(a,b,c,f,x);  //输出x:       cout<<"方程组解x:"<<endl;       for(int i=0;i<=N-1;i++)          {           cout<<x[i]<<"\t";       }          cout<<endl;        }  /*方程组解x:5       4       3       2Press any key to continue*/