Számtalan esetben kell mátrix műveletekhez alkalmaznunk, hogy megoldjuk feladatokat: különösen amikor elhagyjuk a 1 ismeretlenes kérdéseket, és több változóval dolgozunk. A lineáris algebra elméleti alapjai elérhetőek szerencsére magyarul is a neten1, viszont sajnos hiány van gyakorlati megvalósítás ismertetéséből. Ezért úgy gondoltam indítok egy kis sorozatot, ahol végigveszem a fontosabb feladatokat, és szemléltetem, hogyan oldjuk meg Pythonban.
Ha többismeretlenes lineáris egyenletrendszereket akarunk megoldani több módszer áll rendelkezésünkre, ezek egyike a Gauss-elimináció.
In medias res nézzük egyből egy egyenletrendszert:
(1)
(2)
(3)
Ezt ugye a következő mátrix formában lehet felírni:
(4)
(4)
Ahol az A mátrix (4) az egyenlet bal oldalából épül fel, míg a b vektor (5) az egyenletrendszer jobb oldalából.
Most nem fogom levezetni a megoldás lépéseit, mivel az angol wikipedián jól szemléltetett. Helyette nézzük meg, hogyan oldjuk meg Pythonban. Ehhez a numpy linarg.solve függvényt használhatjuk. A függvény első paramétere az A mátrix, míg a másodig a b vektor.
import numpy as np # A mátrix a = np.array([[2,1,-1], [-3,-1,2], [-2,1,2]]) # b vektor b = np.array([8,-11,-3]) # a megoldás [2, 3, -1] megoldas = np.linalg.solve(a, b) # ellenőrizzük a megoldás valid. Az eredménynek True-nak kellene lennie ellenorzes = np.allclose(np.dot(a, megoldas), b)
Ez elég egyszerű volt. Több hasonló következik.
Lábjegyzet
- Pl. a mateking.hu van egy alap elméleti lineáris algebra rész.
“Gauss-elimináció – Lineáris algebra Pythonban” bejegyzéshez egy hozzászólás