用c++求线形方程组的解求方程组3x+2y+4z=10 x+y+z=14 2x+3y-z=1 要求第
答案:2 悬赏:20 手机版
解决时间 2021-02-10 21:42
- 提问者网友:火车头
- 2021-02-10 15:18
用c++求线形方程组的解求方程组3x+2y+4z=10 x+y+z=14 2x+3y-z=1 要求第
最佳答案
- 五星知识达人网友:酒安江南
- 2021-02-10 15:45
大二的时候自己写得,四种方法:Cramer算法解方程组Gauss列主元解方程组Gauss全主元解方程组用Doolittle算法解方程组//解线性方程组#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,若是,调整为顺序主子式全>0void 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 main(){ int flag=1;input(); //输入方程 while(flag){ print_menu(); //打印主菜单flag=choose(); //选择解答方式}}//函数定义区void print_menu(){ system(cls);cout
全部回答
- 1楼网友:渊鱼
- 2021-02-10 16:47
这个解释是对的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