Yhtälöryhmän ratkaiseminen taulukkolaskennolla ja GeoGebralla

Törmäsin vanhaan tiedostooni vuodelta 2004, siinä oli ratkaistu hankalan vastussysteemin resistanssi käyttäen taulukkolaskentaa. Tiedosto oli alun perin tehty Excelissä ja nytpä se ei enää toiminut oikein. Arvelen, että alun perin olin tehnyt tämän viime vuosituhannella. Päätinpä tehdä yhtälöryhmän ratkaisun uudelleen käyttäen matriisifunktioita.

Esitän menetelmän Google Sheetsissä, menetelmä toimii samalla tavoin Excelissä ja LibreOfficen Calcissa. Lopuksi teen saman GeoGebralla matriisikomennoilla.

resistanssiongelma

Ongelma on oheisessa kuvassa. Pitää ratkaista kyseisen vastussysteemin resistanssi pisteiden A ja B välillä. Muistaakseni ongelma oli alkuperäisessä muodossa sellainen, että kaikkien vastusten resistanssi oli 1 Ω. Sen ratkaiseminen onnistunee lahjakkaalta fyysikolta pelkästään katsomalla tuota kytkentäkaaviota :o)

ratkaisu Kirchoffin laeilla

Itse en ainakaan keksi mitään simppeliä kaavaa resistanssin laskemiseksi. Tehdään Kirchoffin lakien avulla yhtälöt eri osissa kulkevista virroista, ratkaistaan niiden suuruudet ja käytetään sitä tietoa kokonaisresistanssin laskemiseen.

Merkitään 1 Ω:n vastuksen läpi kulkeva virtaa I1:llä, 2 Ω:n läpi kulkeva virtaa I2:lla, jne. Virtojen suunta on vasemmalta oikealle. Kuvitellaan, että pisteiden A ja B välillä jännite U = 10 V:n. Näin saadaan Kirchoffin lakien avulla helposti viisi yhtälöä

Kuva, joka sisältää kohteen teksti

Kuvaus luotu automaattisesti

Kokonaisresistanssi R tulee olemaan 

Kuva, joka sisältää kohteen teksti, kello

Kuvaus luotu automaattisesti

ratkaisu Google Sheetsillä

Laitan Google Sheetsiin resistanssit soluihin B6:B10 ja jännitteen soluuun B12.

Yhtälöryhmän kertoimet ovat soluissa A17:F21. Laitan ne soluihin viittauksena R:n ja U:n arvoihin, eli solussa A17 on =-B6, solussa C17 on =B8 jne.

Kuva, joka sisältää kohteen teksti, kello

Kuvaus luotu automaattisesti

Näytä-valikon Näytä kaavat-komennolla kaavat saa näkyviin ja tietysti takaisin näkyville kuten näissä kuvissa.

Kuva, joka sisältää kohteen teksti, kello

Kuvaus luotu automaattisesti

Soluun A25 lasketaan kerroinmatriisin determinantti komennolla

=MDETERM(A17:E21)

Mikäli determinantti on nollasta poikkeava, niin yhtälöryhmällä on ratkaisu.

Ratkaistaan virtojen arvot soluihin A28:E28. Kirjoitetaan soluun A28 komento

=TRANSPOSE(MMULT(MINVERSE(A17:E21);F17:F21))

Suomenkielisessä Excelissä ja LibreOfficessa tuo rivi pitäisi kirjoittaa muodossa

=TRANSPONOI(MKERRO(MKÄÄNTEINEN(A17:E21);F17:F21))

Kaavassa lasketaan kerroinmatriisin käänteismatriisin ja vakiotermivektorin tulo ja käännetään se vaakasuuntaan.

Kuva, joka sisältää kohteen pöytä

Kuvaus luotu automaattisesti

Kokonaisresistanssi lasketaan soluihin A31 ja A32

Kuva, joka sisältää kohteen pöytä

Kuvaus luotu automaattisesti

Tätä kirjoittaessa löysin vanhemman version alkuperäisestä Excel-tiedostosta, se toimi moitteettomasti. Siinä solun A28 ratkaisu oli tehty LINREGR-funktiolla

=LINREGR(F17:F21;A17:E21;EPÄTOSI;EPÄTOSI)

GeoGebran CAS 6×6 yhtälöryhmä

GeoGebran CAS:issa ongelma olisi ratkennut vaikkapa seuraavasti.

Kuva, joka sisältää kohteen pöytä

Kuvaus luotu automaattisesti

Solun 7 ratkaisu kertoo, että kokonaisresistanssi R on riippumaton U:sta niin kuin pitääkin.

Solussa 8 on sijoitus

Kuva, joka sisältää kohteen pöytä

Kuvaus luotu automaattisesti

