解方程组的c++代码.docx
- 文档编号:1413921
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:16
- 大小:17.72KB
解方程组的c++代码.docx
《解方程组的c++代码.docx》由会员分享,可在线阅读,更多相关《解方程组的c++代码.docx(16页珍藏版)》请在冰豆网上搜索。
解方程组的c++代码
Cramer算法解方程组
Gauss列主元解方程组
Gauss全主元解方程组
用Doolittle算法解方程组
//解线性方程组
#include
#include
#include
//----------------------------------------------全局变量定义区
constintNumber=15;//方程最大个数
doublea[Number][Number],b[Number],copy_a[Number][Number],copy_b[Number];//系数行列式
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();//输入选择
voidcramer();//Cramer算法解方程组
voidgauss_row();//Gauss列主元解方程组
voidguass_all();//Gauss全主元解方程组
voidDoolittle();//用Doolittle算法解方程组
intDoolittle_check(doublea[][Number],doubleb[Number]);//判断是否行列式>0,若是,调整为顺序主子式全>0
voidxiaoqu_u_l();//将行列式Doolittle分解
voidcalculate_u_l();//计算Doolittle结果
double&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[]中的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();//输入方程
while(flag)
{
print_menu();//打印主菜单
flag=choose();//选择解答方式
}
}
//函数定义区
voidprint_menu()
{
system("cls");
cout<<"------------方程系数和常数矩阵表示如下:
\n";
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 方程组 c+ 代码
![提示](https://static.bdocx.com/images/bang_tan.gif)