//程序:张建波
#include "iostream.h"
double N[3][4]={
{0.0001,0.5402,0.3425,0.8828},
{1.235,2.567,0.9750,4.777},
{1.024,2.001,4.555,7.580}};
void PRINT()
{
//输出矩阵
cout<<"\n----------------------------------\n";
for(int i=0;i<3;i++)
{
for(int k=0;k<4;k++)
{cout<<N[i][k]<<" ";
if(N[i][k]==0)cout<<" ";
}
cout<<"\n";
}
cout<<"\n----------------------------------\n";
}
void f1()
{ //调整矩阵 按大到小顺序
double TMP;
int k=0;
int p=0,q=0;
//冒泡法
for(int i=p;i<3;i++)
for(int j=p;j<3;j++)
{
if(N[i][q]==N[j][q] && N[i][q]==0)
{
//如果 每行第 1 个元素已经为0 ,则 按第2元素排序
//依次类推,如果第2元素也为0 则按第3 元素排序
q++;
}
else
if(N[i][q]>N[j][q])
{//按 关键 元素对行排序
for(k=0;k<4;k++)
{
TMP=N[i][k];
N[i][k]=N[j][k];
N[j][k]=TMP;
}
}
}
}
void f2()
{
//消元
//变 第 1 个系数 为1
int i;
double a,T[4];
//默认从第2行开始消,第1个开始消
int R=1,L=0; // R=行 L=列
int q=0;
int h=0;
int n=1;
Loop:
for(h=R;h<3;h++)
{
a=-N[h][q]/N[q][q];
for(i=q;i<4;i++)
{
T[i]=N[q][i]*a;
N[h][i]+=T[i];
}
cout<<"\n第 "<<n++<<"次消元\n";PRINT();
if(h>0 && h<3 && N[h-1][q]==0 && N[h-1][q]==N[h][q])
{
f1();//排序
q++;
R++;
PRINT();
goto Loop;
}
}
}
void f3()
{
//迭代求根
int n=0;
double x2=(N[2][3]-N[2][1]-N[2][0])/N[2][2];
double x1=(N[1][3]-N[1][2]*x2-N[1][0])/N[1][1];
double x0=(N[0][3]-N[0][2]*x2-N[0][1]*x2)/N[0][0];
cout<<"X0="<<x0<<" X1="<<x1<<" X2="<<x2<<endl;
}
void main()
{
cout<<"原矩阵:\n";
PRINT();
cout<<"排序:\n";
f1();//排序
PRINT();
f2();//消元
PRINT();
f3();
}
分享到:
相关推荐
高斯列主元法是一种数值线性代数中的方法,用于求解线性方程组。这种方法基于矩阵的行操作,通过将方程组转换成阶梯形式或简化阶梯形式,来方便地找到方程组的解。在计算机编程中,尤其是在VC++(Visual C++)环境下...
用c++程序实现高斯列主元消去法解方程组 简单易懂
运行程序,它将从文件中读取矩阵数据,执行列主元消去法解方程,并输出解的结果。 通过这种方法,我们可以利用C++的强大功能,结合Visual Studio 2010的开发环境,实现高效的数值计算。列主元消去法不仅适用于小...
列主元高斯消去法是一种数值线性代数中的算法,用于求解线性方程组。在C语言中,我们可以通过编程实现这个方法来解决多元一次方程的根。这种算法的主要思想是通过一系列行变换将系数矩阵逐步转换为上三角矩阵,然后...
在数值分析和计算科学领域,高斯列主元消去法是一种常见的用于求解线性方程组的算法。此方法基于矩阵的概念,通过一系列行变换将系数矩阵转化为阶梯形矩阵,进而简化求解过程。在C++编程语言中实现这一算法,可以...
总之,列主元消去法是一种有效的数值方法,它利用C++的数据结构和算法能力,可以方便地求解线性方程组。通过精心设计的向量类和矩阵类,我们可以实现这一过程,并在VC6.0这样的早期IDE中运行。在实际应用中,还需要...
然而,题目要求我们基于“列主元法解矩阵方程”的标题和描述来展开知识点。因此,下面将详细介绍列主元法的相关概念及其在解矩阵方程中的应用。 ### 列主元法解矩阵方程 #### 一、列主元法简介 列主元法是高斯消元...
列主元高斯消去法是一种用于求解线性方程组的有效算法,它在标准高斯消去法的基础上增加了选择主元的步骤,以增强数值稳定性。在处理大规模或存在对角线元素为零的矩阵时,这种方法显得尤为重要。 线性方程组通常...
总之,`gauss.cpp`程序实现了高斯消去法和列主元高斯消去法,通过C++编程语言对线性方程组求解的过程进行了抽象和自动化。程序的结构包含了行变换、行阶梯化和回代求解的核心逻辑,同时通过测试用例确保了算法的正确...
高斯列主元消去法解线性方程组 高斯列主元消去法是一种常用的解线性方程组的方法,它是高斯消去法的改进和变形。这种方法广泛应用于计算机科学和工程领域中,是一种高效、可靠的计算方法。 高斯列主元消去法的原理...
在给定的文件列表中,`高斯列主元消去法解线性方程组.cpp`很可能是C++实现的源代码,用于编程实现高斯列主元消去法的过程。`.dsp`和`.dsw`是Visual Studio项目文件,`.ncb`是Visual Studio的解决方案文件,`.opt`是...
高斯列主元消去法,也称为高斯消元法,是线性代数中求解线性方程组的一种基本方法。这种方法基于矩阵运算,通过对系数矩阵进行一系列行变换,将其转化为阶梯形矩阵或简化阶梯形矩阵,进而求得方程组的解。在实际应用...
### 高斯列主元消元法求解线性方程组 #### 一、引言 在数学和计算机科学领域,线性代数中的线性方程组求解问题非常常见。对于这类问题,高斯列主元消元法是一种有效且广泛使用的数值计算方法。本文将详细介绍如何...
列主元高斯消去法解线性方程组
本文将详细介绍标题中提及的七种解线性方程组的C++代码实现,包括高斯消元法、高斯列主元法、高斯全主元法、LU分解法、按列的LU分解法、高斯-乔丹消元法以及高斯-赛德尔迭代法。 1. **高斯消元法**:是最基本的线性...
本文档提供了一个使用 C++ 语言实现的解方程组程序,包括 Cramer 算法、Gauss 列主元解方程组、Gauss 全主元解方程组和 Doolittle 算法四种方法。该程序可以输入方程组,选择解答方式,并输出计算结果。 一、Cramer...
数值计算方法中关于列主元法解线性方程组的通用c++程序源代码
《高斯列主元消去法C++实现与解的个数判断》 高斯列主元消去法是线性代数中一种常见的求解线性方程组的方法,其核心思想是通过一系列行变换将系数矩阵转化为阶梯形矩阵,从而简化计算。在C++编程语言中,我们可以...
在数值计算方法中用高斯消元法和列选主元来求线性方程组的解的C++源代码
高斯列主元消去法(Gauss Elimination with Partial Pivoting)是一种解决线性代数方程组的数值方法,它通过一系列行变换将系数矩阵逐步转化为上三角矩阵,从而简化求解过程。在VC++环境下,可以利用C++编程语言实现...