?? briage_ex12.cpp
字號:
// briage_ex12.cpp : 定義控制臺應(yīng)用程序的入口點(diǎn)。
//高斯消元法程序---------------------------------------長安大學(xué)--羅勇--2009.3.1
#include "stdafx.h"
#include<iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
const int n=4;
int i,j;
//cout<<"輸入矩陣的維數(shù)"<<endl;
//cin>>n;
double a[n][n];//={{4,2,-4},{2,3,1},{-4,1,2}};
double b[n];//={4,1,0};
double x[n];
for(i=0;i<n;i++) //-----------------------------數(shù)據(jù)錄入始
{
cout<<"輸入矩陣第"<<i+1<<"行元素(共"<<n<<"個元素):"<<endl;
for(j=0;j<n;j++)
cin>>a[i][j];
}
//------------------------------數(shù)據(jù)錄入完
cout<<"輸入向量b(共"<<n<<"個元素):"<<endl;
for(i=0;i<n;i++)
{
cin>>b[i];
}
int k;
double buf;
for(i=1;i<n;i++)
{
for(j=i;j<n;j++)
{
buf=a[j][i-1]/a[i-1][i-1];
b[j]=b[j]-buf*b[i-1];
for(k=i-1;k<n;k++)
{
a[j][k]=a[j][k]-a[i-1][k]*buf;//a[k][m-1]/a[m-1][m-1];
}
}
}
cout<<endl<<"變換后矩陣a為:"<<endl;
for(i=0;i<n;i++) //-----------------------------數(shù)據(jù)輸出始
{
for(j=0;j<n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<endl<<"變換后向量b為:"<<endl;
for(i=0;i<n;i++)
cout<<b[i]<<endl;
int u,v;
double buf2=0;
x[n-1]=b[n-1]/a[n-1][n-1];
for(u=n-2;u>=0;u--)
{
for(v=u+1;v<n;v++)
{
buf2=buf2+a[u][v]*x[v];
}
x[u]=(b[u]-buf2)/a[u][u];
}
cout<<endl<<"解此線性方程得:"<<endl;
for(i=0;i<n;i++)
{
cout<<"x"<<i+1<<"=";
cout<<x[i]<<endl;
}
return 0;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -