Close menu
Close menu

Tunnistaudu

Kirjaudu

Etkö ole vielä jäsen?

Liity jäseneksi

6. Yhtälöt

Yhtälönratkaisu ohjelmoimalla

Yhtälönratkaisu on matematiikan osa-alue, jossa työskentelyn vaiheittaisuus muistuttaa hyvin paljon ohjelmoinnillista työskentelytapaa. Termejä lisätään ja vähennetään (tai siirretään), yhtälön molempia puolia jaetaan ja kerrotaan. Tavoitteena on löytää kaikki yhtälön toteuttavat ratkaisut. Toimintatavat ovat ikään kuin aliohjelmia, joita suoritetaan tarpeen mukaan.

Tietokone ratkoo yhtälöt eri tavalla kuin ihminen, ja samalla tehtävän eteneminen jää näkymättömiin. Yhtälön ratkaisemisen vaiheet on siksi ensin opeteltava perinteisellä tavalla. Tietokonetta voidaan kuitenkin mm käyttää taitojen hiomiseen.

Pythonille on olemassa sympy-niminen moduuli, jonka avulla voidaan ratkaista monimutkaisiakin yhtälöitä. Jotta moduulin työkalut olisivat käytettävissä, tulee koodin alkuun kirjoittaa moduulille import-kutsu. Sympy-moduuli on erittäin monipuolinen sisältäen työkaluja kaikkeen laskentaan (http://docs.sympy.org/latest/index.html),
joten moduulista kannattaa tuoda vain ne osat, joita tarvitaan. Ensimmäisen asteen yhtälöiden ratkaisuun tarvitaan vain solve ja Symbol. Työkalut saa käyttöön importtaamalla ko moduulit, ja määrittelemällä ratkaistavat muuttujat symboleiksi:

from sympy.solvers import solve

from sympy import Symbol

x = Symbol(’x’)

Solve-funktio tarvitsee 2 parametria; ratkaistavan yhtälön sekä muuttujan, jonka suhteen yhtälö ratkaistaan. Yhtälö tulee syöttää siten, että yhtälön oikealla puolella ei ole lainkaan termejä. Kun termejä siirtää yhtälön oikealta puolelta vasemmalle, niiden etumerkki vaihtuu. Muuttujan ja kertoimen välinen kertomerkki on merkittävä näkyviin. Ratkaisun (ratkaisut) solve-funktio antaa hakasulkeiden sisällä listana. Ohessa esimerkkejä:

Yhtälö Yhtälö yleisessä muodossa
(termejä ei tarvitse yhdistää)
Koodi Ratkaisu
5x = 15 5x – 15 = 0 solve(5*x – 15, x) [ 3 ]
3x + 4 = -2x – 6 3x + 4 +2x + 6 = 0 solve(3*x + 4 + 2*x + 6, x) [ -2 ]
x2 = 81 x2 – 81 = 0 solve(x**2 – 81, x) [ -9, 9 ]

tehtavat1.PNG

Ratkaisut solve:n avulla:
6.1 yhtälöt 1 - solve.png

Toimintaikkunan tuloste:

6.2 yhtälöt 1 tuloste.png

Esimerkki 2:

Tutki, onko yhtälön ratkaisu.

Ratkaisu sijoittamalla:

vasen_oikea.PNG

Koska vasen ja oikea puoli saavat eri arvot, x = -3 ei ole yhtälön 6x + 4 = -x -12 ratkaisu.

Ratkaisua voidaan tutkia myös tietokoneen avulla. Tarjottu ratkaisuehdotus on ensin tallennettava muuttujaan. Tämän jälkeen yhtälön vasemman ja oikean puolen suuruuksia tutkitaan komennon == avulla (kertaa totuusarvot tarvittaessa kpl 1.8). Ratkaisun tutkimiseen ei tarvita solve-funktiota:

6.3 ratkaisun tutkiminen.png

Toimintaikkunan tuloste:

6.4 tuloste.png

Varmista ennen harjoituksia, että yhtälönratkaisun vaiheet ovat hallussa. Käytä harjoituksissa solve-funktiota. Muista kirjoittaa alkuun moduulien kutsut ja symbolin määrittely.

from sympy.solvers import solve
from sympy import Symbol
x = Symbol(’x’)

harj1.PNG

6.5 harjoitus 3 koodi-aihio.png