Regola di Cramer

Vedi la discussione.

Fai attenzione ai nomi delle variabili: di input, intermedie, di output

1

print("ax + by = e")
print("cx + dy = f")

a = float(input("a = "))
b = float(input("b = "))
c = float(input("c = "))
d = float(input("d = "))
e = float(input("e = "))
f = float(input("f = "))

D  = a*d-b*c              # Determinante
Dx = d*e-b*f              # ... x
Dy = a*f-c*e              # ... y
x  = Dx/D                 # SOLUZIONE x
y  = Dy/D                 # ...       y

print("x =", x)
print("y =", y)

2

Se il determinante è nullo?

...

D = a*d-b*c
if(D == 0):
    print("Determinante nullo.")
else:
    Dx = d*e-b*f
    Dy = a*f-c*e
    x  = Dx/D
    y  = Dy/D
    print("x =", x)
    print("y =", y)

fractions

Utilizza il modulo fractions: se i coefficienti delle equazioni sono frazioni anche i risultati saranno frazioni!

import fractions
 
a = fractions.Fraction( 1, 2)
b = fractions.Fraction(-3, 4)
c = fractions.Fraction(-5, 6)
d = fractions.Fraction( 4, 7)
e = fractions.Fraction( 7, 9)
f = fractions.Fraction(17, 2)
 
D = a*d-b*c
if(D == 0):
    print("Determinante nullo.")
else:
    Dx = d*e-b*f
    Dy = a*f-c*e
    x  = Dx/D
    y  = Dy/D
    print("x = %10s (%10f)" %(x, x))
    print("y = %10s (%10f)" %(y, y))

Output

x =  -3437/171 (-20.099415)
y =  -7406/513 (-14.436647)