Решите систему двух уравнений с двумя неизвестными ниже:
a1, b1, c1, a2, b2 и c2 вводятся самим пользователем.
Сначала я пытался найти математическое решение проблемы и, похоже, далеко уйти не могу ..
Что я пробовал до сих пор:
- Из первого уравнения найти y. (b1y = c1-a1x, y = (c1-a1x) / b1)
- Затем я заменяю y во втором уравнении и получаю одно уравнение с 1 неизвестным в данном случае x. Однако я не могу решить уравнение, я получаю некоторые нечетные числа / уравнения и останавливаюсь на этом.
Это правильно или есть более простой способ сделать это?
Текущий код:
#include <iostream>
using namespace std;
int main()
{
int a1, b1, c1, a2, b2, c2;
cout << "Enter the values for the first equation." << endl;
cout << "Enter the value for a1" << endl;
cin >> a1;
cout << "Enter the value for b1" << endl;
cin >> b1;
cout << "Enter the value for c1" << endl;
cin >> c1;
cout << "Enter the values for the second equation." << endl;
cout << "Enter the value for a2" << endl;
cin >> a2;
cout << "Enter the value for b2" << endl;
cin >> b2;
cout << "Enter the value for c2" << endl;
cin >> c2;
cout << "Your system of equations is the following:" << endl;
cout << a1 << "x+" << b1 << "y=" << c1 << endl;
cout << a2 << "x+" << b2 << "y=" << c2 << endl;
if ((a1 * b2) - (b1 * a2) == 0){
cout << "The system has no solution." << endl;
}
else{
res_x = ((c1*b2) - (b1*c2))/((a1*b2)-(b1*a2));
res_y = ((a1*c2) - (c1*a2)) / ((a1*b2) - (b1*a2));
cout << "x=" << res_x << " y=" << res_y << endl;
}
return 0;
}
b2
, второе отношение наb1
, а затем вычтите два отношения. Вы получите что-то вродеx * (a1b2-a2b1) = c1b2 - c2b1
. Теперь вам просто нужно проверить, чтоa1b2 - a2b1
не равно 0, и если это не так, разделите последнее отношение с ним, и вы получитеx
. Если это 0, у вас нет решения. - person DrM   schedule 27.10.2013