⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 briage_ex12.cpp

📁 高斯消元法 c++ 实现
💻 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 + -