Il codice seguente è poco strutturato…
Risolve il sistema lineare con la regola di Cramer e
- le funzioni copia(), sottomatrice()
- la regola di Laplace.
def cramer(A, b):
n = len(A)
dA = determinante(A) # Determinante di A
x = [] # Vettore soluzione, vuoto
for colonna in range(n): # Per ogni colonna di A...
cA = copia(A) # Calcola il det. di A con b nella colonna c
for riga in range(n):
cA[riga][colonna] = b[riga]
dcA = determinante(cA)
xc = dcA/dA # Calcola xc come rapporto tra ...
x.append(xc) # Aggiunge xc al vettore soluzione x
return x
Prova
A = [ [2,7], [1,0] ]
b = [ 27, 10 ]
x = cramer(A, b)
for i, xi in enumerate(x):
print("x%i = %f" %(i+1, xi))
# x1 = 10.000000
# x2 = 1.000000