1. 二元线性方程组求解
- 二元线性方程组 { a 11 x 1 + a 12 x 2 = b 1 a 21 x 1 + a 22 x 2 = b 2 \begin{cases}a_{11}x_1+a_{12}x_2=b_1 \\ a_{21}x_1+a_{22}x_2=b_2 \end{cases} {a11x1+a12x2=b1a21x1+a22x2=b2的解,用二阶行列式表示 :
- 当 ∣ a 11 a 12 a 21 a 22 ∣ ≠ 0 {\begin{vmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{vmatrix}}\neq0 a11a21a12a22 =0时, x 1 = ∣ b 1 a 12 b 2 a 22 ∣ ∣ a 11 a 12 a 21 a 22 ∣ , x 2 = ∣ a 11 b 1 a 21 b 2 ∣ ∣ a 11 a 12 a 21 a 22 ∣ x_1=\frac{\begin{vmatrix} b_1 & a_{12} \\ b_2 & a_{22} \end{vmatrix}}{\begin{vmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{vmatrix}}, x_2=\frac{\begin{vmatrix} a_{11} & b_{1} \\ a_{21} & b_{2} \end{vmatrix}}{\begin{vmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{vmatrix}} x1= a11a21a12a22 b1b2a12a22 ,x2= a11a21a12a22 a11a21b1b2
2. 二阶行列式的值
- 对于二阶行列式,可用对角线法则求值。
- 图中, a 11 a_{11} a11与 a 22 a_{22} a22间的实线称为主对角线, a 12 a_{12} a12与 a 21 a_{21} a21间的虚线称为副对角线。
- 主对角线上两数的乘积,减去副对角线上两数的乘积,得到的差便是二阶行列式的值。
3. C++实现
#include <iostream>
#include <string>
using namespace std;
int SetCoe(string sCoeName, double &fCoeValue)
{
cout << sCoeName << " = ";
while (!(cin >> fCoeValue))
{
cin.clear();
cin.ignore();
cout << "输入错误,重新输入\n";
cout << sCoeName << " = ";
}
return 0;
}
int main()
{
cout << "对形如\n";
cout << "a11 * x1 + a12 * x2 = b1\n";
cout << "a21 * x1 + a22 * x2 = b2\n";
cout << "的二元线性方程组求解。\n\n";
cout << "输入系数:\n";
double a11, a12, b1, a21, a22, b2;
SetCoe("a11", a11);
SetCoe("a12", a12);
SetCoe("b1", b1);
SetCoe("a21", a21);
SetCoe("a22", a22);
SetCoe("b2", b2);
cout << "\n得到的解为:\n";
if (0 == (a11 * a22 - a12 * a21))
{
cout << "解方程失败.\n";
}
else
{
cout << "x1 = " << (b1 * a22 - a12 * b2) / (a11 * a22 - a12 * a21) << endl;
cout << "x2 = " << (a11 * b2 - a21 * b1) / (a11 * a22 - a12 * a21) << endl;
}
return 0;
}
参考文献:
- 同济大学数学系编. 工程数学 线性代数 第五版. 北京: 高等教育出版社