欢迎来到天天文库
浏览记录
ID:53809172
大小:25.54 KB
页数:12页
时间:2020-04-07
《解方程组的c++代码.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Cramer算法解方程组Gauss列主元解方程组Gauss全主元解方程组用Doolittle算法解方程组//解线性方程组#include#include#include//----------------------------------------------全局变量定义区constintNumber=15;//方程最大个数doublea[Number][Number],b[Number],copy_a[Number][Number],copy_b[Number];//系
2、数行列式intA_y[Number];//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();//输入选择voi
3、dcramer();//Cramer算法解方程组voidgauss_row();//Gauss列主元解方程组voidguass_all();//Gauss全主元解方程组voidDoolittle();//用Doolittle算法解方程组intDoolittle_check(doublea[][Number],doubleb[Number]);//判断是否行列式>0,若是,调整为顺序主子式全>0voidxiaoqu_u_l();//将行列式Doolittle分解voidcalculate_u_l();//计算Doolittle结果double
4、&calculate_A(intn,intm);//计算行列式doublequanpailie_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];voidexchange(intm,inti);//交换A_y[m],A_y[i]voidexchange_lie(intj);//交换a[][j]与b[];voidexchange_hang(intm,intn);//分别交换a[][]和b[]
5、中的m与n两行voidgauss_row_xiaoqu();//Gauss列主元消去法voidgauss_all_xiaoqu();//Gauss全主元消去法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();//输入方程w
6、hile(flag){print_menu();//打印主菜单flag=choose();//选择解答方式}}//函数定义区voidprint_menu(){system("cls");cout<<"------------方程系数和常数矩阵表示如下:";for(intj=0;j7、left)<>lenth;if(lenth>Number)8、{cout<<"Itistoobig.";return;}x=newchar[lenth];for(i=0;i
7、left)<>lenth;if(lenth>Number)
8、{cout<<"Itistoobig.";return;}x=newchar[lenth];for(i=0;i
此文档下载收益归作者所有