追赶法
来源:互联网 发布:刀塔传奇源码下载 编辑:程序博客网 时间: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*/