📄 zhuigan.cpp
字号:
//追赶法
#include <iostream.h>
#include <stdio.h>
#define N 5 //定义一个5*5的矩阵,改变N可以改变矩阵的大小
int i,j,k,r;
float A[N][N];//={2,1,0,0,1,3,1,0,0,1,1,1,0,0,2,1};
float c[N],d[N],l[N],a[N],b[N],u[N],y[N],x[N],f[N];//={1,2,2,0};
//主函数
void main()
{
//输入矩阵A
cout<<"输入原始矩阵A:"<<endl;
for(i=0;i<=N-1;i++)
for(j=0;j<=N-1;j++)
scanf("%f",&A[i][j]);
//输入方程组解f
cout<<"输入方程解f:"<<endl;
for(i=0;i<=N-1;i++)
scanf("%f",&f[i]);
//开始追赶法计算:
b[0]=A[0][0];
for(i=1;i<=N-1;i++)
{
a[i]=A[i][i-1];
b[i]=A[i][i];
}
for(i=0;i<=N-2;i++)
{
c[i]=A[i][i+1];
}
for(i=0;i<N-1;i++)
{
d[i]=A[i][i+1];
}
u[0]=b[0];
for(i=1;i<=N;i++)
{
l[i]=a[i]/u[i-1];
u[i]=b[i]-l[i]*c[i-1];
}
//计算y:
y[0]=f[0];
for(i=1;i<=N-1;i++)
{
y[i]=f[i]-l[i]*y[i-1];
}
//输出y:
cout<<"方程组解y:"<<endl;
for(i=0;i<=N-1;i++)
{
cout<<y[i]<<"\t";
}
cout<<endl;
//计算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];
}
//输出x:
cout<<"方程组解x:"<<endl;
for(i=0;i<=N-1;i++)
{
cout<<x[i]<<"\t";
}
cout<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -