//追赶法
#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 2
Press any key to continue
*/
追赶法
最新推荐文章于 2023-09-22 11:27:43 发布