📄 briage_ex12.cpp
字号:
// briage_ex12.cpp : 定义控制台应用程序的入口点。
//高斯消元法程序---------------------------------------长安大学--罗勇--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<<"输入矩阵的维数"<<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++) //-----------------------------数据录入始
{
cout<<"输入矩阵第"<<i+1<<"行元素(共"<<n<<"个元素):"<<endl;
for(j=0;j<n;j++)
cin>>a[i][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++) //-----------------------------数据输出始
{
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;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -