第一范文网 - 专业文章范例文档资料分享平台

列主元高斯消去法C++源文件

来源:用户分享 时间:2021-06-02 本文由酷的不着边 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

VC2010 + win7makefile编译,makefile在源文件头部

/*
编译环境 windows7 系统下 使用visual studio 2010
使用VC++6.0 可能会用少许不兼容,修改一下即可
Copyright of 唐禹
Edited in 2010/11/01
Builed in 2010/11/01
Version 1.1
*/

/****************************************************
---------------------Makefile 文件------------------
zy.exe: zy.obj
@link /subsystem:console zy.obj

zy.obj:
@echo "Compiling zy......."
@cl /c zy.cpp

clean:
@echo "正在清除项目....."
@del zy.obj zy.exe
@echo "项目清除完成"

run:
@zy

********************************************************/

#include<iostream>
#include<cmath>
#include<iomanip>

using namespace std;

int N; //方程的阶数,改用变量,可以由使用者决定方程阶数,程序更加灵活

double Main_Element; //记录每次选择的主元

double **A;
double **B;
double **A_B;

double **X;

/*用于试验的方程组
{3,1,6};
A= {2,1,3};
{1,1,1};
B= {2,7,4};
求的根为:X={19,-7,-8};
*/

/*
为变量分配存储空间,初始化系数矩阵
*/
void Init_Data();

/*
销毁变量空间
*/
void Destroy_Data();

/*
求方程组Ax=B的增广矩阵A_B
*/
double** AUB(int N,double **A,double **B,double **A_B);

/*
用于显示矩阵的详细参数,row x col 型
*/
void Show_Matrix(double **A,int row,int col);

/*
用于横向显示向量,N x 1 型
*/
void Show_Result(int x/*表征解的个数*/,int N);

int Gauss_Colum_Main_Element(
int n, //方程阶数
double **A, //系数矩阵
double **B, //
double e); //精度控制

/*
确定列主元素所在行,并返回行号
*/
int Choose_Colum_Main_Element(
int n, //方程阶数
double**A, //系数矩阵
int start);
/*
交换矩阵L1,L2 两行
*/
void Exchange(double **A,int num_of_colum,int L1,int L2);

/*
单位化系数矩阵,更准确地说是将矩阵 A的左上角nxn 个分块矩阵单位化
*/
double **Unitization(int n/*方程阶数*/,double**A /*系数矩阵*/);


/*
对确定好列主元素的矩阵进行消元处理
*/
void Elimination(int n,double**A,int start);

/*主函数*/
int main()
{
bool willgo;
do
{
Init_Data();
Show_Result(Gauss_Colum_Main_Element(N,A,B,0),N);
cout<<"退出(0)还是继续求解其他方程组(1)?"<<endl;
Destroy_Data();

cin>>willgo;
}while(willgo);

return 0;
}

//以下部分是对前面声明的函数的具体实现,相应的功能参看前面声明部分

//初始化数据
void Init_Data()
{
cout<<"请输入方程的阶数:"<<
;endl;
cin>>N;
while(N<=0)
{
cout<<"请输入有效的方程阶数"<<endl;
cin>>N;
}

A=new double*[N];
B=new

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新人文社科列主元高斯消去法C++源文件全文阅读和word下载服务。

列主元高斯消去法C++源文件.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1197949.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top