1 10.10.2016/VMT (Tämän tiedoston sisältö voi päivittyä kurssin edetessä) Yhtälöryhmät Yhtälöryhmällä tarkoitetaan yhtälöitä, joissa voi olla useita tuntemattomia ja kaikkien ryhmän yhtälöiden tulee olla voimassa samanaikaisesti. Esimerkki: jolla on selvästikin ratkaisu x = ½ ja y = ½. Jos yhtälöryhmässä on enemmän yhtälöitä kuin tuntemattomia, niin yhtälöryhmää sanotaan ylimääräytyneeksi ja vastaavasti päinvastaisessa tapauksessa alimääräytyneeksi. Yleensä ylimääräytyneellä yhtälöryhmällä ei ole eksaktia (tarkasti yhtälöt toteuttavaa) ratkaisu ja yleensä alimääräytyneellä on ääretön määrä ratkaisuja. Esimerkkejä: Tällä ei selvästikään ole ratkaisua, sillä kahden ylimmän mukaan x = ½ ja y = ½, kahden alimman mukaan x = 3/4 ja y = 3/4 ja ylimmän ja alimman mukaan x = 7/12 ja y = 5/12. Tälläkin yhtälöryhmällä on likimääräisiä ratkaisuja, joista tietyssä mielessä paras on se, jolla yhtälöryhmän vasemman ja oikean puolen erotusten neliöiden summa on mahdollisimman pieni (ns. pienimmän neliösumman ratkaisu). Tässä tapauksessa se on x = 16/28 ja y = 13/28. Jos nämä sijoitetaan yhtälöryhmään, saadaan oikean puolen arvoiksi 29/28, 3/28 ja 19/28 eli virheet, joiden neliöiden summa on pienin mahdollinen ovat -1/28, -3/28 ja 2/28; siis kohtalaisen pienet. Siihen, miten pienimmän neliösumman ratkaisu haetaan, palataan myöhemmin. Esimerkkinä alimääräytyneestä yhtälöryhmästä voisi olla vaikkapa On helppo todeta, että sen ratkaisuja ovat mm. x = ½ ja y = ½ tai x = 2/3 ja y = 1/3 tai x = 2 ja y = -1 tai... eli siis ääretön määrä. Yhtälöryhmiä tarvitaan hyvin monissa tehtävissä ja kemian- tai elintarviketekniikan tyypillisiä sovelluksia ovat mm. erilaiset reseptit tai prosessitaseet. Toisaalta monet alunperin muut tehtävät (esim. optimointi) johtavat ratkaisun jossain vaiheessa yhtälöryhmään. Myös yhtälöryhmiä, kuten yhtälöitäkin, voidaan luokitella lineaarisiksi tai epälineaarisiksi. Valitettavasti yhtälöryhmät ovat siinä mielessä hankalampia, että jos ryhmä on epälineaarinen, niin sille ei ole samanlaista helppoa graafista ratkaisua kuin yhden tuntemattoman yhtälöille. Yhtälöryhmille, joissa on kaksi tuntematonta, siis yhtälöpareille, on helppo graafinen ratkaisu, jos molemmissa yhtälöissä toinen tuntematon voidaan lausua toisen avulla. Tällöin nimittäin voidaan piirtää kaksi käyrää xy-tasoon ja ratkaisu on näiden käyrien leikkauspiste (- pisteet). Esimerkkejä:
2 Tämä esimerkki on helppo ratkaista myös algebrallisesti, sillä sijoittamalla jälkimmäisestä yhtälöstä ratkaistu y ensimmäiseen yhtälöön, saadaan (kirjoita itse välivaiheet!) josta saadaan toisen asteen yhtälö,, jonka juuret ovat x = 0 tai x = 0,89. Sijoittamalla nämä jälkimmäiseen yhtälöön saadaan vastaavat y:n arvot 1 ja 0.79. Leikkauspisteet ovat siis (0,1) ja (0,89; 0,79). Piirrä itse ensimmäistä yhtälöä vastaava yksikköympyrä ja toista yhtälöä vastaava suora samaan kuvaan ja totea, että ratkaisu vastaa kuvaajaan leikkauspisteitä. Alla Matlabilla tehty mallikuva. 1.2 1 0.8 0.6 0.4 0.2 0-0.2-0.4-0.6-0.8-1 -1.2-1.2-1 -0.8-0.6-0.4-0.2 0 0.2 0.4 0.6 0.8 1 1.2 Toisena esimerkkinä otamme yhtälöparin, jolle ei ole mahdollista löytää tarkkaa algebrallista ratkaisua: Tämä (sangen keinotekoinen) yhtälöpari on yksinkertaisen näköinen, mutta kuitenkaan sen ratkaisu ei löydy minkään yksinkertaisen laskulausekkeen (ratkaisukaavan) muodossa. Voimme kuitenkin piirtää samaan kuvaan ylemmästä yhtälöstä x:n y:n funktiona ja alemmasta y:n x:n funktiona:
3 1 0.5 x = 1-2e y y = 1-2e x 0-0.5-1 -1.5-2 -2-1.5-1 -0.5 0 0.5 1 Kuvasta voidaan lukea, että ratkaisu on kohtuullisen tarkasti x = -0.375 ja y = -0.375. Tarkistuksena esim. (tietokonemuodossa) 2*exp(-.375) + (-.375) = 0.9996 ja (-.375) + 2*exp(-.375) = 0.9996 eli se toteuttaa yhtälöt riittävän tarkasti tavanomaisten tarkkuusvaatimusten kannalta. Toki epälineaarisillekin yhtälöryhmille on iteratiivisia ratkaisumenetelmiä (esim. ns. Gauss-Newton iteraatio), mutta ne käsitellään myöhemmin. Myös Excelissä tällaisia ongelmia varten solver-niminen makro ja Matlabissa on oma funktionsa epälineaaristen yhtälöryhmien ratkaisemiseksi. Vaikka näiden numeeristen työkalujen käyttö on teknisesti helppoa, niin kaikkien ratkaisujen löytymisen varmistaminen ei ole helppoa numeerisilla menetelmillä. Numeeriset menetelmät vaativat myös kohtuullisen hyvän arvauksen ratkaisulle ja riittävän hyvän arvauksen löytäminen saattaa myös olla vaikeata.
4 Lineaariset yhtälöryhmät Koska lineaariset yhtälöryhmät ovat sovellusten kannalta tärkeimpiä ja onneksi myös helpoimpia, keskitymme niihin. Esimerkki 1 Tehtävänä on sekoittaa 10 kg ravinneseosta, jonka typpipitoisuus on 12%. Käytettävissä on kahta raaka-ainetta (A ja B), joiden typpipitoisuudet ovat 5 ja 15%. Tehtävän asettelu johtaa seuraavaan yhtälöpariin A + B = 10 0.05A + 0.15B = 0.12 10 Yhtälöistä ensimmäinen on kokonaismassatase ja jälkimmäinen on massatase typelle. Samalla periaatteella voidaan johtaa yhtälöt mille tahansa seoksenmuodostamistehtävälle. Käsinlaskua varten 1. yhtälö kerrotaan puolittain 10:llä ja 2. yhtälö puolittain 100:lla, jolloin saadaan 10A + 10B = 100 5A + 15B = 120 Esimerkki 2 Tehtävänä on tasapainottaa kemiallinen reaktio H + + MnO 4 + C 2 O 4 2 Mn 2+ + H 2 O + CO 2 Tuntemattomia on siis kuusi kappaletta eli kunkin kemiallisen komponentin kerroin reaktioyhtälössä. Tästä saadaan yhtälöryhmä, kun kirjoitetaan tase kullekin komponentille. Yksinkertaisuuden vuoksi merkitään tuntemattomia symbolein: x 1 = H + :kerroin, x 2 = MnO 4 :n kerroin jne. Koska ainetta ei kemiallisessa reaktiossa häviä (ydinreaktiot ovat asia erikseen), saadaan kullekin alkuaineelle oma yhtälönsä: Koska tuntemattomia on 6, nämä neljä yhtälöä eivät vielä riitä. Yksi yhtälö saadaan lisää sillä perusteella, että kokonaisvaraus (V) ei muutu eli vasemman ja oikean puoleisten varausten summan tulee olla sama. Näin saadaan 5. yhtälö
Jostain pitäisi vielä keksiä 6. yhtälö. Se on helppoa, jos muistamme, että stoikiometriset kertoimet eivät ole yksikäsitteisiä (vain suhteet ovat!), joten voimme mielivaltaisesti valita yhden vaikkapa 1:ksi. Valitaan C 2 O 4 2 :n kerroin 1:ksi eli x 3 = 1. Kirjoitetaan nyt kaikki yhtälöt allekkain tuntemattomat vasemmalla ja muut oikealla puolella ja samat tuntemattomat allekkain (tämä on ns. standardimuoto). 5 Yhtälöryhmän voisi ratkaista ns. Gaussin eliminoimismenetelmällä, jossa yhtälöryhmä saatetaan ns. yläkolmiomuotoon kertomalla yhtälöitä sopivilla luvuilla, ja sen jälkeen laskemalla niitä yhteen (idea on esitetty tekstin lopussa). Lineaaristen yhtälöryhmien ratkaiseminen on kuitenkin helpointa matriisilaskennan avulla, joten palaamme esimerkkiin 2 matriisilaskennan jälkeen. Yhtälöiden (sopivilla luvuilla kerrottuna) yhteen- ja vähennyslasku liittyy kuitenkin myös kahteen tärkeään käsitteeseen: yhtälöiden lineaariseen riippuvuuteen ja yhtälöryhmän kerroinmatriisin asteeseen. Matriiseihin ja matriisin asteeseen palataan myöhemmin, mutta määritellään yhtälöiden lineaarinen riippuvuus ja riippumattomuus: Määritelmä Yhtälö on lineaarisesti toisista yhtälöistä riippuva, mikäli se voidaan lausua näiden toisten yhtälöiden avulla siten, että niitä kerrotaan puolittain sopivilla luvuilla ja sen jälkeen lasketaan yhteen tai vähennetään. Esimerkki 3 Yhtälöryhmässä neljäs yhtälö on lineaarisesti riippuva kolmesta ensimmäisestä yhtälöstä, sillä se on kolmen ensimmäisen summa. Yhtälöitä sanotaan lineaarisesti riippumattomiksi, mikäli ne eivät ole lineaarisesti riippuvia. Kerroinmatriisin aste määritellään riippumattomuuden avulla, ja se tärkeä apuväline tutkittaessa kuinka monta ratkaisua annetulla
6 yhtälöryhmällä on. Palaamme tähän kysymyksen, kun olemme käyneet ensin läpi matriisilaskennan alkeita. Matriisilaskennan alkeet Taulukkoa, jossa on n (vaaka-) riviä ja m (pysty-) saraketta kutsutaan nxmmatriisiksi. Esimerkiksi taulukko A on 2 x 2 - matriisi. Matriisiin (taulukon) alkioihin viitataan rivi ja sarake indekseillä. Esim. A 11 = 1 ja A 21 = 3. Mutta Excelissä sarakkeen alkioihin viitataan kirjaintunnuksella ja rivinumerolla, esim.: A1 = ja A2 =3. Yleinen muoto on seuraava Jos n=1 eli taulukossa on vain yksi rivi matriisia kutsutaan vaakavektoriksi ja vastaavasti, jos m=1 eli sarakkeita on vain yksi, niin matriisia kutsutaan pystyvektoriksi. Matriiseja on tapana yleensä merkitä isoilla lihavoiduilla kirjaimilla ja vektoreita pienillä lihavoiduilla kirjaimilla. Taulukon alkioita (lukuja eli skalaareja) merkitään lihavoimattomilla kirjaimilla tai sitten ne ovat annettuja lukuja. Taulukon alkioiden ympärillä käytetään joko kaari- tai hakasulkuja. Tässä johdannossa käytetään hakasulkuja. Esimerkkejä A on 3x2-matriisi, b on kolmen alkion vaakavektori ja c on kolmen alkion pystyvektori. Matriisin A transpoosilla tarkoitetaan matriisia, joka saadaan A:sta muuttamalla rivit sarakkeiksi (tai sarakkeet riveiksi, mikä on sama asia) ja sitä merkitään potenssilla T tai hipsulla (Matlabissa hipsu!). Esim.:
7 Excelissä Matriisit ovat ihan tavallisia taulukoita, mutta kun niihin kohdistetaan matriisilaskutoimintoja, täytyy maalata oikean kokoinen tulosalue ja kaava toteutetaan näppäinyhdistelmällä shift-ctrl-enter. Tästä lisää matriisilaskennan yhteydessä. Kun halutaan viitata johonkin tiettyyn matriisin tai taulukon alkioon, käytetään rivi- ja sarakeindeksejä. Rivi-indeksi on aina ensin! (toisin kuin Excelissä, jossa ensin on sarakkeen kirjaintunnus ja sitten rivinumero) Esimerkkejä: Yllä olevissa taulukoissa A 21 = -1, b 13 = b 3 = c ja c 31 = c 3 = 1.7. Kuten huomataan, alkoihin viitattaessa lihavointi jätetään pois ja vektoreissa ei tarvitse merkitä sitä indeksiä, joka on aina 1. Harjoitus 1 Muodosta seuraavat taulukot käsin ja Excelillä tai Matlabilla (voit käyttää Excelin funktioita ROW ja COLUMN ja Matlabissa for-end-rakennetta): i=1,2,...,5 ja j=1,2,3 a) A ij = i+j, b) A ij = i j c) A ij = i+(j-1) 5, d) A ij = (i-1) 3+j (vastaukset tekstin lopussa) Matriisien yhteydessä ja myöhemmin etenkin tilastotieteen projektissa tarvitaan indeksoitujen muuttujien summille lyhennysmerkintää. Esimerkkejä: Harjoitus 2 Olkoon v = [4-1 3-2 1]. Laske käsin ja Excelillä ja Octavella (oikeat vastaukset ovat sulkeissa) a) (5 )
8 b) (31) c) (26) d) (26) e) ( 15) Seuraavaksi tutustumme tärkeimpiin (ja hyödyllisimpiin) matriisien välisiin laskutoimituksiin, jonka jälkeen voimmekin siirtyä sovelluksiin eli yhtälöryhmiin. Kahden matriisin A ja B, joiden täytyy olla saman kokoisia (eli A = [A ij, i=1,...,n; j=1,...,m] ja B = [B ij, i=1,...,n; j=1,...,m]) summa ja erotus määritellään Esimerkki: [A±B] ij = A ij ±B ij, i=1,...,n; j=1,...,m Harjoitus 3 Keksi itse vähintään kolme esimerkkiä summasta ja/tai erotuksesta, joista yhdessä matriisien tulee olla vektoreita ja laske ne käsin ja Excelillä. Matriisien summan ja erotuksen laskeminen Excelillä onnistuu aivan normaalilla yhteen- ja vähennyslaskulla ja kaavan kopioinnilla. Matriisin kertominen luvulla (skalaarilla) määritellään kuten yhteen- ja vähennyslaskukin elin matriisin kaikki alkiot kerrotaan samalla luvulla. Sen sijaan matriisien välinen kertolasku ei muistutakaan tavallista kertolaskua: Kahden matriisin A = [A ij, i=1,...,n; j=1,...,m] ja B = [B ij, i=1,...,m; j=1,...,q] tulo määritellään
Vektorilaskennassa opimme, että tulon AB i:nnellä rivillä ja j:nnellä sarakkeella oleva luku on A:n i:nnen rivin (= rivivektorin) ja B:n j:nnen sarakkeen (= sarakevektorin) välinen ns. pistetulo eli komponenttien (=koordinaattien) tulojen summa. Esimerkkejä: 9 Harjoitus 4 Laske käsin ja Excelillä tai Matlabilla (Excelissä käytä funktiota MMULT (MKERRO)) vastaus: Tärkeä erikoistapaus, joka liittyy yhtälöryhmiin on se, jossa kertoja on nxmmatriisi ja kerrottava on mx1-pystyvektori. Tällöin tulo b = Ax määritellään b i = a i1 x 1 + a i2 x 2 +... + a im x m, i = 1,2,...,n. Eli tulon i:nnes alkio saadaan kertomalla b:n alkiot A:n i:nnen rivin alkioilla ja laskemalla näin saadut tulot yhteen.
10 Esimerkki: olkoon Tällöin Ax = [1 3+2 2+3 1 4 3+4 2+6 1] T = [10 26] T. Matriisien yhteys yhtälöryhmiin käy ilmi, kun muodostamme esimerkin 1 yhtälöryhmän kertoimista matriisin C, tuntemattomista pystyvektorin x ja yhtälöryhmän oikeasta puolesta pystyvektorin b eli Soveltamalla yo. matriisikerolaskun määritelmää todetaan helposti, että alkuperäinen esimerkin 1 yhtälöryhmä voidaan kirjoittaa matriisien avulla muodossa Cx = b. Matriisia C kutsutaan yhtälöryhmän kerroinmatriisiksi. Ennen kuin voimme ratkaista yhtälöryhmän matriisimuodossa (joka soveltuu myös tietokoneratkaisuun) tarvitsemme yksikkömatriisin (merk. I) ja käänteisinmatriisin käsitteet (merk. A -1 ). Yksikkömatriisi nxn-yksikkömatriisilla tarkoitetaan nxn-matriisia, jonka lävistäjäalkiot (eli diagonaalialkiot) ovat ykkösiä ja kaikki muut alkiot ovat nollia alla on esimerkkinä 1x1-, 2x2-, 5x5- ja yleinen yksikkömatriisi. Sitä merkitään I 1x1, I 2x2 jne tai vain lyhyesti I, jos sekaannuksen vaaraa ei ole. Harjoitus 5 Totea esimerkkien avulla, että mille hyvänsä matriisille AI = A ja IA = A.
11 Käänteismatriisi nxn-matriisin A käänteismatriisilla tarkoitetaan sellaista matriisia B, jolle pätee AB = BA = I ja sitä merkitään B = A -1 eli A -1 A = AA -1 = I. Käänteismatriisin laskeminen käsin on oleellisesti yhtälöryhmän ratkaisemista, mutta nykyaikana se ei ole mielekästä, sillä tietokoneissa sen voi laskea joko taulukkolaskin- tai matematiikkaohjelmilla tai sitten voi käyttää laskinta, jossa on matriisitoiminnot. Excelissä käänteisfunktio lasketaan funktiolla MINVERSE ja Matlabissa funktiolla inv. Harjoitus 5 Totea Excelillä tai Matlabilla, että ja totea käsin laskemalla, että yo. matriisien tulo on yksikkömatriisi. Nyt, jos tarkastelemme esimerkin 1 yhtälöä Cx = b, saadaan kertomalla yhtälö puolittain vasemmalta C:n käänteismatriisilla C -1 Cx = C -1 b Ix = C -1 b x = C -1 b eli tuntemattomat x saadaan ratkaistuksi kertomalla yhtälön oikea puoli kerroinmatriisin C käänteismatriisilla vasemmalta. (HUOM! matriisitulo ei ole vaihdannainen, joten sillä, miltä puolelta kerrotaan on merkitystä.) Toisin sanoen Excelillä yhtälöryhmän ratkaisu vaatii seuraavat toimenpiteet 1. Kirjoita kerroinmatriisin luvut taulukkomuotoon ja samoin yhtälöryhmän oikea puoli. 2. Laske omalle paikalleen taulukossa kerroinmatriisin käänteismatriisi funktiolla MINVERSE (maalaa tulosalue, mene kaavariville ja kirjoita minverse(<valitut solut>) ja paina shift-ctrl-enter)
12 3. Laske ratkaisu jälleen omalle paikalleen taulukossa keromalla käänteimatriisi ja oikea puoli keskenään funktiolla MMULT. (maalaa tulosalue, mene kaavariville ja kirjoita minverse(<valitut solut (kertoja)>;<valitut solut (kerrottava)>) ja paina shift-ctrl-enter) Matlabilla muodostetaan kerroinmatriisi (A) ja oikea puoli (b) ja tulos saadaan laskutoimituksella inv(a)*b tai A\b. Ratkaistaan vielä esimerkin 2 reaktion tasapainotustehtävä Matlabilla: A = 1 0 0 0-2 0 0 1 0-1 0 0 0 4 4 0-1 -2 0 0 2 0 0-1 1-1 -2-2 0 0 0 0 1 0 0 0 b = [0 0 0 0 0 1]' b = 0 0 0 0 0 1 kertoimet = inv(a)*b kertoimet = 3.2000 0.4000 1.0000 0.4000 1.6000 2.0000 Koska ratkaisu halutaan kokonaislukuina, kerrotaan tulos vielä 5:llä: kertoimet*5 ans =
13 16.0000 2.0000 5.0000 2.0000 8.0000 10.0000 Tulos on luonnollisesti sama kuin käsinkin laskien. Itse ratkaisun voi Matlabissa kirjoittaa myös muodossa kertoimet = A\b (kokeile itse), joka on hiukan näppärämpi tapa ja itse asiassa operaatio \ on numeerisesti tehokkaampi ja tarkempi kuin funktion inv käyttäminen. Lisäksi operaatio \ antaa ylimääräytyneelle yhtälöryhmälle pienimmän neliösumman (pns) ratkaisun! Se, mitä pns-ratkaisulla tarkoitetaan selitetään myöhemmin.
14 Matriisin determinantti ja Cramerin sääntö Tarkastellaan aluksi 2 x 2 matriiseja esim.: Matriisin determinantiksi kutsutaan lukua, jota merkitään A ja lasketaan Jos A on 3 x 3 matriisi, niin determinantti lasketaan ns. alideterminanttien avulla seuraavasti (huomaa etumerkit!) Useampiriviset determinantit lasketaan samaa ideaa toistaen. Determinanttien laskeminen on käsin laskien aika työlästä ja niinpä yleensä käytetään tietokoneita tai kehittyneitä laskimia (Excelissä funktio MDETERM ja Matlabissa funktio det). Lasketaan kuitenkin esimerkkinä yllä olevan matriisin C determinantti: Determinantin merkitys on siinä, että sen avulla voidaan päätellä onko yhtälöryhmällä yksikäsitteistä ratkaisua. Sellainen nimittäin on olemassa vain, jos kerroinmatriisin determinantti ei ole nolla.
15 Cramerin sääntö Cramerin sääntö on kätevä keino laskea käsin yhtälöpareja ja ehkä vielä myös kolmen tuntemattoman yhtälöryhmiä. Idea on yksinkertainen: 1. Laske yhtälöryhmän kerroinmatriisin determinantti 2. Korvaa kerroinmatriisin 1. sarake yhtälöryhmän oikealla puolella ja laske näin saadun matriisin determinantti. Tämän jälkeen tee samoin, mutta korvaa alkuperäisessä kerroinmatriisissa 2. sarake. Jatka kunnes kaikki sarakkeet on vuorollaan korvattu (n tuntematonta n saraketta). 3. Jaa kaikki kohdassa 2 lasketut determinantit kohdassa 1 lasketulla determinantilla. Näin saadut luvut ovat yhtälöryhmän ratkaisu. Lasketaan esimerkki 1 Cramerin säännöllä. 1. 2. 3. A = 0.3/0.1 = 3 ja B = 0.7/0.1 = 7 Esimerkki 4 Tarkastellaan alla olevaa prosessikaaviota, jossa on kaksi reaktoria, yksi tislauskolonni ja kaksi kierrätysvirtaa. Syöttövirta F 1 on 30 kg/h ja kierrätysvirta R 1 on yksi kolmasosa virtojen F 2 ja R 2 summasta. Kierrätysvirta R 2 on yksi neljäsosa virrasta F 3 ja F 5 on yksi neljäsosa virrasta F 3. Tehtävänä on laskea tasapainotilassa (so. F 1 = F 4 + F 5 ) olevan prosessin muut virrat, ts. tehtävänä on laskea prosessin massatase. Periaatteena on se, että tasapainotilassa kaikissa prosessiyksiköissä sisään menevien virtojen summa on sama kuin ulosmenevien virtojen summa. Tuntemattomia on kuusi (F 2 - F 5, R 1, R 2 ), joten tarvitsemme kuusi yhtälöä. Ne saadaan helposti kunkin kolmen yksikön osataseesta ja virtojen R 1, R 2 ja F 5 määrittelystä:
16 F 2 = F 1 + R 1 F 3 + R 1 = F 2 + R 2 F 4 + F 5 + R 2 = F 3 F 5 = (1/4)F 3 R 1 = (1/3)(F 2 + R 2 ) R 2 = (1/4)F 3 Tämän jälkeen yhtälöt on sievennettävä ja tuntemattomat asetettava allekkain: (1)F 2 + (0)F 3 + (0)F 4 + (0)F 5 + (-1)R 1 + (0)R 2 = 30 (-1)F 2 + (1)F 3 + (0)F 4 + (0)F 5 + (1)R 1 + (-1)R 2 = 0 (0)F 2 + (-1)F 3 + (1)F 4 + (1)F 5 + (0)R 1 + (1)R 2 = 0 (0)F 2 + (-1/4)F 3 + (0)F 4 + (1)F 5 + (0)R 1 + (0)R 2 = 0 (-1/3)F 2 + (0)F 3 + (0)F 4 + (0)F 5 + (1)R 1 + (-1/3)R 2 = 0 (0)F 2 + (-1/4)F 3 + (0)F 4 + (0)F 5 + (0)R 1 + (1)R 2 = 0 Kun yo. yhtälö saatetaan matriisimuotoon ja ratkaistaan, tulos on F 2 = 50 kg/h, F 3 = 40 kg/h, F 4 = 20kg/h, F 5 = 10kg/h, R 1 = 20kg/h, R 2 = 10 kg/h. Tarkista itse!
17 Yhtälöryhmän ratkaisujen lukumäärä Käytännössä on tärkeätä tietää kuinka monta ratkaisua annetulla yhtälöryhmällä on. Sitä varten määritellään matriisin aste (rank), joka puolestaan perustuu lineaarisesti riippumattomien rivivektorien lukumäärään. (Vastaava määritelmä voidaan esittää myös sarakevektoreille.) Määritelmä Rivivektori on lineaarisesti muista riippumaton, mikäli sitä ei voida lausua muiden avulla kertomalla muita rivivektoreita sopivilla luvuilla ja laskemalla niitä yhteen. Tämä voitaisiin ilmaista lyhyesti myös niin, että mikään rivi ei ole muiden rivien ns. lineaarikombinaatio. Määritelmä Matriisin aste on siinä olevien lineaarisesti riippumattomien rivien lukumäärä. Esimerkkejä: Matriisin aste on 2, sillä vektoria [1 2] ei voi lausua vektorin [1-1] avulla millään luvulla kertomalla. Matriisin aste on myös 2, sillä vektori [3 0 5] = [1 2 3] + 2[1-1 1]. Käytännössä matriisin asteen määrittäminen määritelmän nojalla on hankalaa, mutta esim. Matlabilla se on helppoa, sillä esim. yo. matriisin aste saataisiin selville käskyillä» B=[ 1 2 3;1-1 1;3 0 5]» rank(b) Ennen kuin voimme esittää yhtälöryhmien peruslauseen, tarvitsemme yhtälöryhmän yhdistetyn matriisin käsitettä.
18 Määritelmä Yhtälöryhmän Ax = b yhdistetty matriisi on matriisi [A b], ts. kerroinmatriisi, johon lisätään viimeiseksi sarakkeeksi oikea puoli. Esimerkiksi yhtälöryhmän yhdistetty matriisi on Yhtälöryhmien peruslause a) Yhtälöitä ja tuntemattomia on yhtä monta Jos kerroinmatriisin determinantti on erisuuri kuin 0 (tällöin kerroinmatriisin aste on sama kuin tuntemattomien lukumäärä), niin ratkaisuja on yksi. Jos determinantti on nolla ja kerroinmatriisin ja yhdistetyn matriisin aste ovat samat, ratkaisuja on ääretön määrä, mutta asteet ovat eri suuret ratkaisuja ei ole lainkaan. b) Yhtälöitä on vähemmän kuin tuntemattomia (alimääräytynyt tapaus) Mikäli kerroinmatriisin aste on yhtä suuri kuin yhtälöiden lukumäärä, ratkaisuja on aina ääretön määrä (itse asiassa yhdistetyllä matriisilla on tällöin aina sama aste kuin kerroinmatriisilla). Mikäli kerroinmatriisin aste on pienempi kuin yhtälöiden lukumäärä ja kerroinmatriisin ja yhdistetyn matriisin aste ovat samat, ratkaisuja on ääretön määrä, mutta jos asteet ovat eri suuret ratkaisuja ei ole lainkaan. Huomattakoon, että ratkaisuja on ei ole lainkaan tai niitä on ääretön määrä eli alimääräytyneellä yhtälöryhmällä ei voi olla yhtä yksikäsitteistä ratkaisua. c) Yhtälöitä on enemmän kuin tuntemattomia (ylimääräytynyt tapaus) Mikäli kerroinmatriisin ja yhdistetyn matriisin aste ovat samat ja se on sama kuin tuntemattomien lukumäärä, ratkaisuja yksi, mutta asteet ovat eri suuret ratkaisuja ei ole lainkaan. Jos kerroinmatriisin aste on pienempi kuin tuntemattomien lukumäärä, mutta sama kuin yhdistetyn matriisin aste, ratkaisuja on ääretön määrä. Jos taas kerroinmatriisin aste on pienempi kuin tuntemattomien lukumäärä, mutta eri kuin yhdistetyn matriisin aste, ratkaisuja ei ole lainkaan.
19 Esimerkkejä: 1. Olkoon yhtälöryhmän kerroinmatriisi ja oikea puoli Yhtälöitä on yhtä monta kuin tuntematonta, joten tutkitaan lauseen osaa a ja lasketaan matriisien A ja [A b] asteet Matlabilla:» rank(a) ans = 3» rank([a b]) ans = 3 Koska A:n aste (3) on pienempi kuin tuntemattomien määrä (4), ratkaisujen määrä on lauseen a-kohdan mukaan ääretön tai ei yhtään. Koska yhdistetyn matriisin aste on myös 3, ratkaisuja on lauseen a-kohdan mukaan ääretön määrä. Jos yhtälöryhmän oikea puoli olisi ollut esim. [5 4 1 10] T, niin yhdistetyn matriisin aste olisi ollut 4 ja näin yhtälöryhmällä ei olisi ollut lainkaan ratkaisuja. 2. Olkoon yhtälöryhmän kerroinmatriisi ja oikea puoli Nyt kyseessä on ylimääräytynyt ryhmä, joten tutkimme peruslauseen kohtaa c. Nyt A:n aste on 4 ja [A b]:n aste on myös 4. Koska aste on sama kuin tuntemattomien lukumäärä, ratkaisuja on tasan yksi tai ei yhtään.
20 Koska myös yhdistetyn matriisin aste on 4, ratkaisuja on tasan yksi ([-12-6 18 11] T ). 3. Olkoon yhtälöryhmän kerroinmatriisi ja oikea puoli Yhtälöryhmä on siis alimääräytynyt ja A:n aste 3, joka on sama kuin yhtälöiden lukumäärä. Ratkaisuja on siis peruslauseen b-kohdan mukaan välttämättä ääretön määrä. Ratkaisujen tutkiminen, silloin kuin niitä on ääretön määrä Jos peruslauseen soveltaminen antaa tuloksen, että ratkaisuja on ääretön määrä, voidaan Gaussin eliminointimenetelmällä kuitenkin päätellä varsin paljon ratkaisujen luonteesta. Jos tuntemattomia on paljon Gaussin eliminointimenetelmä on työläs käsin toteutettuna, jolloin on syytä käyttää tietokonetta hyväksi. Matlabissa on sangen hyödyllinen funktio rref, joka antaa tuloksen muodossa, josta on helppo päätellä ratkaisujen luonne. Tarkastellaan tilannetta yksinkertaisen esimerkin avulla (kirjasta TAM 3Y esimerkki 3): Yhtälöryhmä on Kuten e.m. kirjassa esitetty Gaussin eliminointi johtaa yhtälöryhmään Ratkaisuja on siis ääretön määrä ja on helppo nähdä, että muuttuja x voi saada mielivaltaisia arvoja. Jos nyt valitaan, että x on mielivaltainen reaaliluku t, niin toisesta yhtälöstä saadaan y = 5 x ja sijoittamalla tämä ja x = t ensimmäiseen yhtälöön saadaan z = 3 + 2t. Siis vaikka ratkaisuja on ääretön määrä, niin mitkä tahansa luvut x, y ja z eivät kelpaa ratkaisuksi vaan ratkaisujen on toteutettava yo. yhtälöt. Itse asiassa ratkaisujoukko on avaruuden suora, kuten tulemme myöhemmin toteamaan. Katsotaan seuraavaksi, miten tehtävä ratkaistaisiin Matlabin funktiolla rref, joka kohdistetaan yhdistettyyn matriisin:
21» A = [1-1 -1;3 1-1;2 4 1];» b = [-2 8 17]';» rref([a b]) ans = 1.0000 0-0.5000 1.5000 0 1.0000 0.5000 3.5000 0 0 0 0 Tulosta tulkitaan seuraavasti: jokainen nollarivi (tässä tapauksessa viimeinen) tarkoittaa, että yhden muuttujista voi valita vapaasti ja muiden rivien avulla saadaan ehdot, jotka ratkaisun on valintojen jälkeen toteutettava. Valitaan jälleen x = t, jolloin ensimmäisestä rivistä voidaan lukea: 1t + 0y 0.5z = 1.5. Ratkaistaan tästä yhtälöstä z, jolloin saadaan z = (1.5 t)/(-0.5) = 3 + 2t. Sijoittamalla tämä toiseen riviin, saadaan yhtälö 0x + 1y + 0.5( 3 + 2t) = 3.5. Ratkaisemalla tästä y, saadaan y = 5 t. Siis täsmälleen sama tulos kuin käsinlaskullakin! Tarkastellaan vielä lopuksi yhtälöryhmää Tässä tapauksessa kerroinmatriisin aste on 1 ja yhdistetyn matriisin aste on 1, joten peruslauseen mukaan ratkaisuja on ääretön määrä (sovella peruslausetta itse!). Funktio rref antaa» rref([a b]) ans = 1-1 -1-2 0 0 0 0 0 0 0 0 Tämän mukaan kaksi muuttujaa voidaan valita vapaasti. Valitaan esim. x = t ja y = s, jolloin ensimmäisen rivin perusteella z = 2 + t s. Kuten myöhemmin toteamme, tämä on tason yhtälö. Ratkaisuja on kyllä ääretön määrä, mutta vain ne ratkaisut kelpaavat, jotka ovat tämän yhtälön määräämässä tasossa!
22 Lineaaristen yhtälöryhmien geometrisia tulkintoja Sellaisen n:n tuntemattoman yhtälöryhmän, jolla on yksikäsitteinen ratkaisu, geometrinen tulkinta on piste n-ulotteisessa avaruudessa. Jos tuntemattomia on kaksi, mutta yhtälöitä vain yksi, niin ratkaisu on tason suora. Jos tuntemattomia on kolme, mutta yhtälöitä kaksi, niin ratkaisu on kolmiulotteisen avaruuden suora. Jos tuntemattomia on kolme, mutta yhtälöitä vain yksi, niin ratkaisu on kolmiulotteisen avaruuden taso. Jos tuntemattomia on neljä, mutta yhtälöitä kolme, niin ratkaisu on neliulotteisen avaruuden suora. Jos tuntemattomia on neljä, mutta yhtälöitä kaksi, niin ratkaisu on neliulotteisen avaruuden kaksiulotteinen taso. Jos tuntemattomia on neljä, mutta yhtälöitä vain yksi, niin ratkaisu on neliulotteisen avaruuden kolmiulotteinen ns. hypertaso. Samaa logiikkaa voi tietenkin jatkaa eteenpäin. Näillä abstrakteilta tuntuvilta käsitteillä on paljon käytännön sovelluksia.
23 Ehtoyhtälöongelmat ja taseiden täsmäys Tähän mennessä käsittelemissämme tase-esimerkeissä olemme olettaneet tunnetut suureet virheettömiksi. Tämä ei luonnollisestikaan yleensä vastaa totuutta, sillä usein tunnetut suureet ovat mittaustuloksia, eikä virheettömiä mittauksia ole olemassa. Kun mittausvirheet otetaan huomioon, haemme sellaista ratkaisua, jossa ratkaisu toteuttaa teoreettiset taseyhtälöt täsmällisesti, mutta ne eivät vastaa mittaustuloksia täsmällisesti, vaan sopivat niihin mahdollisimman hyvin pienimmän neliösuman mielessä. Mittaustuloksia kutsutaan yleensä havaintoyhtälöiksi, sillä niiden muoto on: mittaustulos = todellinen arvo + virhe, siis todelliset arvot toteuttavat ehtoyhtälöt Tutustumme tässä vain sellaisiin tapauksiin, joissa taseyhtälöt (ns. ehtoyhtälöt) ovat lineaarisia, jolloin ratkaisu saadaan helposti matriisilaskennan avulla. Epälineaariset tapaukset pitää ratkaista esim. Excelin Solver-työkalulla tai muulla vastaavalla iteratiivisella menetelmällä. Ehtoyhtälöongelma voidaan pukea seuraavaan geneeriseen (yleiseen) matemaattiseen muotoon: ehdolla, missä v 2 tarkoittaa vektorin v vektorin normin neliötä eli Minimointiehto tarkoittaa siis sitä, että haemme matriisiyhtälön sellaista pns-ratkaisua, joka toteuttaa ehdon.. Tasesovelluksissa A vastaa yleensä yhtälöitä eli, jolloin matriisi A on yksikkömatriisi. Sellaisissa täsmäysongelmissa, joissa kaikki tunnetut arvot ovat mittaustuloksia vektori v on nollavektori, koska tunnettuja suureita ei sanan varsinaisessa merkityksessä ole lainkaan. Ehtoyhtälöongelman ratkaisu saadaan ns. Lagrangen menetelmällä, johon emme kuitenkaan paneudu tässä, vaan ainoastaan annamme sen antaman geneerisen ratkaisun:, missä O on pelkkiä nollia sisältävä matriisi, jossa on yhtä monta riviä ja saraketta kuin ehtoyhtälöissä on yhtälöitä. Luonnollisesti Matlabissa, Octavessa ja FreeMatissa käänteismatriisilla kertomisen sijaan kannattaa käyttää \ -operaatiota. Kuten edellä todettiin, tavallisesti taseiden täsmäyksessä b edustaa mittaustuloksia (y), A = I ja d on nollavektori (o), joten ratkaisu saa muodon
24. On syytä huomata, että ratkaisu sisältää varsinaisten tuntemattomien lisäksi ns. Lagrangen kertoimet. Tämä ei tuota ongelmaa, koska tuntamattomat ovat aina vektorissa ennen kertoimia, joten ne on helppo poimia omaan muuttujaansa. Rakaisua voisi sieventää, jos osaa riittävästi matriilaskentaa, mutta ellei ongelma ole todella suuri (siis paljon tuntemattomia), sievennyksestä ei ole käytännön hyötyä. Kuten yleensäkin, menetelmät selviävät parhaiten esimerkkien avulla, joten otamme aluksi yksinkertaisen synteettisen ja sitten todellisen taseongelman. Alla on yksikertainen prosessi, josta on mitattu massavirrat. Teoriassa massavirtojen tulee toteuttaa taseyhtälöt, mitä mittaustulokset eivät toteuta, kuten voit helposti itse todeta. Kuvitellaan, että mittaustulokset virroista ovat seuraavat: F 1 = 10, F 2 = 11, F 3 = 2 ja F 4 = 13. Nyt voimme muodostaa tarvittavat matriisit esim. Octavessa: C = [ 1-1 1 0 0 1-1 -1 ]; d = [0;0]; % y = [10 11 2 13]'; I = eye(4); O = zeros(2,2); o = zeros(2,1); KM = [ 2*I C' C O ]; op = [2*y;o]; xhat = KM\op; xhat = xhat(1:4)
25 % tarkistuksia disp([y xhat y-xhat]) disp(c*xhat) Käskyt tuottavat: xhat = 11 12 1 11 >> % tarkistuksia >> disp([y xhat y-xhat]) 10 11-1 11 12-1 2 1 1 13 11 2 >> disp(c*xhat) 0 0 Ratkaisu on siis: F 1 = 11, F 2 = 12, F 3 = 1 ja F 4 = 11 ja vastaavat täsmäysvirheet ovat -1, -1, 1 ja 2 (Huom! Virheet lasketaan aina mitattu-laskettu ). Näistä käytetään myös nimityksiä tasoitusvirheet tai jäännösvirheet eli residuaalit, tai joskus niitä kutsutaan korjauksiksi. Ratkaisuna saadut virrat toteuttavat taseyhtälöt, nkuten yllä oleva viimeisen laskun tulos osoittaa. Seuraava esimerkki on otettu lähteestä: http://www.polymtl.ca/namp/docweb/modules_web/m11_tier1_chap1-3.pdf Se eroaa edellisestä sikäli, että siinä oletetaan, että mittausten keskivirheet (ns. standardimittausepävarmuudet) tunnetaan, jolloin ne on otettava laskuissa huomioon. Luonnollisesti, mitä suurempi on jonkin mittauksen epävarmuus, sitä vähemmän sen tulisi vaikuttaa lopputuloksen; toisin sanoen, sen tulisi saada pieni paino. Myöhemmin tilastomatematiikan yhteydessä opitaan, että painot ovat kääntäen verrannollisia standardivirheiden neliöihin. Jos merkitään matriisia, jonka diagonaalilla on mittausten painot, P:llä, niin yllä esitetyt kaavat muuttuvat seuraavasti:, ja tavallisimmassa tapauksessa, jossa A = I ja d on nollavektori.
26 Alla on kopio ym. lähteestä: Löydät lähteestä paljon lisätietoa datan täsmäyksestä (data reconcilation). Alla on kommentoitu Octave-koodi, joka ratkaisee ongelman: % Syötetään mittaustulokset ja keskivirheet: F_mit = [110.5 60.8 35 68.9 38.6 101.4]'; stdf = [.82.53.45.71.45 1.2]; % Muodostetaan painomatriisi P = diag(1./stdf.^2); % neliöiden käänteisluvut! n = length(f_mit); % mittausten lkm % Muodostetaan kaavassa tarvittavat matriisit: I = eye(n); y = F_mit; C = [ %F1 F2 F3 F4 F5 F6 %yhtälö 1-1 -1 0 0 0 %F1 = F2+F3 0 0 1 0-1 0 %F3 = F5 0 1 0-1 0 0 %F2 = F4 0 0 0 1 1-1 %F4+F5 = F6 ]; p = size(c,1); % rivien eli yhtälöiden lkm O = zeros(p,p); o = zeros(p,1); KM = [2*P C';C O]; op = [2*P*y;o]; xhat = KM\op; disp('ratkaisu:') F = xhat(1:n) % loput ovat Lagrangen kertoimia (4 kpl) % Residuaalit: v = F_mit-F; disp('mitatut ja täsmätyt arvot sekä residuaalit:') disp([f_mit F v]) Koodi tuottaa seuraavan tulostuksen:
27 Ratkaisu: F = 103.2 65.43 37.772 65.43 37.772 103.2 Mitatut ja täsmätyt arvot sekä residuaalit: 110.5 103.2 7.2975 60.8 65.43-4.6304 35 37.772-2.7721 68.9 65.43 3.4696 38.6 37.772 0.82788 101.4 103.2-1.8025
28 Johdatus lineaariseen optimointiin Tutustutaan vielä lopuksi ns. lineaariseen optimointiin, jolla monia hyödillisiä sovelluksia, erityisesti ns. reseptilaskennassa. Tarkastellaan aluksi kuitenkin hyvin yksinkertaista tuotannon optimointiin liittyvää esimerkkiä. Esimerkki 1 Tarkastellaan seuraavaa leipurin ongelmaa: Leipuri tekee kahdenlaisia pikkuleipiä, päällystettyjä (pikkuleipä A) ja päällystämättömiä (B). Käytettävissä on Pikkuleipäseosta: Päällysteseosta: Uunikapasiteetti: Työvoimakapasiteetti: 120 lb 32 lb 120 pikkuleipätusinaa/päivä 15 h Yksi pikkuleipätusina vaatii Päällystetty Päällystämätön Pikkuleipäseosta: 1.0 lb 0.6 lb Päällysteseosta: 0.4 lb 0 lb Työvoimaa: 0.15 h 0.10 h Katetuotto (hinta-tuotantokustannukset) päällystetyistä pikkuleivistä on 0.20 ja päällystämättömistä 0.15. Kuinka monta tusinaa kumpaakin pikkuleipälajia leipurin kannattaa valmistaa, jotta tuotto olisi maksimaalinen. Mietitään ensin, miten optimoitava suure voidaan lausua matemaattisesti. Olkoon x päällystettyjen pikkuleipien päivätuotanto (tus.) ja y päällystetämättömien pikkuleipien päivätuotanto. Optimoitava suure, katetuotto on siis T = 0.20x + 0.15y. Huomaa, että kyseessä on x:n ja y:n lineaarikombinaatio. Mietitään seuraavaksi rajoitusten matematisointia : Koska pikkuleipäseosta kuluu 1.0x + 0.6y (lb), saadaan epäyhtälö 1.0x + 0.6y 120. Vastaavasti päällystettä kuluu 0.4x + 0.0y (lb), joten 0.4x 32. Uunikapasiteetista seuraa epäyhtälö
29 x + y 120 ja työvoimakapasiteetista puolestaan epäyhtälö 0.15x + 0.10y 15. Luonnollisesti pitää lisäksi vaatia, että x 0 ja y 0. Yhteen vedettynä ongelma voidaan ilmaista seuraavasti: ehdolla Ratkaisu voitaisiin hakea graafisesti piirtämällä epäyhtälöitä vastaavaat rajasuorat ja laskemalla tuotto niiden rajaaman alueen kulmapisteissä ja valitsemalla niistä suurin tuotto. Helpommin kuitenkin Excelin Solver-toiminnolla seuraavasti: Arvataan ensin sellaiset arvot x:lle ja y:lle, että kaikki rajoitukset ovat voimassa, esimerkiksi 10 ja 10. Kirjoitetaan sitten yhtälöitä ja epäyhtälöitä vastaavat lausekkeet Excel-kaavoiksi, jotka viittaavat x:n ja y:n sisältäviin soluihin. Näin on saatu alla oleva Excel-taulukko. Tämän jälkeen voidaankin käynnistää Solver (Tools-valikosta) ja täyttää valintaikkuna alla olevan mallin mukaan.
30 Klikkaamalla nyt Solve ja vastaamalla OK kysymykseen Keep Solver Solution saadaan seuraava taulukko, jossa x:llä ja y:llä on optimiarvonsa. Otetaan seuraavaksi toisen tyyppinen esimerkki lannoitereseptin valinnasta. Esimerkki 2 Yksinkertainen esimerkkimme on, kuinka valita lannoiteresepti tietyt ehdot täyttävän lannoitteen aikaansaamiseksi: NPK-seoslannoitteen valmistukseen oli käytettävissä kolmea eri raakaainetta ( A, B ja C) ja ns. inerttiä eli täyteainetta. Raaka-aineiden N-, P- ja K-pitoisuudet (painoprosentteina) on annettu alla olevassa taulukossa. N P K muuta raaka-aine A 50 0 40 10 raaka-aine B 0 20 40 40
31 raaka-aine C 0 50 0 50 täyteaine D 0 0 0 100 Voidaanko näistä raaka-aineista valmistaa seoslannoitetta, jonka N-, P- ja K-pitoisuudet ovat 20, 20 ja 20 painoprosenttia ja mikä on väkevin mahdollinen lannoite, jossa N : P : K = 1 : 1 : 1? Tehtävän ensimmäinen kysymys johtaa seuraavaan yhtälöryhmään: Huomaamme, että yhtälöryhmän kertoimet (ns. kerroinmatriisi) ovat yllä olevan taulukon mukaiset, mutta siten, että taulukon rivit ovat kerroinmatriisissa sarakkeita. Näin ollen, jos alkuperäinen taulukko on Excelissä seuraavan näköinen, niin kerroinmatriisi saadaan tästä helposti kopioimalla, kun liittämisvaiheessa valitsee Edit, Paste Special... ja Transpose. Saman voi tehdä myös funktiolla TRANSPOSE, mutta tällöin pitää muista, että se on matriisifunktio eli kaavaa kirjoitettaessa tulosalueen pitää olla valittuna ( maalattuna ) ja käsky toteutetaan näppäinyhdistelmällä shift-control-enter. Sen jälkeen prosentit muutetaan osuuksiksi jakamalla luvut sadalla. Ratkaisu saadaan nyt helposti, kun kerroinmatriisin viereen kirjoitetaan tavoite:
32 Huomaa, että soluissa F21 ja F22 on kaava =$F$20 ja solussa F23 on kaava =100-3*$F$20. Ratkaisu saadaan jälleen matriisitoiminnoilla (kerroinmatriisin käänteismatriisilla kerrotaan yhtälöryhmän oikea puoli). Ensin maalataan (valitaan) alue, johon ratkaisu tulee (G20:G23). Tämän jäkeen kirjoitetaan tarvittava matriisikaava: j a toteutetaan käsky näppäinyhdistelmällä shift-control-enter:
33 Vastaus ensimmäiseen tehtävän kysymykseen on siis myönteinen eli NPK-lannoitteen, jossa ravinteita on 20, 20 ja 20%, valmistaminen annetuista raaka-aineista on mahdollista. Entäpä sitten, mikä on väkevin N:P:K = 1:1:1 lannoite annetuista raaka-aineista? Jos nyt sijoitamme soluun F20 =100/3, niin silloinhan meidän pitäisi saada väkevin mahdollinen, koska tällöin täyteainetta ei käytetä lainkaan. Tulos on seuraava Tulos on mahdoton; täyte-ainetta ei voi olla negatiivista määrää. Nyt väkevimmän voisi tietysti hakea kokeilemalla eli pienentämällä lukua solussa F20, mutta helpommin oikea arvo löytyy Solver-toiminnolla (tämän voisi ratkaista alimääräytyneiden yhtälöryhmien avulla). Valitaan Solverikkunassa tavoitteeksi solussa F20 olevan arvon maksimointi, mutta sillä rajoituksella, että arvo solussa G23 on positiivinen (palautetaan ensin arvo 20 soluun F20):
34 Klikkaamalla Solve (ja OK) saadaan tulos: Entäpä, jos raaka-aineita olisi ollut enemmän, jolloin yhtälöitä olisi ollut enemmän kuin tuntemattomia? Otetaan mukaan raaka-aine D, jossa on 25, 35 ja 20% N:ää, P:tä ja K:ta (täyteaine on nyt E). Tällöin ratkaisua ei saakaan tavallisen yhtälöryhmän ratkaisuna, vaan se pitää muotoilla heti optimointitehtäväksi: Hae sellaiset A:n, B:n, C:n, D:n ja E:n arvot, jotka maksimoivat x:n alla olevassa yhtälöryhmässä: Excelissä tämä on toteutettava siten, että ensin arvaamme jonkin ratkaisun (esim. ratkaisun, jonka saimme ilman raaka-ainetta D) ja kirjoitamme sitten yllä olevan yhtälöryhmän:
35 Huomaa, että yhtälö soluissa G2:G5 on kirjoitettu matriisimuodossa. Tämä ei olisi välttämätöntä, mutta toki nopeampaa kuin kirjoittaa esim. soluun G2 =B2*H$2+C2*H$3+D2*H$4+E2*H$5+F2*H$6 Huomaa dollarimerkit ennen rivinumeroa, mikä lukitsee rivin. Tämä sen vuoksi, että tällöin kaavaa voidaan kopioida, eikä sitä tarvitse kirjoittaa joka riville erikseen! Soluun G6 on kirjoitettu kaava =SUM(G2:G4), mikä asetetaan maksimoitavaksi (tavoitehan oli mahdollisimman väkevä lannoite). Muuten Solverikkunassa tehdään seuraavat valinnat: Huomaa yhtälömuotoiset rajoitukset, joilla valitaan N=P, N=K ja A+B+C+D+E=100. Lisäksi Solver-ikkunassa kannattaa klikata Options ja ruksata Assume Linear Model. Klikkaamalla Solve saadaan ratkaisu:
36 Huomattakoon, että sama idea toimii, vaikka raaka-aineita olisi enemmänkin!
37 Gaussin eliminointimenetelmä Menetelmä perustuu siihen, että mistä tahansa ryhmän kahdesta yhtälöstä voidaan muodostaa uusi yhtälö kertomalla alkuperäiset yhtälöt puolittain sopivilla luvuilla ja laskemalla näin saadut yhtälöt yhteen (tai vähentämällä toinen toisesta). Valitsemalla kertoimet sopivasti voidaan alkuperäinen yhtälöryhmä saattaa ns. yläkolmiomuotoon, jossa alimassa yhtälössä on vain yksi tuntematon, toiseksi alimassa kaksi tuntematonta jne. Ratkaisu saadaan tällöin ns. taaksepäin sijoituksella, jossa viimeisestä yhtälöstä lasketaan viimeinen tuntematon, joka sijoitetaan toiseksi viimeiseen yhtälöön, josta sen jälkeen saadaan toiseksi viimeinen tuntematon. Tämän kaksi viimeisintä ratkaistua tuntematonta sijoitetaan kolmanneksi viimeiseen yhtälöön, josta nyt voidaan ratkaista kolmanneksi viimeisin tuntematon jne. Sovelletaan nyt menettelyä yo. yhtälöpariin: Pyrimme siis eroon tuntemattomasta A. Se onnistuu kertomalla 2. yhtälö -2:lle ja laskemalla 1. ja 2. yhtälö yhteen, jolloin saadaankin jo yläkolmiomuodossa oleva pari 10A + 10B = 100-20B = -140 Nyt taaksepäin sijoituksella saadaan viimeisestä yhtälöstä B = 7 ja sijoittamalla tämä toiseksi viimeiseen (so. ensimmäiseen) yhtälöön saadaan 10A +70 = 100, josta A = 3. Siis ratkaisu on A = 3, B = 7. Ratkaisu tulee aina tarkistaa sijoittamalla saadut arvot alkuperäiseen yhtälöön, jonka tulee tällöin toteutua, eli 10 3 + 10 7 = 100 5 3 + 15 7 = 120. Lopullinen vastaus on siis: raaka-ainetta A sekoitetaan 3 kiloa ja raakaainetta B 7 kiloa. Jos tuntemattomia on enemmän kuin kaksi periaate on aivan sama, mutta laskutyötä on luonnollisesti paljon enemmän. Sellaisten yhtälöryhmien tehokas ratkaiseminen edellyttää matriisilaskennan alkeiden tuntemista, joten jatkamme matriisilaskentaan tutustumisella. Matriisilaskentaa tarvitsemme siksi, että lineaaristen yhtälöryhmien ratkaiseminen esim. Excelillä tai Matlabilla on ylivoimaisesti kätevintä matriisien avulla. Toki matriisilaskennalla on monia muitakin hyödyllisiä sovelluksia. Käydään kuitenkin vielä yksi esimerkki Gaussin eliminoinnista, jotta saamme paremman kuvan menetelmästä. Käytännössä tämä tehtävä on helpointa ratkaista matriisien avulla, joten mikä historiallisesti tärkeä Gaussin eliminointi ei kiinnosta sinua, voit hypätä tämän esimerkin yli.
38 Saatetaan tämä Gaussin eliminoinnilla yläkolmiomuotoon. Ensimmäisen tuntemattoman alla onkin vain nolla vain 5.:ssä yhtälössä, joten eliminoinnin 1. vaihe on helppo. Sitä varten 5. yhtälö korvataan 1.:sen ja 5.:nnen yhtälön erotuksella, jota merkitään {5} 1{1} - 1{5}. Tuloksena yhtälö ryhmä saa muodon Toisessa vaiheessa lasketaan {3} 4{2} - 1{3}. Merkintä tarkoittaa: 3. yhtälö korvataan 2. ja 3. yhtälön erotuksella, kun 2. yhtälö on ensin kerrottu 4:llä ja 3. 1:llä. Vastaavasti lasketaan {5} 1{2} - 1{5}. Siis vain sellaiset yhtälöt korvataan, joissa x 2 :n kerroin ei ole nolla. Näiden korvausten jälkeen yhtälöryhmä on Seuraavaksi hävitetään kolmannen tuntemattoman kertoimet kolmannen yhtälön alta eli lasketaan {4} 1{3} + 2{4} {5} 1{3} 2{5} {6} 1{3} + 4{6} Tämän jälkeen ryhmä näyttää seuraavalta
39 Seuraavaksi hävitetään neljännen tuntemattoman kertoimet neljännen yhtälön alta eli lasketaan {5} 1{4} + 2{5} {6} 1{4} - 1{6} Tämän jälkeen ryhmä näyttää seuraavalta Nyt kävi niin onnekkaasti, että viimeistä vaihetta ei tarvitsekaan tehdä, koska viimeisessä yhtälössä x 5 :n kerroin meni nollaksi eli yhtälö on nyt yläkolmiomuodossa. Ratkaisu saadaan nyt taaksepäin sijoittamalla: x 6 = (-4)/(-2) = 2 x 5 = 4/5 x 6 = 8/5 x 4 = 1/4 x 5 =2/5 x 3 = (4 x 4 - x 5-2 x 6 )/(-4) = (8/5-8/5-4)/(-4) = 1 x 2 = x 4 = 2/5 x 1 = 2 x 5 = 16/5 Koska stoikiometriset kertoimet ilmoitetaan yleensä kokonaislukuina, vastaukseksi saadaan (kerrotaan kaikki tuntemattomat 5:llä) x 1 = 16, x 2 = 2, x 3 = 5, x 4 = 2, x 5 = 8, x 6 = 10. Tasapainotettu reaktioyhtälö on siis 16 H + + 2 MnO 4 + 5 C 2 O 4 2 2 Mn 2+ + 8 H 2 O + 10 CO 2.
40 Vastaukset harjoitukseen 1 a), b), c), d)