Решить систему двух уравнений с двумя неизвестными

Решите систему из двух уравнений с двумя неизвестными ниже:

введите описание изображения здесь

a1, b1, c1, a2, b2 и c2 вводятся самим пользователем.

Сначала я пытался найти математическое решение для проблемы, и я не могу идти далеко …

Что я пробовал до сих пор:

  1. Из первого уравнения, чтобы найти у. (b1y = c1-a1x, y = (c1-a1x) / b1)
  2. Затем я заменяю 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;
}

9

Решение

мы решаем линейную систему, используя Правило Крамера:

int main(int argc, char** argv) {
/* we solve the linear system
* ax+by=e
* cx+dy=f
*/
if(argc != 7) {
cerr<<"Cramer equations system: error,"" we need a,b,c,d,e,f parameters.\n";
return -1;
}

double a,b,e;
double c,d,f;
sscanf(argv[1],"%lf",&a);
sscanf(argv[2],"%lf",&b);
sscanf(argv[3],"%lf",&e);
sscanf(argv[4],"%lf",&c);
sscanf(argv[5],"%lf",&d);
sscanf(argv[6],"%lf",&f);

double determinant = a*d - b*c;
if(determinant != 0) {
double x = (e*d - b*f)/determinant;
double y = (a*f - e*c)/determinant;
printf("Cramer equations system: result, x = %f, y = %f\n", x, y);
} else {
printf("Cramer equations system: determinant is zero\n""there are either no solutions or many solutions exist.\n");
}
return 0;
}

./ cramer_equation_system 1 2 5 1 -1 -1

Система уравнений Крамера: результат, х = 1,000000, у = 2,000000

11

Другие решения

Других решений пока нет …