用高斯消去法解线性方程组。C++程序及结果用高斯消去法解线性方程组。C++程序及结果
用高斯消去法解线性方程组。设有n元线性方程组如下:
ax+ax+…+a,x=b 0000110n-1n-10
ax+ax+…+ax=b 1001111,n-1n-11
…
Ax+ax+…+ax=b n-1,00n-1,11n-1,n-1n-1n-1
算法:
对于k从0开始到n-2结束,进行以下步骤:
首先,第k行第k列的数不能为0,若为0,则与下面不为0的行交换。将k行所有数
除以第k行第k列的数.
其次,进行消去:
a[i][j]=a[i][j]-a[i]...
用高斯消去法解线性方程组。C++程序及结果
用高斯消去法解线性方程组。设有n元线性方程组如下:
ax+ax+…+a,x=b 0000110n-1n-10
ax+ax+…+ax=b 1001111,n-1n-11
…
Ax+ax+…+ax=b n-1,00n-1,11n-1,n-1n-1n-1
算法:
对于k从0开始到n-2结束,进行以下步骤:
首先,第k行第k列的数不能为0,若为0,则与下面不为0的行交换。将k行所有数
除以第k行第k列的数.
其次,进行消去:
a[i][j]=a[i][j]-a[i][k]*a[k][j],j,i=k+1,k+2,…,n-1
b[i]=b[i]-a[i][k]*b[k],i=k+1,k+2,……,n-1
最后,回代过程
x[n-1]=b[n-1]/a[n-1][n-1]
x[i]=b[i]-?a[i][j]x[j],I=n-2,…1,0
定义一个矩阵类Matrix作为基类,然后由矩阵类派生出线性方程组类Linequ。
程序清单:
#include
#include
using namespace std;
class Matrix //定义矩阵类
{
public:
Matrix(int dims=2) //构造函数
{
index=dims; //保护数据赋值
MatrixA=new double[index*index]; //动态内存分配
}
~Matrix()
{delete[] MatrixA;} //内存释放
void setMatrix(double *rmatr) //设置矩阵值
{
for(int i=0;id)
{d=t;is=i;}
}
if(d+1.0==1.0)l=0;
if(l==0)
{
cout<<"fail"<=0;i--)
{
t=0.0;
for(j=i+1;j<=index-1;j++)
t=t+MatrixA[i*index+j]*solu[j];
solu[i]=sums[i]-t;
}
}
int main() //主函数
{
double a[]=
{2,-0.5,-0.5,0, -0.5,2,0,-0.5, -0.5,0,2,-0.5, 0,-0.5,-0.5,2};
double b[4]={0,3,3,0};
Linequ equl(4);
equl.setLinequ(a,b);
equl.printL();
if(equl.Solve())
equl.showX();
else
cout<<"Fail"<
本文档为【用高斯消去法解线性方程组。C++程序及结果】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。