Symbolista ja numeerista matematiikkaa Maple-ohjelmistolla (Heikki Apiola; Otatieto, 1998)
Matemaattiset ohjelmistot ovat välineitä tieteellisten ja teknisten ongelmien ratkaisemiseen. Interaktiiviset symbolinkäsittelyohjelmistot kuten Maple tai Mathematica ovat nykyisin tiedemiesten ja insinöörien jokapäiväisiä työkaluja. Siksi on tärkeää, että niitä opetetaan käyttämään tehokkaasti ja harkiten jo yliopistotason perusopintojen alkuvaiheissa. Heikki Apiolan tuore opas on hyvä lähtökohta Maple-ohjelmiston käyttöä opettaville kursseille.
Matemaattiset mallit ja Maplen käyttö
Mihin Maplen kaltaista ohjelmistoa tarvitaan? Matemaattisten mallien muodostaminen ja ratkaiseminen on monivaiheinen prosessi. Aluksi tieteellisesti kiinnostava ilmiö pitää identifioida eli tunnistaa. Tämän jälkeen voidaan ilmiötä ruveta mallintamaan matemaattisin keinoin. Malli voi tuottaa ratkaistavaksi esimerkiksi joukon differentiaaliyhtälöitä, optimointitehtävän, tilastollisen tehtävän tai näiden yhdistelmän.
Matemaattisen mallin ratkaisemiseen tarvitaan luotettavia ja tehokkaita menetelmiä. Yksinkertaisissa tehtävissä saatetaan löytää tehtävän symbolinen ratkaisu. Monimutkaisemmissa tapauksissa täytyy turvautua numeerisen ratkaisualgoritmin löytämiseen tai kehittämiseen -- tehtävä voidaan tällöin ratkaista annetuilla alkuarvoilla tai parametrien arvoilla.
Aina ei kuitenkaan edes numeerista ratkaisua onnistuta löytämään, jolloin tehtävää voidaan joutua yksinkertaistamaan ja aloittamaan mallinnuskierros alusta uudelleen.
Apiolan teos antaa hyviä eväitä mallinnuksen eri vaiheisiin -- niin symbolinkäsittelyyn kuin numeriikaankin. Maplea voi käyttää mm. seuraaviin tarkoituksiin:
- lausekkeiden algebrallinen manipulointi: yksinkertaistaminen, tekijöihin jako, supistaminen
- lausekkeiden symbolinen derivointi ja integrointi
- yhtälöiden ja yhtälöryhmien ratkaiseminen
- kuvaajien piirtäminen ja grafiikka yleensä
- numeeriset laskut
- Fortran-koodin tai TeX-lausekkeiden tuottaminen
- ohjelmointi.
Maplea voi laajentaa määrittelemällä funktioita ja sääntöjä tiedostoissa ja lukemalla nämä sisään ohjelmistoon. Maplessa on myös monipuoliset grafiikkaominaisuudet. Etenkin funktioiden kuvaajien piirtäminen on helppoa. Tämä mahdollistaa vaikeidenkin asioiden havainnollistamisen jo perusopinnoissa.
Prototyyppityöskentely
Puhtaasti numeerista tietoa käsiteltäessä symbolisen laskennan ohjelmistot voivat olla tehottomia, koska algoritmien ja tietorakenteiden pitää pystyä käsittelemään sekä numeerista että symbolista tietoa.
Tulkittavissa kielissä (kuten Maple) jokainen lause analysoidaan jokaisella suorituskerralla uudestaan, minkä vuoksi sama asia vie paljon enemmän aikaa kuin käännetyllä ohjelmalla toteutettuna. Parhaimmillaan tulkittavat kielet ovat kaikenlaisissa kokeiluissa ja pienehköissä töissä. Raskaimmat tehtävät olisi parempi laskea joko Fortranilla tai C:llä.
Tehokas tapa kirjoittaa ohjelmia on kirjoittaa ensin prototyyppiohjelmia esimerkiksi Maplella. Interaktiivisessa ympäristössä voi nopeasti toteuttaa ja testata erilaisia ratkaisualgoritmeja. Tässä ympäristössä voi tutkia erilaisten parametrien vaikutusta ohjelman suoritukseen sekä tarkastella laskentatuloksia graafisesti. Myös eri laskenta-algoritmien vertailu on helppoa. Testauksen jälkeen voi saman algoritmin toteuttaa perinteisillä ohjelmointikielillä.
Miten teos täyttää tavoitteensa
Heikki Apiolan kirja on tiivis katsaus Maple-ohjelmiston tärkeimpiin piirteisiin. Esimerkkejä on paljon, mikä auttaa ymmärtämään eri piirteiden merkityksen käytännön työssä. Toisaalta harjoitustehtäviä on kohtalaisen vähän, joten niitä joutuu joko itse keksimään esimerkkien pohjalta -- tai sitten Maple-kurssin vetäjän täytyy keksiä opiskelijoita kiinnostavia ja motivoivia tehtäviä.
Vaikka Apiola pyytääkin lukijoilta esipuheessa anteeksi teoksen viimeistelemättömyyttä, ei teoksesta löydy isoja puutteita tai pahoja painovirheitä. Tosin teos ei ehkä sovi itseopiskeluun aloittelijoille vaan pikemminkin käytettäväksi kurssimateriaalina Maplen käytön hyvin osaavan opettajan johdolla. Paikka paikoin teos etenee varsin vauhdikkaasti ja aloittelija saattaa hetkeksi pudota kyydistä. Toisaalta teoksessa on paljon mielenkiintoista myös pidemmälle ehtineelle Maplen käyttäjälle.
Pitäisikö käyttää Maplea, Mathematicaa vai ...?
Teoksessa todetaan, että Maple-ohjelmiston opas on tarpeen, sillä suomenkielistä kurssimateriaalia ei aiemmin ollut tarjolla. Apiola ei kuitenkaan sen kummemmin perustele Maplen valintaa opetusvälineenä, vaikka hyviä perusteluja kyllä voisi keksiä.
Maple on monipuolinen ja tehokas sekä saatavissa moniin käyttöjärjestelmiin. Lisäksi Maplella on vahvat siteet akateemiseen maailmaan, mikä puoltaa sen käyttöä opetuksessa. Puutteitakin löytyy: Maplen tietotyyppejä joutuu usein muuntamaan toisikseen. Eri alueille kehitettyjen proseduurien lievä yhteensopimattomuus on myös toisinaan päänvaivana; tässä on taustana eri tutkimusryhmissä tapahtunut kehitystyö, jonka jäljet näkyvät vielä ohjelmiston rakenteessa. Toisaalta Maple on avoimempi kuin monet kilpailevat ohjelmistot ja Maplea on melko helppo laajentaa uusiin suuntiin.
Kenelle teos sopii?
Apiolan Maple-teos on hyvä ensimmäinen versio suomalaiseksi Maple-ohjelmiston oppikirjaksi. Teoksessa saisi olla reilusti enemmän harjoitustehtäviä. Eräissä kohdin voisi esitysvauhtia hidastaa ja kertoa käyttövinkkien taustoista nykyistä enemmän, jotta teos sopisi myös itseopiskeluun.
Teos on arvokas lisä yliopistojen suomenkieliseen opetusmateriaaliin. Toivon, että se löytää lukijansa ja Otatieto onnistuu teoksen markkinoinnissa myös pääkaupunkiseudun ulkopuolelle. Toisaalta muuallakin Suomessa on ansiokkaasti julkaistu yliopistotason opetusmateriaalia -- kuka ottaisi aloitteen ja markkinoisi yliopistojen luentomonisteita ja oppikirjoja koko maan kattavasti? Tarvittaisiinko Suomeen ruotsalaisen Studenlitteraturin kaltainen luonnontieteiden ja tekniikan merkittävä kustannustalo?