Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Solve system of two equations with two unknowns

Solve the system of two equations with two unknowns below:

enter image description here

a1, b1, c1, a2, b2 and c2 are inputted by the user himself.

I've been trying to find a math solution for the problem first and I can't seem to go far..

What I've tried so far is :

  1. From first equation to find y. (b1y = c1-a1x, y = (c1-a1x)/b1)
  2. Then I replace y in the second equation and I get one equation with 1 unknown in this case x. However, I can't solve the equation, I get some odd numbers / equations and stopped here.

Is this correct or is there an easier way to do this?

Current code:

#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;
}
like image 423
user2925251 Avatar asked Oct 27 '13 14:10

user2925251


People also ask

How many equations do you need to solve for 2 unknowns?

In order to solve for a given number of unknowns, we require that the same number of equations be provided. For instance, we would require two equations to solve for two unknown quantities. We would require three equations to solve for three unknown quantities, and so on.


1 Answers

we solve the linear system using Cramer's rule:

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

Cramer equations system: result, x = 1.000000, y = 2.000000

like image 184
4pie0 Avatar answered Nov 15 '22 11:11

4pie0