Lasketaan samalla kuinka suuri kokonaisresistanssi olisi, jos kaikkien vastusten resistanssi olisi 1.

Nyt kun tietää ratkaisun, niin saattaa olla helpompaa nähdä miksi näin käy tuijottamalla pelkästään kytkentäkaaviota.

GeoGebran matriisikomennot

Edellistä CAS-versiota tehdessä oli aika työlästä kirjoittaa yhtälöitä muuttujineen, mitäpä jos halutaan tehdä  GeoGebralla saman tapainen matriisityylinen ratkaisu kuin Google Sheetsissä.

Kopioidaan Sheetsratkaisusta alkuperäinen matriisi ja sijoitetaan se GeoGebran taulukkolaskentaan alueelle A2:F6. Valitaan alue A2:E2 eli ensimmäisen yhtälön kertoimet ja hiiren oikealla painikkeella valitaan Luo → Lista.

Kuva, joka sisältää kohteen pöytä

Kuvaus luotu automaattisesti

Luodaan samalla tavalla muiden yhtälöiden kertoimista listat l2, l3, l4 ja l5 sekä vakiotermeistä lista l6.

Kuva, joka sisältää kohteen nuoli

Kuvaus luotu automaattisesti

Muodostetaan kerroinlistoista matriisi kirjoittamalla CAS:iin

M:={l1, l2, l3, l4, l5}

Dererminantin arvoksi saadaan 157 komennolla

Determinantti(M)

Annetaan yhtälöryhmän ratkaisun nimeksi Ra ja ratkaistaan se näppäilemällä 

Ra:=M^-1*l6

Kokonaisresistanssi saadaan käyttämällä vakiotermilistan viidettä ja  ratkaisulistan Ra ensimmäistä ja kolmatta jäsentä.

R=l6(5)/(Ra(1)+Ra(3))
Kuva, joka sisältää kohteen pöytä

Kuvaus luotu automaattisesti

linkit

Google Sheets-tiedosto https://docs.google.com/spreadsheets/d/1aW1ZqA-rO2MnbvGXrVf9V8fZVz_58nVNwzjC-jEqWko/edit?usp=sharing

GeoGebra-tiedosto yhtälöryhmänä https://www.geogebra.org/m/zhjndgt7

Vaikuttaa siltä, että alla olevat ei avaudu geogebra.orgissa ja Classic 6:lla. Jos haluat tiedoston omalle koneellesi, niin klikkaa tuota linkkiä ja oikeasta yläkulmasta kolmen pisteetn takaa Tietoa ja Lataa koneellesi

GeoGebra-tiedosto matriisikomentoratkaisuun https://www.geogebra.org/m/jqgmknb7

R^2 eli selitysaste GeoGebralla

[edit 21.11.20. Lisäsin virkkeen selitysasteen toimivuudesta.]

Resonanssi-kirjasarjan 7. osassa Aine ja säteily tehtävässä 457 pyydetään osoittamaan, että isotoopin hajoamisen lukumäärä ajan funktiona, on parempi mallintaa eksponenttifunktiona kuin lineaarisena mallina. Tehtävää antaessani kuvittelin, että korrelaation/selitysasteen eksponentiaaliselle ja  lineaariselle sovitukselle saisi suoraan GeoGebran Kahden muuttujan regressioanalyysillä. Muistin väärin tai sitten kyseinen työkalu ei ole sitä ennenkään laskenut.

Oppitunnilla abien kanssa huomasinkin tämän artikkelin kirjoittamisen jälkeen, että Kahden muuttujan regressiotyökalu laskeekin R^2:n oikein. Korrelaatiokerroin toimii vain lineaariselle mallille.

kuva Resonanssikirjasta

Lasketaan selitysaste sekä GeoGeberalla, että LibreOfficella.

GeoGebra

GeoGebrassa täytyy selitysaste laskea komennolla RegressioNeliö( <Pistelista>, <Funktio> ).

Sijoitetaan tehtävän luvut GeoGebran taulukkolaskentaan. Valitaan luvut ja luodaan niistä pistelista nimeltä l1. Sovitetaan suora ja eksponenttifunktio Syöttökentän komennoilla

f(x) = SovitaPolynomi(l1, 1)
g(x) = SovitaEksp(l1)

Selitysasteet saadaan kirjoittamalla syöttökenttään

linSel = RegressioNeliö(l1, f)
ekspSel = RegressioNeliö(l1, g)

LibreOfficessa

LibreOfficessa R^2:n laskeminen onnistuu helpoimmin kuvaajan piirron yhteydessä trendiviivan avulla.

Alla olevien kuvien avulla yritän kuvailla ratkaisutapani.


