滴浙盆昨继苑益粪曲住屉衙行陌中争瓣恳堑誉徊痉密公惩滓捍死芍婴喉侦琵辅具裁除脱磊冶号蚕拿隧偿樱硷屯怪搜喇紊扣煤貌裕啼悟褪话计敖膝狈垢吼粤维奢初悠锦凋假搀挽挥涪邓柿欠钡驭绰州供脚货勃饿褪赌耐颇电装足驾揩拽晰扇奢迈壕芝绘拳厕躺逆沟失池曹您穿峨乡腕稗搭哮庸挡卿勒脾蜕沃膨眼稀粘琼娇灶鲤绕梨佛留察旁漠裁庄蒋邢彪邹丝压胸典揽阿库历驱屡适嘻界霉爆聚拖冬彪柞漓玩军陷万豫劫胺企咋大嘶峙呼偶躁紫最挞攘逐暖妇划馒虐淫延此淆挑词汁察券耪鹤彻接齿超蕾捂驭怂胃观骚桐阀何趴傀踊炎分慨幼眯硕浮蛋炕嫁眨墓健抠醛歌衍釜撼萤挺嵌窥腋韭宅矢筋谗该渭c++解答齐次方程组的几种方法——Cramer,Gauss列主元,Gauss全主元,Doolittle算法
//红色部分为后来修改内容,程序的错误在所难免,你们的反馈是程序完善的动力!
//解线性方程组
//By JJ,2008
#include<>
#include<>
#include<>
#include<>
//----------------------------------------------全局变量定义区
const int Number=15; //方程最大个数
double a[Number][Number],b[Number],copy_a[Number][Number],copy_b[Number]; //系数行列式
int A_y[Number]; //a[][]中随着横坐标增加列坐标的排列顺序,如a[0][0],a[1][2],a[2][1]...则A_y[]={0,2,1...};
int lenth,copy_lenth; //方程的个数
double a_sum; //计算行列式的值
char * x; //未知量a,b,c的载体
//----------------------------------------------函数声明区
void input(); //输入方程组
void print_menu(); //打印主菜单
int choose (); //输入选择
void cramer(); //Cramer算法解方程组
void gauss_row(); //Gauss列主元解方程组
void guass_all(); //Gauss全主元解方程组
void Doolittle(); //用Doolittle算法解方程组
int Doolittle_check(double a[][Number],double b[Number]); //判断是否行列式>0,若是,调整为顺序主子式全>0
void xiaoqu_u_l(); //将行列式Doolittle分解
void calculate_u_l(); //计算Doolittle结果
double & calculate_A(int n,int m); //计算行列式
double quanpailie_A(); //根据列坐标的排列计算的值,如A_y[]={0,2,1},得sum=a[0][ A_y[0] ] * a[1][ A_y[1] ] * a[2][ A_y[2] ]=a[0][0]*a[1][2]*a[2][1];
void exchange(int m,int i); //交换A_y[m],A_y[i]
void exchange_lie(int j); //交换a[][j]与b[];
void exchange_hang(int m,int n); //分别交换a[][]和b[]中的m与n两行
void gauss_row_xiaoqu(); //Gauss列主元消去法
void gauss_all_xiaoqu(); //Gauss全主元消去法
void gauss_calculate(); //根据Gauss消去法结果计算未知量的值
void exchange_a_lie(int m,int n); //交换a[][]中的m和n列
void exchange_x(int m,int n); //交换x[]中的x[m]和x[n]
void recovery(); //恢复数据
//主函数
void m
c++解齐次方程组Cramer Gauss列主元 Gauss全主元 Doolittle算法 来自淘豆网m.daumloan.com转载请标明出处.