📄
字号:
******************************************************************************
inf.txt
0 0 0 0 0
0 -1 2 -2 -1
0 3 -1 4 7
0 2 -3 -2 0
******************************************************************************/
#include<fstream>
#include<iostream>
#include<cmath>
int count=0;
using namespace std;
#define N 3
#define w 100
bool flag=true;
void main()
{float a[N+1][N+2];
int i,j;
ifstream infile("inf.txt",ios::in);
if(!infile)
{
cerr<<"错误:文件“inf.txt”无法打开!";
exit(1);
}
for(i=0;i<N+1;i++)
{
for(j=0;j<N+2;j++)
{
infile>>a[i][j];
}
}
infile.close();
float x[N+1]={0};
//cout<<a[3][1];
float x1[N+1];//x1[N+1]表示新得的方程组的解
//for(i=1;i<=N;i++)
//x1[i]=a[i][N+1];
float max=0;
while(flag)
{
count++;
for(i=1;i<=N;i++)
{ x1[i]=a[i][N+1];
for(j=1;j<=i-1;j++)
{
x1[i]-=a[i][j]*x[j];
}
for(j=i+1;j<=N;j++)
{
x1[i]-=a[i][j]*x[j];
}
x1[i]*=w;
}
float max=0;
for(i=0;i<=N;i++)
{
if(max<fabs(x1[i]-x[i]))
{
max=fabs(x1[i]-x[i]);
}
}
if(max<0.01)
break;
for(int k=1;k<=N;k++)
{
x[k]=x1[k];
}
if(count==100000)
{
cout<<"在"<<count<<"次迭代中未能得到所要的结果,程序已被中止!"<<endl;
return;
}
}
cout<<"经计算知该方程组的解为:\n"<<"x1="<<x[1]<<ends<<"x2="<<x[2]<<ends<<"x3="<<x[3]<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -