📄 s5.cpp
字号:
#include<iostream>
#include<math.h>
#define N 4
using namespace std;
double a[N+1][N+1],b[N+1],L[N+1][N+1],U[N+1][N+1],del;
int Zhuyuan(int k)
{
int i,maxnum;
double max,temp;
max=fabs(a[k][k]);
maxnum=k;
for(i=k;i<=N;i++)
if(fabs(a[i][k])>max)
{
max=fabs(a[i][k]);
maxnum=i;
}
if(maxnum!=k)
del*=-1.;
if(max==0)
return 0;
for(i=k;i<=N;i++)
{
temp=a[k][i];
a[k][i]=a[maxnum][i];
a[maxnum][i]=temp;
}
temp=b[k];
b[k]=b[maxnum];
b[maxnum]=temp;
return 1;
}
void Xiaoyuan(int k)
{
int i,j;
for(i=k+1;i<=N;i++)
{
L[i][k]=a[i][k]/a[k][k];
for(j=k+1;j<=N;j++)
a[i][j]-=(a[i][k]/a[k][k])*a[k][j];
b[i]-=(a[i][k]/a[k][k])*b[k];
}
del*=a[k][k];
}
void Huidai()
{
int i,j;
double l;
b[N]/=a[N][N];
for(i=N-1;i>=1;i--)
{
l=0;
for(j=i+1;j<=N;j++)
l+=a[i][j]*b[j];
b[i]=(b[i]-l)/a[i][i];
}
}
int main()
{
int i,j;
double ain[N][N]={{10,-7,0,1},{-3,2.1,6,2},{5,-1,5,-1},{2,1,0,2}};
double bin[N]={8,5.9,5,1};
for(i=1;i<=N;i++)
{
for(j=1;j<=N;j++)
a[i][j]=ain[i-1][j-1];
b[i]=bin[i-1];
}
cout<<"A:"<<endl;
for(i=1;i<=N;i++)
{
for(j=1;j<=N;j++)
{
cout.width(14);
cout.setf(ios::left,ios::adjustfield);
cout<<a[i][j];
}
cout<<endl;
}
cout<<endl;
cout<<"b:"<<endl;
for(i=1;i<=N;i++)
{
cout.width(14);
cout.setf(ios::left,ios::adjustfield);
cout<<b[i];
}
cout<<endl;
del=1;
for(i=1;i<=N-1;i++)
{
if(!Zhuyuan(i))
break;
Xiaoyuan(i);
}
if(a[N][N]!=0)
{
Huidai();
del*=a[N][N];
}
cout<<endl;
cout<<"L:"<<endl;
for(i=1;i<=N;i++)
{
for(j=1;j<i;j++)
{
cout.width(14);
cout.setf(ios::left,ios::adjustfield);
cout<<L[i][j];
}
cout.width(14);
cout.setf(ios::left,ios::adjustfield);
cout<<1;
for(j=i+1;j<=N;j++)
{
cout.width(14);
cout.setf(ios::left,ios::adjustfield);
cout<<0;
}
cout<<endl;
}
cout<<endl;
cout<<"U:"<<endl;
for(i=1;i<=N;i++)
{
for(j=1;j<i;j++)
{
cout.width(14);
cout.setf(ios::left,ios::adjustfield);
cout<<0;
}
for(j=i;j<=N;j++)
{
cout.width(14);
cout.setf(ios::left,ios::adjustfield);
cout<<a[i][j];
}
cout<<endl;
}
cout<<endl;
cout<<"x:"<<endl;
for(i=1;i<=N;i++)
{
cout.width(14);
cout.setf(ios::left,ios::adjustfield);
cout<<b[i];
}
cout<<endl;
cout<<"detA:"<<' ';
cout<<del<<endl;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -