200701020110     07计算机           王再
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>
void main()

 int flag=1;
 input();    //输入方程 
 while(flag)
 { 
  print_menu();  //打印主菜单
}
void print_menu()

 system("cls");
 cout<<"方程系数和常数矩阵表示如下:\n";
 for(int j=0;j<length;j++)
 cout<<"系数"<<j+1<<"   ";
 cout<<"\t常数";
 cout<<endl;
 for(int i=0;i<length;i++)
 {
  for(j=0;j<length;j++)
   cout<<setw(8)<<setiosflags(ios::left)<<a[i][j];
  cout<<"\t"<<b[i]<<endl;
 }
cout<<" gauss_row()\n";
cout<<"exit\n";
void print_menu(){ 
 system("cls");
 cout<<"方程系数和常数矩阵表示如下:\n";
 for(int j=0;j<lenth;j++)
 cout<<"系数"<<j+1<<"   ";
 cout<<"\t常数";
 cout<<endl;
 for(int i=0;i<length;i++)
 {
  for(j=0;j<length;j++)
   cout<<setw(8)<<setiosflags(ios::left)<<a[i][j];
  cout<<"\t"<<b[i]<<endl;
 }
cout<<" gauss_row()\n";
cout<<"exit\n";
void input()
{ int i,j;
 cout<<"方程的个数:3\n";
 cin>>length;
 if(length>Number)
 { 
  cout<<"It is too big.\n";
  return; 
 }
 x=new char[length]; 
 for(i=0;i<length;i++)
  x[i]='a'+i;
cout<<3x+2y+z=14<<x+y+z=10<<2x+3y-z=1;
cout<<"请在每个方程里输入"<<length<<"系数和一个常数:\n";
  cout<<"例:\n方程:3x+2y+z=14";
 for(i=1;i<lenth;i++)
 {
  cout<<"+"<<i+1<<x[i];
 }
 cout<<"=10\n";
 cout<<"应输入:"<<3x+2y+z=14<<x+y+z=10<<2x+3y-z=1;
 for(i=0;i<lenth;i++)
  cout<<i+1<<" ";
 cout<<"10\n";
 cout<<"\n";
  for(i=0;i<lenth;i++)
 { 
  cout<<"输入方程:"<<3x+2y+z=14<<x+y+z=10<<2x+3y-z=1;
  for(j=0;j<lenth;j++)
   cin>>a[i][j];
  cin>>b[i];
 }
 for(i=0;i<length;i++)
  for(j=0;j<length;j++)
  copy_a[i][j]=a[i][j];
 for(i=0;i<length;i++)
  copy_b[i]=b[i];
 copy_length=length;
}
void gauss_row()
{
 int i,j;
 gauss_row_xiaoqu();   //用高斯列主元消区法将系数矩阵变成一个上三角矩阵
for(i=0;i<length;i++)
 {
  for(j=0;j<length;j++)
   cout<<setw(10)<<setprecision(5)<<a[i][j];
  cout<<setw(10)<<b[i]<<endl;
 }

if(a[length-1][length-1]!=0)
 {
 
  cout<<"系数行列式不为零,方程有唯一的解:\n";
  gauss_calculate();
  for(i=0;i<length;i++)   //输出结果
  { 
   cout<<x[i]<<"="<<b[i]<<"\n";
  }
 }
 else
  cout<<"系数行列式等于零,方程没有唯一的解.\n";
}

void gauss_row_xiaoqu()   //高斯列主元消去法
{
 int i,j,k,maxi;double lik;
 cout<<"用Gauss列主元消去法结果如下:\n";
 for(k=0;k<lenth-1;k++)
 { 
  j=k;
  for(maxi=i=k;i<lenth;i++)
   if(a[i][j]>a[maxi][j]) maxi=i;
  if(maxi!=k) 
   exchange_hang(k,maxi);//
  
  
  for(i=k+1;i<length;i++)
  { 
   lik=a[i][k]/a[k][k];
   for(j=k;j<length;j++)
    a[i][j]=a[i][j]-a[k][j]*lik;
   b[i]=b[i]-b[k]*lik;
  }
 }
}

转载于:https://blog.51cto.com/951466/218864

列选主元guass消去法相关推荐

  1. Guass列选主元消去法和三角分解法

    最近数值计算学了Guass列主消元法和三角分解法解线性方程组,具体原理如下: 1.Guass列选主元消去法对于AX =B 1).消元过程:将(A|B)进行变换为,其中是上三角矩阵.即: k从1到n-1 ...

  2. 数值计算(一)之解线性方程组(高斯消去法,列选主元消去法,全选主元消去法,杜立特尔分解,克洛特分解,乔里斯基分解)

    解线性方程组即解一个多元一次方程组,例如 目录 消去法 分解法 消去法 原理 没有学过高级的解法也没关系,凭借我们初高中的知识足以解决这个问题 这是一个多元一次方程组,拥有n个未知量,也有n方程 我们 ...

  3. Python02 雅克比迭代法 Gauss-Seidel迭代法 列选主元法 LU分解法(附代码)

    1. 实验结果 (1)在定义的矩阵类中设置需要求解的方程为: (2)在 test.py 中选择雅克比迭代法求解: 输入:最大容许迭代次数和精度要求: 输出:根据谱半径判断方法是否收敛,收敛时得到满足精 ...

  4. py实现高斯列选主元消元法

    什么是高斯列选主元消元法 高斯消元法解决的问题是线性方程组的求解问题. 比如下面这个方程组 x+2y = 3 x+4y = 8 我们大学之前学习的方法其实就是高斯消元法. 上面的方程组我们还可以写成矩 ...

  5. 不选主元Gauss消去法

    1.不选主元Gauss消去法原理 设Ax=b,其中A∈Rn×n. (1) 如果akk(k)≠0(k=1,2,···,n),则可以通过高斯消去法将Ax=b约化为等价的三角形线性方程组,如下: [a11( ...

  6. Matlab实现 LU分解法解线性方程组(全选主元列选主元)

    选主元LU分解 实验内容:列选主元LU分解和全选主元LU分解求解线性方程组 计算方法: 全选主元消元法 1.1 初始化 根据参数A.b,记录下矩阵.右端项的尺寸n: 以得到的尺寸n初始化解向量x: 同 ...

  7. 部分选主元matlab,列选主元的高斯消去法-matlab

    大家对高斯消去法应该比较了解了,高代和线性代数中做的已经不少了,但是计算机实现的时候还是要注意一些东西, %列选主元的高斯消去法 function X=lufact_my(A,B) %Inpiut A ...

  8. 列选主元的高斯消去法——MATLAB实现

    日期:11-14 作者:老李 按列选主元策略的高斯消去法 目标 编写函数,实现列选主元策略的高斯消去法 过程 1.消去 2.回代 代码如下: function [ X, U ] = colGaussE ...

  9. matlab不选主元的高斯消去法,高斯消去法与列选主元的高斯消去法-matlab实现

    上一次写了一篇关于列选主元的高斯消去法,这次进行了修改,直接对增广矩阵进行变换,更简洁一些.不过没有对主元过小时进行处理,因此有缺陷. %高斯分解 function [X]=gauss(A,b) %I ...

最新文章

  1. python学精通要多久-学Python编程难吗 从入门到精通学习Python要多久
  2. 线性代数的问题:是否存在这样的矩阵,它满足正交对角化的条件,但它不是实对称矩阵呢?
  3. 自动驾驶小车循迹 图像二值化方法
  4. _reincarnation
  5. 【机器学习入门】深入浅出聚类算法!如何对王者英雄聚类分析,探索英雄之间的秘密...
  6. python找出只出现一次的数字_Python数组中只出现一次的数字
  7. 微信 开发 图片 上传 阿里云 oss 服务器
  8. BOM+DOM+JavaScript读取与操作网页对象
  9. 预充电电路工作原理_变频冰箱开关电源电路工作原理及检修。
  10. 递归法全排列java_实验一 分治与递归—全排列 java算法
  11. html5的video怎么把里面的控制器移出来_电动车突然不走了,但控制器和转把没坏,但车走电,这是怎么回事...
  12. Ubuntu 20.04部署minikube配置不上阿里云的minikube镜像
  13. 微信小程序添加外部字体方法
  14. snmpwalk访问华为防火墙snmp服务超时失败问题
  15. HTML两张图片翻转,canvas实现图片镜像翻转的2种方式
  16. Corolado软件峰会关于Geronimo的介绍
  17. 2022秋季C语言专题实验03-一维数组
  18. 初级开发和中级,高级的区别_如何从初级开发人员过渡到中级开发人员
  19. 图的遍历(染色法判断奇环)
  20. 计算机实验报告网络应用,《计算机网络应用》实验报告(2016春).doc

热门文章

  1. Swift语言实现代理传值
  2. 一行js代码识别Selenium+Webdriver及其应对方案
  3. 用友云平台,真正的云原生架构,加速云应用落地
  4. An internal error occurred during: Launching xxx on WebLogic10.x.
  5. python写一个通讯录step by step V3.0
  6. Apple的LZF算法解析
  7. CleanMyMac扩展管理功能
  8. 软件破解系列之OD中断方法
  9. 一天 用户旅程_439天的旅程改变了我的生活
  10. 利用python实现IP扫描