?? 列主元素gauss消元法.cpp
字號:
#include <iostream.h>
#include <math.h>
int main()
{
double a[3][3]={{0.5,1.1,3.1},{5,0.96,6.5},{2,4.5,0.36}};
double b[3]={6,0.96,0.02};
double m[3];
double x[3];
double max=0.0;
int line;
double temp;
//進行消元
for(int k=0;k<2;k++)
{
//選行號
for(int i=k;i<3;i++)
if(fabs(a[i][k]>max))
{
max=fabs(a[i][k]);
line=i;
}
//進行交換
for(int j=k;j<3;j++)
{
temp=a[line][j];
a[line][j]=a[k][j];
a[k][j]=temp;
}
//進行具體的消元
for(i=k+1;i<3;i++)
{
m[i]=a[i][k]/a[k][k];
for(int j=k+1;j<3;j++)
a[i][j]=a[i][j]-m[i]*a[k][j];
b[i]=b[i]-m[i]*b[k];
}
}
//輸出數組a
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
cout<<a[i][j]<<" ";
cout<<"\n";
}
//回代過程
x[2]=b[2]/a[2][2];
for(k=1;k>=0;k--)
{
for(int j=k+1;j<3;j++)
x[k]=b[k]-a[k][j]*x[j];
x[k]=x[k]/a[k][k];
}
//輸出最后結果
for(i=0;i<3;i++)
cout<<"x"<<i+1<<"="<<x[i]<<" "<<"\n";
return 1;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -