randRangeNonZero(-6, 6) randRangeNonZero(-6, 6) randRangeNonZero(-6, 6) randRangeNonZero(-6, 6) randRangeNonZero(-9, 9) randRangeNonZero(-9, 9) (function() { var lcm = getLCM(abs(A1), abs(A2)); var m1 = lcm / abs(A1); var m2 = lcm / abs(A2); if (A1 * A2 > 0) { if (m1 === 1) { m2 *= -1; } else { m1 *= -1; } } return [m1, m2]; })() (function() { var lcm = getLCM(abs(B1), abs(B2)); var m1 = lcm / abs(B1); var m2 = lcm / abs(B2); if (B1 * B2 > 0) { if (m1 === 1) { m2 *= -1; } else { m1 *= -1; } } return [m1, m2]; })() abs(MULT_1 * MULT_2) < abs(MULT_3 * MULT_4) ? true : false XY_FLAG ? [MULT_1, MULT_2] : [MULT_3, MULT_4] C1 * (B1 * MULT_1 + B2 * MULT_2) - B1 * (C1 * MULT_1 + C2 * MULT_2) A1 * (B1 * MULT_1 + B2 * MULT_2) getGCD(X_NUMER1, X_DENOM1) X_NUMER1 / X_GCD X_DENOM1 / X_GCD C1 * MULT_3 + C2 * MULT_4 A1 * MULT_3 + A2 * MULT_4 C1 * MULT_1 + C2 * MULT_2 B1 * MULT_1 + B2 * MULT_2 getGCD(Y_NUMER1, Y_DENOM1) Y_NUMER1 / Y_GCD Y_DENOM1 / Y_GCD

Să se afle x și y.

\begin{align*} expr(["+", ["*", A1, "x"], ["*", B1, "y"]]) &= C1 \\ expr(["+", ["*", A2, "x"], ["*", B2, "y"]]) &= C2 \end{align*}

x = X_NUMER2 / X_DENOM2

y = Y_NUMER / Y_DENOM

O metodă de a rezolva un astfel de sistem este să folosim metoda eliminării.

Pentru a elimina \blue{x} va trebui să facem astfel încât coeficientul lui dintr-o ecuație să fie egal cu opusul lui din cealaltă.

Pentru a elimina \green{y} va trebui să facem astfel încât coeficientul lui dintr-o ecuație să fie egal cu opusul lui din cealaltă.

\begin{align*} \blue{expr(["*", A1, "x"])} + \green{expr(["*", B1, "y"])} &= C1 \\ \blue{expr(["*", A2, "x"])} + \green{expr(["*", B2, "y"])} &= C2 \end{align*}

Înmulțind ecuație de sus cu MULT_A și ecuația de jos cu MULT_B rezultă:

\begin{align*} \blue{expr(["*", A1 * MULT_A, "x"])} + \green{expr(["*", B1 * MULT_A, "y"])} &= C1 * MULT_A \\ \blue{expr(["*", A2 * MULT_B, "x"])} + \green{expr(["*", B2 * MULT_B, "y"])} &= C2 * MULT_B \end{align*}

Dacă adunăm cele două ecuații, ne rezultă:

\green{expr(["*", Y_DENOM1, "y"])} = Y_NUMER1

Acum împărțim în ambele părți prin Y_DENOM1 și simplificăm.

\green{y = fractionReduce(Y_NUMER, Y_DENOM)}

Vom înlocui \green{y} cu \green{fractionReduce(Y_NUMER, Y_DENOM)} în prima ecuație:

\blue{expr(["*", A1, "x"])} + \green{B1}(\green{fractionReduce(Y_NUMER, Y_DENOM)}) = C1

\blue{expr(["*", A1, "x"])} + fractionReduce(B1 * Y_NUMER, Y_DENOM) = C1

\blue{expr(["*", A1, "x"])} = fractionReduce(C1 * Y_DENOM - B1 * Y_NUMER, Y_DENOM)

\blue{x = fractionReduce(X_NUMER, X_DENOM)}

Iar soluțiile sunt \blue{x = fractionReduce(X_NUMER, X_DENOM)}, \enspace \green{y = fractionReduce(Y_NUMER, Y_DENOM)}.

Dacă adunăm cele două ecuații, ne rezultă:

\blue{expr(["*", X_DENOM2, "x"])} = X_NUMER2

Acum împărțim în ambele părți prin X_DENOM2 și simplificăm.

\blue{x = fractionReduce(X_NUMER2, X_DENOM2)}

Vom înlocui \blue{fractionReduce(X_NUMER2, X_DENOM2)} cu \blue{x} în ecuația de sus:

\blue{A1}(\blue{fractionReduce(X_NUMER2, X_DENOM2)}) + \green{expr(["*", B1, "y"])} = C1

fractionReduce(A1 * X_NUMER2, X_DENOM2) + \green{expr(["*", B1, "y"])} = C1

\green{expr(["*", B1, "y"])} = fractionReduce(C1 * X_DENOM2 - A1 * X_NUMER2, X_DENOM2)

\green{y = fractionReduce(Y_NUMER, Y_DENOM)}

Iar soluțiile sunt \blue{x = fractionReduce(X_NUMER2, X_DENOM2)}, \enspace \green{y = fractionReduce(Y_NUMER, Y_DENOM)}.

