资源描述:
《解方程组地c++代码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用标准文档Cramer算法解方程组Gauss列主元解方程组Gauss全主元解方程组用Doolittle算法解方程组//解线性方程组#include#include#include//----------------------------------------------全局变量定义区constintNumber=15;//方程最大个数doublea[Number][Number],b[Number],copy_a[Number][Number],copy_b[Number];//系数行列式intA_y[Numbe
2、r];//a[][]中随着横坐标增加列坐标的排列顺序,如a[0][0],a[1][2],a[2][1]...则A_y[]={0,2,1...};intlenth,copy_lenth;//方程的个数doublea_sum;//计算行列式的值char*x;//未知量a,b,c的载体//----------------------------------------------函数声明区voidinput();//输入方程组voidprint_menu();//打印主菜单intchoose();//输入选择voidcramer();//Cramer算法解方程组文案大全实用标准文档void
3、gauss_row();//Gauss列主元解方程组voidguass_all();//Gauss全主元解方程组voidDoolittle();//用Doolittle算法解方程组intDoolittle_check(doublea[][Number],doubleb[Number]);//判断是否行列式>0,若是,调整为顺序主子式全>0voidxiaoqu_u_l();//将行列式Doolittle分解voidcalculate_u_l();//计算Doolittle结果double&calculate_A(intn,intm);//计算行列式doublequanpailie_A(
4、);//根据列坐标的排列计算的值,如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];voidexchange(intm,inti);//交换A_y[m],A_y[i]voidexchange_lie(intj);//交换a[][j]与b[];voidexchange_hang(intm,intn);//分别交换a[][]和b[]中的m与n两行voidgauss_row_xiaoqu();//Gauss列主元消去法voidgauss_all_xiaoqu();//Gaus
5、s全主元消去法voidgauss_calculate();//根据Gauss消去法结果计算未知量的值voidexchange_a_lie(intm,intn);//交换a[][]中的m和n列voidexchange_x(intm,intn);//交换x[]中的x[m]和x[n]voidrecovery();//恢复数据//主函数voidmain(){intflag=1;input();//输入方程while(flag){print_menu();//打印主菜单文案大全实用标准文档flag=choose();//选择解答方式}}//函数定义区voidprint_menu(){syste
6、m("cls");cout<<"------------方程系数和常数矩阵表示如下:";for(intj=0;j7、out<<"2.Gauss列主元消去法";cout<<"3.Gauss全主元消去法";cout<<"4.Doolittle分解法";cout<<"5.退出";cout<<"输入你的选择:";文案大全实用标准文档}voidinput(){inti,j;cout<<"方程的个数:";cin>>lenth;if(lenth>Number){cout<<"Itistoobig.";return;}x=newchar[lenth];for(i