Soluzione di un sistema lineare, 2 equazioni, 2 incognite.
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 # Determinante con e, f in 1° colonna
Dy = a*f-c*e # Determinante con e, f in 2° colonna
x = Dx/D # SOLUZIONE x
y = Dy/D # SOLUZIONE 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)
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)