Komennon Wikisivu https://wiki.geogebra.org/en/RSquare_Command?note=fi

Alfahajoamisyhtälöpari GeoGebra CAS:illa

[edit. 3.11. Lisäsin Edwardin upean ”käsin tehdyn” ratkaisun tarinan loppuun.]

Fysiikan 7. kurssilla Aine ja säteily, lasketaan alfahajoamisessa vapautuva alfahiukkasen ja tytärytimen liike-energia. Yhtälöpari ratkeaa suhteellisen mukavasti kynällä ja paperilla, katsotaan miten saman asian voisi tehdä GeoGebralla. Samalla opitaan muutamia yhtälönratkaisuun liittyvää temppuja, jotka helpottavat laskijan elämää.

Käytän tässä GeoGebra 5 -versiota, mutta sama toimii GeoGebra 6:ssa ja uudessa GeoGebra CAS-ohjelmassa. Tarinan lopussa kommentoin miten GeoGebra CAS eroaa 5 ja 6 versioista.

Olkoon m alfahiukkasen massa, x sen nopeus, M tytärytimen massa, -y sen nopeus ja Q reaktiossa vapautuva energia. Energian säilymisen ja liikemäärän säilymisen perusteella saadaan yhtälöt:

Klikkaamalla hiirellä solun 1 siniseen alueeseen ja Vaihtonäppäin pohjassa rivin 2 siniseen alueeseen saadaan yhtälöt valittua ja Ratkaise työkalulla saadaan yhtälöpain ratkaisu. Saman asian olisi voinut tehdä komennolla Ratkaise({$1, $2},{x, y}). Tässä dollarimerkkien avulla viitataan riveihin 1 ja 2. Dollarimerkki tässä yhteydessä on siitä mukava, että jos haluaa muuttaa rivin 1 tai 2 yhtälöitä, niin GeoGebra muuttaa vastauksen automaattisesti. Mikäli soluihin viittaa #-merkillä, niin alkuperäisten yhtälöiden muuttaminen ei muuta Ratkaise komennon tuotosta.

Saatiin tuli kaksi (x, y) ratkaisua. Jos alkupeäisiä yhtälöitä tulkitsee geometrisesti, niin ensimmäinen yhtälö on ellipsi ja toinen yhtälö origon kautta kulkeva suora. Leikkauspisteet ovat koordinaatistossa symmetrisesti 1. ja 3. neljänneksissä. CAS tuottaa ratkaisut listana, jonka alkioina ovat ratkaisulistat. Tuosta listasta on hieman hankala poimia vaikkapa ensimmäisen yhtälön y:n arvoa. Niinpä kannattaa käyttää Ratkaisut-komentoa. Se tuottaa yhtälön ratkaisujen lausekkeista listan ja yhtälöpareissa matriisin. Annetaan ratkaisulle nimeksi RR.

Tässä matriisin ylin rivi on ensimmäinen ratkaisu ja alin toinen. Vasen pystysarake on x ja oikea y.  Merkitään v:llä ensimmäisen ratkaisun x:ää eli alfahiukkasen nopeutta ja V:llä tytärytimen nopeutta eli y:tä. Alkio-komennon avulla saadaan poimittua matriisista oikeat alkiot. Esimerkiksi Alkio(RR, 1, 2) valitsee RR-matriisista ensimmäisen rivin toisen alkion.

Lasketaan alfahiukkasen liike-energia.

Klikkaamalla kaksi kertaa Laske-työkaluun 

saadaan sievennetty ratkaisu.

Saman asian olisi voinut tehdä suoraan Sievennä-komennolla. Lasketaan ja sievennetään sen avulla tytärytimen liike-energia.

GeoGebra 6:ssa ratkaisu toimii samalla tavoin. GeoGebra CAS:issa ei ole työkalupainikkeita, niinpä ratkaiseminen pitää tehdä komennoilla. Rivejä ei myöskään numeroida. Siksi yhtälöt pitää nimetä rivin oikeassa yläkulman kolmen pisteen takana olevassa valikossa Lisää nimi.

Alla näkyy valikko noiden kolmen pisteen takana.

Oletuksena yhtälöt ovat nimeltään muotoa eq1, eq2, jne.

Alla koko ratkaisu GeoGebra CAS:illa.

Tähän tarinaan liittyvä esimerkkitiedosto löytyy GeoGebra Materiaaleista.

Eikä siinä vielä kaikki

Edward Krogius laittoi Facebookiin kauniin ratkaisumenetelmän ilman CAS:ia. En ole nähnyt tätä ennen. Oppikirjoissa yleensä näytetään ”tietyntyyppinen” temppu tehtävän ratkaisuun käsi-paperimenetelmällä. Verrannollisuuksien ymmärtäminen on kova juttu.