2011-07-22 15 views

Odpowiedz

54

Tak, bardzo popularny pakiet NumPy ma a function to do this. Ich przykład:

Rozwiąż układ równań 3 * x0 + x1 = 9 i x0 + 2 * x1 = 8:

>>> import numpy as np 
>>> a = np.array([[3,1], [1,2]]) 
>>> b = np.array([9,8]) 
>>> x = np.linalg.solve(a, b) 
>>> x 
array([ 2., 3.]) 

https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.linalg.solve.html

+2

Czy mogę używać np.linalg.solve (a, b) funkcja rozwiązać system równania modulo 2 (nad polem Galois)? Lub jeśli znasz inny pakiet, który rozwiązałby ten problem, byłby bardzo pomocny :) – giliev

+0

"Rozwiąż" numpy nie rozwiąże układów równań z większą liczbą równań niż zmiennych (mój przypadek użycia). Do tego użyj zamiast tego programu sympy. – Tiago

7

Można użyć metody najmniejszych kwadratów w Pythonie rozwiązać układ równań na przykład do rozwiązania równania 3x + 4y = 7 i 5x + 6y = 8

>>> import numpy 
>>> a=[[3,4],[5,6]] 
>>> b=[7,8] 
>>> numpy.linalg.lstsq(a,b) 
(array([-5. , 5.5]), array([], dtype=float64), 2, array([ 9.27110906, 0.21572392])) 
Powiązane problemy