Πίνακες και Γραμμική Παλινδρόμηση
[[0]*cols]*rowsΣημαντικό
\(A \cdot B \neq B \cdot A\) γενικά.
Ευθεία απαλοιφή (→ άνω τριγωνική μορφή) + αντικατάσταση προς τα πίσω, γραμμή προς γραμμή:
def gauss_solve(A, b):
n = len(A)
M = [A[i][:] + [b[i]] for i in range(n)] # επαυξημένος πίνακας
for col in range(n):
pivot_row = max(range(col, n), key=lambda r: abs(M[r][col]))
M[col], M[pivot_row] = M[pivot_row], M[col]
for row in range(col + 1, n):
factor = M[row][col] / M[col][col]
for k in range(col, n + 1):
M[row][k] -= factor * M[col][k]
x = [0] * n
for row in range(n - 1, -1, -1):
s = M[row][n] - sum(M[row][col] * x[col] for col in range(row + 1, n))
x[row] = s / M[row][row]
return xΠροσαρμογή δεδομένων σε καμπύλη = ένα ακόμα γραμμικό σύστημα (κανονικές εξισώσεις) — λύνεται με την ίδια gauss_solve:
Τέσσερα σύνολα · ίδιος μ.ο., διασπορά, συσχέτιση, ευθεία ελαχίστων τετραγώνων:
Ίδια νούμερα, τέσσερις ιστορίες. Πάντα σχεδιάζουμε τα δεδομένα.
⤺ Πλήρεις σημειώσεις · Πρόγραμμα μαθήματος
Τμήμα Μαθηματικών, ΕΚΠΑ