齐次线性方程组和非齐次线性方程组

匿名 (未验证) 提交于 2019-12-02 23:03:14
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yaoyaoqiekenaoo/article/details/84836519

  1. 定义

齐次线性方程组:等式右侧常数项全部为0

非齐次线性方程组: 等式右侧常数项不全部为0

  1. 齐次方程组的求解

将系数矩阵化为行阶梯形矩阵,记全为0的行数量为r=n-R(A)。将后r个未知数分别取值为1和0,对应的形成r个解。这些r个解的线性组合即为基础解系。

  1. 非齐次方程组的求解

分为两步:1.计算特解。将增广矩阵化为行阶梯形矩阵,将r个未知数全部取值为0,得到一个特解。

2.计算对应的齐次方程组的基础解系。

4. 方程组有解的判断条件

程序实现:列主消元法

 #include<iostream> #include<cmath> using namespace std;  const int n = 3; //交换2个数的大小 template<class T> void SWAP(T& a, T& b) {     T c;     c = a;     a = b;      b = c; }  //高斯列主元素消元法 void gaussin_L(double a[n][n], double b[n]) {      int i, j, k;     int col, row;     for (k = 0; k < n - 1; k++)     {         double ave = 0;         //找出消元列中最大的那个元素所在的位置         for (i = k; i < n ; i++)             if (fabs(a[i][k]) > ave)             {                 ave = fabs(a[i][k]);                 cout << "ave " << ave << endl;                 row = i;                 col = k;             }          //如果该对角线元素是0,同样不能用高斯消元法来求解         if (a[row][row] == 0)         {             cout << "can't solve" << endl;             return;         }         //将找出的行进行交换         if (k != row) 		{             for (i = 0; i < n; i++)             {                          SWAP(a[row][i], a[k][i]);             } 			SWAP(b[k], b[row]); 		}         //消元过程         double c[n];         for (j = k + 1; j < n; j++)         {             c[j] = a[j][k] / a[k][k];             cout << c[j] << endl;         }         for (i = k + 1; i < n; i++)         {             for (j = 1; j < n; j++)             {                 a[i][j] = a[i][j] - c[i] * a[k][j];             }             b[i] = b[i] - c[i] * b[k];         }      }      double x[n];     x[n - 1] = b[n - 1] / a[n - 1][n - 1];     for (i = n - 2; i >= 0; i--)     {          double sum = 0;         for (j = i + 1; j < n; j++)             sum += a[i][j] * x[j];         x[i] = (b[i] - sum)/a[i][i];     }     //打印输出     for (i = 0; i < n ; i++)         cout << " x" << "[" << i << "]=" << x[i] << endl; }

思考:列主消元法仅适用于系数矩阵是方阵,而且必须是满秩?

这个消元的过程不就是最简化行列式的过程吗

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!