A1 > 0 ? "" : "-" B1 > 0 ? "+" : "-" A2 / B2 > 0 ? "-" : "" A2 / B2 * B1 > 0 ? "-" : ""

Să se afle x și y.

\begin{align*}expr(["+", ["*", A1, "x"], ["*", B1, "y"]]) &= C1 \\ expr(["+", ["*", A2, "x"], ["*", B2, "y"]]) &= C2\end{align*}

x = X_NUMER / X_DENOM

y = Y_NUMER / Y_DENOM

O metodă de a rezolva este să scriem ecuația a doua în funcție de y și să înlocuim în prima.

Putem începe prin a scădea expr(["*", A2, "x"]) din ambele părți ale ecuației.

expr(["*", B2, "y"]) = \blue{expr(["+", ["*", -A2, "x"], C2])}

Acum putem împărții prin B2 pentru a izola y.

y = \blue{SIGN_1decimalFraction( -A2 / B2, "true", "true" )x + decimalFraction( C2 / B2, "true", "true" )}

Iar acum vom înlocui y în prima expresie.

expr(["*", A1, "x"])B1_SIGNabs( B1 )(\blue{SIGN_1decimalFraction( -A2 / B2, "true", "true" )x + decimalFraction( C2 / B2, "true", "true" )}) = C1

expr(["*", A1, "x"]) + SIGN_2decimalFraction( -A2 / B2 * B1, "true", "true" )x + decimalFraction( C2 / B2 * B1, "true", "true" ) = C1

Vom simplifica din termeni și vom afla x:

decimalFraction( A1 + ( -A2 / B2 * B1 ), "true", "true" )x + decimalFraction( C2 / B2 * B1, "true", "true" ) = C1

decimalFraction( A1 + ( -A2 / B2 * B1 ), "true", "true" )x = decimalFraction( C1 - ( C2 / B2 * B1 ), "true", "true" )

x = fractionReduce( X_NUMER, X_DENOM )

Acum înlocuim x cu fractionReduce( X_NUMER, X_DENOM ) în prima ecuație:

expr(["+", ["*", A1, " " + fractionReduce( X_NUMER, X_DENOM )], ["*", B1, "y"]]) = C1

expr(["+", fractionReduce( A1 * X_NUMER, X_DENOM ), ["*", B1, "y"]]) = C1

expr(["*", B1, "y"]) = fractionReduce( C1 * X_DENOM - A1 * X_NUMER, X_DENOM )

y = fractionReduce(Y_NUMER, Y_DENOM)

Iar soluțiile sunt x = fractionReduce(X_NUMER, X_DENOM), \enspace y = fractionReduce(Y_NUMER, Y_DENOM).

A1 > 0 ? "" : "-" B1 > 0 ? "+" : "-" A2 / B2 > 0 ? "-" : "" A2 / B2 * A1 > 0 ? "-" : ""

Să se afle x și y.

\begin{align*}expr(["+", ["*", A1, "x"], ["*", B1, "y"]]) &= C1 \\ expr(["+", ["*", A2, "x"], ["*", B2, "y"]]) &= C2\end{align*}

x = X_NUMER / X_DENOM

y = Y_NUMER / Y_DENOM

O metodă de a rezolva este să scriem ecuația a doua în funcție de x și să înlocuim în prima.

Vom începe prin a scădea expr(["*", B2, "y"]) din ambele părți ale egalului.

expr(["*", A2, "x"]) = \blue{ expr(["+", ["*", -B2, "y"], C2])}

Acum putem împărții în amele părți prin A2 pentru a ne rămâne doar x într-o parte.

x = \blue{SIGN_1decimalFraction( -B2 / A2, "true", "true" )y + decimalFraction( C2 / A2, "true", "true" )}

Și acum putem înlocui x în prima ecuație.

A1_SIGNabs( A1 )(\blue{SIGN_1decimalFraction( -B2 / A2, "true", "true" )y + decimalFraction( C2 / A2, "true", "true" )}) + expr(["*", B1, "y"]) = C1

SIGN_2decimalFraction( -B2 / A2 * A1, "true", "true" )y + decimalFraction( C2 / A2 * A1, "true", "true" ) + expr(["*", B1, "y"]) = C1

Vom simplifica din termeni și vom afla y.

decimalFraction( B1 + ( -B2 / A2 * A1 ), "true", "true" )y + decimalFraction( C2 / A2 * A1, "true", "true" ) = C1

decimalFraction( B1 + ( -B2 / A2 * A1 ), "true", "true" )y = decimalFraction( C1 - ( C2 / A2 * A1 ), "true", "true" )

y = fractionReduce(Y_NUMER, Y_DENOM)

Acum vom înlocui y cu fractionReduce( Y_NUMER, Y_DENOM ) în prima ecuație.

expr(["+", ["*", A1, "x"], ["*", B1, " " + fractionReduce( Y_NUMER, Y_DENOM )]]) = C1

expr(["+", ["*", A1, "x"], fractionReduce( B1 * Y_NUMER, Y_DENOM )]) = C1

expr(["*", A1, "x"]) = fractionReduce(C1 * Y_DENOM - B1 * Y_NUMER, Y_DENOM)

x = fractionReduce(X_NUMER, X_DENOM)

Iar soluțiile sunt x = fractionReduce(X_NUMER, X_DENOM),\enspace y = fractionReduce(Y_NUMER, Y_DENOM).