Maxima ja Maple. millaan lailla sukua muuttujille a ja b. 1 Ohjelmat eivät yleensä pahastu turhista välilyönneistä, joten niitä



Samankaltaiset tiedostot
Opiskelijan pikaopas STACK-tehtäviin. Lassi Korhonen, Oulun yliopisto

plot(f(x), x=-5..5, y= )

Differentiaali- ja integraalilaskenta 1. Tietokoneharjoitus: ratkaisut

Hannu Mäkiö. kertolasku * jakolasku / potenssiin korotus ^ Syöte Geogebran vastaus

wxmaxima opas 1 Mikä wxmaxima on 2 wxmaximan käyttö Petri Sallasmaa 13. toukokuuta 2014

} {{ } kertaa jotain

Harjoitus 10: Mathematica

Ohjelmoinnin perusteet Y Python

Matematiikan tukikurssi

Ohjelmoinnin perusteet Y Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

mplperusteet 1. Tiedosto: mplp001.tex Ohjelmat: Maple, [Mathematica] Sievennä lauseke x 1 ( mplp002.tex (PA P1 s.2011)

Harjoitus 1 -- Ratkaisut

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Luvuilla laskeminen. Esim. 1 Laske

Funktion määrittely (1/2)

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

1.4 Funktion jatkuvuus

Kotilaskut 1 yms. Maple:lla Maple 2017 versio. Työarkkien yhteensopivuus taaksepäin ei ole taattu!

Ohjelmoinnin peruskurssi Y1

Matematiikan tukikurssi

DIFFERENTIAALI- JA INTEGRAALILASKENTA

Harjoitus 1: Matlab. Harjoitus 1: Matlab. Mat Sovelletun matematiikan tietokonetyöt 1. Syksy 2006

Kaikkia alla olevia kohtia ei käsitellä luennoilla kokonaan, koska osa on ennestään lukiosta tuttua.

1 Raja-arvo. 1.1 Raja-arvon määritelmä. Raja-arvo 1

Matematiikan johdantokurssi Johdatusta funktiosääntöihin ja piirtelyyn. Harjoitusta 9, tehtävien käsittelyä Maplella

Ohjelmoinnin peruskurssi Y1

Matematiikan tukikurssi

Harjoitus 1 -- Ratkaisut

Excel syventävät harjoitukset

13. Taylorin polynomi; funktioiden approksimoinnista. Muodosta viidennen asteen Taylorin polynomi kehityskeskuksena origo funktiolle

Mitä symbolilaskentaohjelmalta voi odottaa ja mitä ei? Tapaus Mathematica

Sekalaiset tehtävät, 11. syyskuuta 2005, sivu 1 / 13. Tehtäviä

niin järjestys on tämä: ensin kerto- ja jakolaskut vasemmalta oikealle, sen jälkeen plus- ja miinuslaskut vasemmalta oikealle.

Ohjelmoinnin peruskurssi Y1

* Trigonometriset funktiot suorakulmaisessa kolmiossa * Trigonometristen funktioiden kuvaajat

Tehtävänanto oli ratkaista seuraavat määrätyt integraalit: b) 0 e x + 1

a) Mikä on integraalifunktio ja miten derivaatta liittyy siihen? Anna esimerkki = 16 3 =

Lineaarialgebra a, kevät 2019

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2

Ohjelmoinnin peruskurssi Y1

5. Numeerisesta derivoinnista

Harjoitus 3 -- Ratkaisut

Kompleksiluvut 1/6 Sisältö ESITIEDOT: reaaliluvut

Ohjelmoinnin peruskurssi Y1

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta Toteuta Pythonilla seuraava ohjelma:

MATEMATIIKAN KOE, PITKÄ OPPIMÄÄRÄ HYVÄN VASTAUKSEN PIIRTEITÄ

Matematiikan tukikurssi

2.1. Tehtävänä on osoittaa induktiolla, että kaikille n N pätee n = 1 n(n + 1). (1)

FUNKTION KUVAAJAN PIIRTÄMINEN

Testaa taitosi Piirrä yksikköympyrään kaksi erisuurta kulmaa, joiden a) sini on 0,75 b) kosini on

Zeon PDF Driver Trial

Potenssi eli potenssiin korotus on laskutoimitus, jossa luku kerrotaan itsellään useita kertoja. Esimerkiksi 5 4 = Yleisesti.

KAAVAT. Sisällysluettelo

Matemaattisen analyysin tukikurssi

Talousmatematiikan perusteet, L2

Matematiikan peruskurssi 2

1 Kompleksiluvut. Kompleksiluvut 10. syyskuuta 2005 sivu 1 / 7

Johdantoa. Jokaisen matemaatikon olisi syytä osata edes alkeet jostakin perusohjelmistosta, Java MAPLE. Pascal MathCad

Matriiseista. Emmi Koljonen

Numeeriset menetelmät

Python-ohjelmointi Harjoitus 5

Matematiikan tukikurssi

5.3 Ensimmäisen asteen polynomifunktio

Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2017 Insinöörivalinnan matematiikan koe , Ratkaisut (Sarja A)

Aluksi Kahden muuttujan lineaarinen yhtälö

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Sini- ja kosinifunktio

Matematiikan tukikurssi, kurssikerta 3

Preliminäärikoe Pitkä Matematiikka

0. Kertausta. Luvut, lukujoukot (tavalliset) Osajoukot: Yhtälöt ja niiden ratkaisu: N, luonnolliset luvut (1,2,3,... ) Z, kokonaisluvut

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 1 / vko 44

Radiaanit. Kun kulman α suuruus nyt mitataan tämän kaaren pituutena, saadaan kulmaan arvo radiaaneissa.

Matematiikan tukikurssi, kurssikerta 4

Olkoon funktion f määrittelyjoukkona reaalilukuväli (erityistapauksena R). Jos kaikilla määrittelyjoukon luvuilla x 1 ja x 2 on voimassa ehto:

GeoGebra-harjoituksia malu-opettajille

BL40A0000 Säätötekniikan ja signaalinkäsittelyn

ATK tähtitieteessä. Osa 2 - IDL perusominaisuudet. 12. syyskuuta 2014

Matikkaa KA1-kurssilaisille, osa 3: suoran piirtäminen koordinaatistoon

Ohjelmoinnin perusteet Y Python

Matematiikan tukikurssi

Matriisilaskenta Laskuharjoitus 1 - Ratkaisut / vko 37

Matlab- ja Maple- ohjelmointi

1. Murtoluvut, murtolausekkeet, murtopotenssit ja itseisarvo

Vektoreiden A = (A1, A 2, A 3 ) ja B = (B1, B 2, B 3 ) pistetulo on. Edellisestä seuraa

Juuri 7 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty c) sin 50 = sin ( ) = sin 130 = 0,77

Talousmatematiikan perusteet, L3 Prosentti, yhtälöt Aiheet

Johdatus Ohjelmointiin

= 2 L L. f (x)dx. coshx dx = 1 L. sinhx nπ. sin. sin L + 2 L. a n. L 2 + n 2 cos. tehdään approksimoinnissa virhe, jota voidaan arvioida integraalin

PERUSLASKUJA. Kirjoita muuten sama, mutta ota KAKSI välilyöntiä (SEURAA ALUEMERKINTÄÄ) 4:n jälkeen 3/4 +5^2

Jatkuvat satunnaismuuttujat

MATP153 Approbatur 1B Ohjaus 2 Keskiviikko torstai

1. Otetaan perusjoukoksi X := {0, 1, 2, 3, 4, 5, 6, 7}. Piirrä seuraaville kolmelle joukolle Venn-diagrammi ja asettele alkiot siihen.

k=0 saanto jokaisen kolmannen asteen polynomin. Tukipisteet on talloin valittu

3.3 Paraabeli toisen asteen polynomifunktion kuvaajana. Toisen asteen epäyhtälö

MATEMATIIKAN KOE, PITKÄ OPPIMÄÄRÄ HYVÄN VASTAUKSEN PIIRTEITÄ

LAUSEKKEET JA NIIDEN MUUNTAMINEN

MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 6: Alkeisfunktioista

Lukujonon raja-arvo 1/7 Sisältö ESITIEDOT: lukujonot

Transkriptio:

Maxima ja Maple Maple on symbolisen matematiikan laskentaohjelma jota käytetään esim. Joensuun yliopistossa; siihen on törmätty mestariluokan laskuharjoituksissa. Koska Maple on kaupallinen ohjelma ja koska mestariluokkahanke on köyhä jne., mainittakoon että internetistä löytyy ilmainen vapaan lähdekoodin ohjelma Maxima, jolla pystyy olennaisesti tekemään sen minkä Maplellakin. Mikäli osallistuja tahtoo tutustua tällaiseen grafiikkalaskinta haastavampaan ja kauniimpaan matematiikkapyörittelyyn, Maxima löytyy netistä seuraavasta osoitteesta: http://maxima.sourceforge.net/ Siitä on saatavilla niin Linux-, Mac- kuin Windows-versiotkin. Ainakin Windows-versio sisältää wxmaxima-nimisen graafisen käyttöliittymän; samasta osoitteesta löytyy myös paljon tätä johdantoa laajempaa ja ammattitaitoisempaa dokumentaatiota ohjelman käyttöä varten. Alla on muutamia yleisimpiä Maplen ja Maximan käskyjä; huomaa että käskyt ovat kussakin ohjelmassa hieman erilaisia. Ohjelmien peruslogiikka on se, että käyttäjä kirjoittaa haluamansa komennon, ja kun hän painaa enter-nappia ohjelma tulkitsee komennon parhaansa mukaan ja sylkee ulos tuloksen. Tämä toistuu käyttäjän kyllästymiseen asti. Ensimmäisenä tärkeänä yksityiskohtana ja esimerkkinä sanottakoon että mikäli tahtoo kertoa kaksi lukua keskenään, niiden väliin on laitettava kertomerkki (*); matemaattikkaohjelmat tulkitsevat nämä syötteet eri lailla: a*b ab Ensimmäinen on niiden mielestä jokin toistaiseksi tarkemmin määrittelemätön muuttuja a kertaa jokin toistaiseksi tarkemmin määrittelemätön muuttuja b ; toinen puolestaan on pelkästään jokin toistaiseksi tarkemmin määrittelemätön muuttuja nimeltään ab, joka ei ole millaan lailla sukua muuttujille a ja b. 1 Ohjelmat eivät yleensä pahastu turhista välilyönneistä, joten niitä voi käyttää syötteen sieventämiseen ja selventämiseen: sekä 2*3 että 2 *3 että 2* 3 että 2 * 3 että 2 *3 tarkoittavat samaa kertolaskua kaksi kertaa kolme. 2 1 Vertaa siihen miten eräs toinen viestiprosessori, nimittäin ihmisaivo, ymmärtää helposti että sanalla muuttuja ei ole mitään tekemistä sanojen muu ja ja kanssa. 2 Huomaa kuitenkin että käsky a b (lainausmerkit selvyyden vuoksi) ei tarkoita mitään; ohjelma kyllä näkee että sille kerrotaan kaksi muuttujaa, mutta ei osaa tulkita mitä ihmettä niiden vierekkäinolon olisi tarkoitus tarkoittaa, välilyönti kun ei ole mikään matemaattinen operaatio. Samaten kirjainyhdistelmä sin johon törmätään alla tarkoittaa sinifunktiota, mutta kirjainyhdistelmä s in on vain enter-napin painallusta odottava virheilmoitus. 1

Lukujen potensseja merkitään hattu-merkillä: luvun a neliö merkitään a^2, sen kolmas potenssi a^3, ja niin edelleen. Tarvittaessa käytetään sulkuja; esimerkiksi luku a potenssiin 1/2 täytyy kirjoittaa a^(1/2) sillä syöte a^1/2 on tietokoneen mielestä muuttuja a potenssiin 1, ja tämä sitten jaettuna kahdella eli (a 1 )/2. Plus- (+), miinus- (-), kerto- (*) ja jakomerkit (/) toimivat ilmeisellä tavalla, ja ohjelmat suorittavat laskutoimitukset (yleensä) luontevassa järjestyksessä: sulkulausekkeet ensin, sitten kerto- ja jakolaskut, sitten yhteen- ja vähennyslaskut. Jos on epävarma siitä miten kone jonkin laskun tulkitsee, voi aina käyttää ylimääräisiä sulkuja aivan kaiken varalta. (2 + 3)/11 4*3-1 Näistä ylläolevasta kahdesta käskystä kumpikaan ei kuitenkaan toimi sellaisenaan, sillä sekä Maplessa että Maximassa koneen laskettavaksi/suoritettavaksi annettu tehtävä pitää päättää puolipisteeseen (;), tai ulos tulee vain virheilmoitus. Esimerkiksi näin: 3*3+1; Tämä antaa tulokseksi laskun kolme kertaa kolme plus yksi tuloksen; puolipiste kertoo ohjelmalle mihin tehtävänanto loppuu, ja mistä alkaa koneen työ. Maxima voi myös toimia ilman puolipistettä; kuten kaikissa muissakin tietokoneohjelmissa näissäkin niiden tarkan toiminnan ja sietokyvyn oppii vain tekemällä kaikki mahdolliset virheet kunnes vain toimiva ratkaisu on jäljellä. Huomaa että Maxima ja Maple ovat yleisesti ottaen samoja asioita tekeviä eri ohjelmia; siksi ne toimivat ajoittain eri lailla, ja suhtautuvat asioihin eri lailla, ja käyttävät samojen asioiden tekemiseen eri komentoja ja erilaista syntaksia; siksi alla on ajoittain annettu saman asian tekemiseksi kaksi eri komentoa. Jos niitä ei ole sen tarkemmin selitelty tai eroteltu, ensimmäinen on Maximan, toinen Maplen, tapa tehdä asia. Jos tätä ei muista, se luultavasti palaa mieleen kun ohjelma herjaa käskyn olevan huonosti muotoiltu tms.; se on koneiden tapa. Ylläolevasta muuttujapuheesta saattoi nousta mieleen se, voiko muuttujille (a, b, jne.) määrätä arvoja; vastaus on, kyllä voi. Jos esimerkiksi joutuu laskemaan laskun 2 + 1 + 1 2+1 ( 2 + 1) 2, voi helposti menettää hermonsa kirjoittaessaan sitä koneeseen, sillä se näyttäisi tältä: (sqrt(2)+1 + 1/(sqrt(2)+1))/((sqrt(2)+1)^2); 2

Ihmisen elämä helpottuu, jos määritellään muuttujan a arvoksi 2+1, ja lasketaan lasku käyttäen sitä apuna ensimmäinen kaksi riviä ovat Maximan, toiset Maplen tapa: a : sqrt(2)+1; ( a + 1/a )/(a^2); a := sqrt(2)+1; ( a + 1/a )/(a^2); Tässä voi kompastua omaa oveluuteensa jos unohtaa että tästä lähtien a tarkoittaa ohjelman sammuttamiseen asti lukua 2+1. Tästä pääsee eroon käskyillä kill(a); a := a ; jotka saavat ohjelmat unohtamaan muuttujalle a annetut arvot. Ohjelmoijien ollen sellaisia kuin ovat, Maximassa komento kill(all) unohtaa (mm.) kaikille muuttujille annetut arvot; Maplen samansuuntainen komento on restart. 3 Maple ja Maxima tuntevat jo ennakkoon muutaman yleishyödyllisen vakion, kuten pii eli π 3.14159 (%pi, Pi), Eulerin luku eli e 2.71828 (%e, exp(1)), imaginääriyksikkö eli i (%I, I) ja ääretön eli (inf, infinity). (Maplessa voi kompastua siihen että Pi on ohjelman tietämä vakio, pi puolestaan on vain satunnainen kahden kirjaimen merkitsemä muuttuja jolla ei ole mitään valmista arvoa. Molemmat ohjelmat ovat kirjainkoon suhteen tarkkoja.) Tavallaan muuttuja on myös % (Maplessa ja Maximassa sama), jonka arvo on aina se, minkä kyseinen ohjelma on viimeksi laskenut. Jos Maplea esimerkiksi käsketään näin: sin(pi); %+1; %+2; niin ensimmäisen käskyn ulosanto on sinifunktio arvolla pii, eli nolla; toisen käskyn ulosanto on nolla plus yksi eli yksi; ja kolmannen käskyn tulos on yksi plus kaksi eli kolme. Huomaa erityisesti että %-muuttujan arvo on mitä on viimeksi laskettu, ei mitä on viimeksi kirjoitettu. (Ohjelmien ulostuloja voi myös koettaa maalata hiirellä ja kopioida jos ei tahdo käyttää tätä muuttujaa; tulos riippuu ulostulosta.) 3 Niin, ja tuon murtolausekehirviön syöttäminen ei välttämättä saa ohjelmaa sieventämään sitä; sitä varten on erillinen komento, Maplessa simplify ja Maximassa ratsimp (murtolausekkeen sievennys; rational simplification ). Siis simplify(( a + 1/a )/(a^2)); ja ratsimp(( a + 1/a )/(a^2)); tuloksena voi olla esimerkiksi 2 2+4 5, riippuen siitä mikä on kyseinen ohjelman käsityskyvyn 2+7 mukaan sievää. 3

Suurin osa ohjelmien hyödyllisistä komennoista on erikseen määriteltyjä funktioita, joita yleensä kutsutaan käskyllä joka on tällaista muotoa: funktionnimi(muuttuja,muuttuja,muuttuja); Muuttujia voi olla yksi tai useampia; osa niistä ei välttämättä ole pakollisia. Helppo esimerkki funktiosta on neliöjuuri; esimerkiksi kahden neliöjuuri syötetään molemmissa ohjelmissa laskettavaksi näin: sqrt(2); Tässä sqrt on kontraktio englannin kielen neliöjuurta tarkoittavasta sanasta square root ; koska harvasta näppäimistöstä löytyy neliöjuurimerkkiä ( tätä), on se ja muut matemaattiset oliot ohjelmoitu tavallisilla aakkosilla kutsuttaviksi funktioiksi. 4 Syöttäessään ohjelmaan ylläolevan voi kuitenkin pettyä, sillä Maple ja Maxima ovat symbolisia laskentaohjelmia, eli ne koettavat aina laskea laskettavansa tarkan arvon, ja alentuvat numeeriseen likiarvolaskentaan vain kun ne siihen erikseen pakotetaan. Eräitä tällaisia pakotuskäskyjä ovat Maximan bfloat ja Maplen evalf, ja kahden neliöjuuren numeerisen likiarvon saa ulos käskemällä näin: bfloat(sqrt(2)); evalf(sqrt(2)); Jos niin haluaisi, niin voisi muuttaa ohjelmien asetuksia saadakseen tuloksen mielivaltaisen monen desimaalin tarkkuudella; halukas saa tästä helposti koneelleen raksuttamista useammaksikin viikoksi. (Niin, ja koska komennot on helpompi muistaa kun tietää mistä niiden nimet johtuvat, näiden takana ovat englannin termit floating-point number eli liukuluku tai liukulukulikiarvo jona syötetty luku ilmoitetaan, ja floating-point evaluation eli liukulukulikiarvona arvioiminen.) Raja-arvo: funktion x 7 raja-arvo pisteessä x = 3 lasketaan näin: limit(x-7,x,3); limit(x-7,x=3); Jos raja-arvolaskenta ei ole tuttua, ei kannata stressata asiaa liikaa. Huomaa kuitenkin että tässä tulee esille eräs Maximan ja Maplen ero: Maxima ilmaisee ajatuksen muuttuja x pisteessä 3 tekstillä x,3, siis kahtena erillisenä funktion muuttujana, ja Maple yhtenä, tekstillä x=3. Lausekkeen kirjoittaminen auki sujuu samalla komennolla molemmissa ohjelmissa: expand((a+b)^3); 4 Koska harvasta näppäimistöstä myöskään löytyy kreikkalaisia kirjaimia, Maple tulkitsee kirjainyhdistelmän alpha muuttujaksi aivan yhtä lailla kuin kirjainyhdistelmän a tai norsunjalka, mutta ulosannossaan kirjoittaa sen näin: α. Samaten beta, gamma,..., omega käyttäytyvät kuin mitkä tahansa muutkin mielivaltaiset muuttujat, mutta ovat ohjelmien ulosannossa kirjoitettuna β, γ,..., ω; huomaa vain että kreikkalaisia kirjaimia on kutsuttava niiden englanninkielisessä kirjoitusasussa, siis alpha, ei alfa. 4

Muuttujan x ratkaiseminen yhtälöstä ax 2 = 4 on myös identtinen komento: solve(a*x^2=4,x); Siinä että muuttujalle on käytetty kirjainta x ei ole mitään erityistä tai perustavanlaatuisen tärkeää; aivan yhtä hyvin voitaisiin antaa laskettavaksi solve(a*b^2=4,b); tai vaikka tämä: solve(a*poroluu^2=4,poroluu); Näissä ohjelmissa ja matematiikassa yleensäkin käytetään tiettyjä kirjaimia (x, y, jne.) vain siksi että a) se on tapana, ja b) saman merkinnän käyttäminen samankaltaiselle olennolle lisää tekstin luettavuutta. Lisäksi huomaa että Maplelle ja Maximalle kirjainrypäs poroluu on yksi ainoa muuttuja; ohjelmassa voivat samalla aikaa pyöriä vaikkapa muuttujat u, p ja o, mutta niillä ja niiden arvoilla ei ole mitään yhteyttä muuttujan poroluu arvoon. Kuvaajia voidaan piirtää plot2d (Maxima) tai plot-komennolla (Maple); huomaa että se mitkä x-akselin arvot piirretään ilmaistaan eri lailla eri ohjelmissa: plot2d(sin(x),[x,-2,2]); plot(sin(x),x=-2..2); Ohjelma osaa itse laskea mitä y-akselin arvoja kuvassa on näytettävä, mutta jos tahtoo kontrolloida sitä itse, sen voi lisätä: plot2d(1/x,[x,0,2],[y,0,2]); plot(1/x,x=0..2,y=0..2); Tämä on ajoittain tarpeen; yllä siksi että funktio 1/x saa lähellä nollaa poskettoman suuria arvoja, ja ellei y-akselia rajoiteta, ohjelma venyttää kuvaan hyödyttömän paljon y-akselia. Kahden muuttujan funktioiden ( kolmiulotteisia ) kuvaajia voidaan piirtää plot3d-komennolla: plot3d(sin(x*y),[x,-2,2],[y,-1,1]); plot3d(sin(x*y),x=-2..2,y=-1..1); Tästä syntyvään kuvaajaan voi tarttua kiinni hiirellä ja käännellä sitä ympäriinsä; Maplessa sitä voi myös tökkiä hiiren oikealla napilla, jolloin valikosta löytyy keinoja kuvan kaunistamiseksi. Kuten yltä voi arvata, ohjelmat ymmärtävät että sin(x) tarkoittaa muuttujan x siniä; samaten cos(x), tan(x), log(x) ja exp(x) vastaavat kosinia, tangenttia, luonnollista logaritmia ja eksponenttifunktiota. Sulkuja on käytettävä että ohjelma tietää mistä osasta sitä seuraavaa rypästä sen täytyy ottaa sini, kosini tai muu sellainen. Huomaa että yleensä molemmat ohjelmat käsittelevät trigonometrisiä funktioita radiaanien, ei asteiden, avulla. 5

Luentoihin liittyen voidaan myös laskea kahdelle kokonaisluvulle niiden suurin yhteinen tekijä (syt), eli englanniksi greatest common divisor (gcd); komento on molemmissa ohjelmissa sama: gcd(16,20); Tai voidaan jakaa luku alkutekijöihinsä: factor(24); ifactor(24); Tai kysyä onko jokin luku alkuluku (false on epätosi, true on tosi): primep(16); isprime(16); Näillä ohjelmilla voi laskea melkein mitä tahansa symbolisia matemaattisia laskutoimituksia; molemmissa on omat aputiedostonsa, ja netistä löytyy apuja kummankin käyttämiseen, sekä kattavia listoja kaikista ohjelmien tuntemista funktioista. Viimeisinä esimerkkeinä sanottakoon että summan eli 1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 + 1/9 + 1/10 10 t=1 laskeminen ja sieventäminen yhdesti murtoluvuksi ensin käsin ja sitten koneella sum(1/t,t,1,10); sum(1/t,t=1..10); antaa kuvan siitä miksi matemaattinen ajattelutapa eikä suinkaan kylmä laskurutiini on sitä, mitä matemaatikolta vaaditaan. Samalla lailla voi myös kertoa lukuja keskenään: Tulo voidaan laskea product((t+3)/t^2,t,1,3); product((t+3)/t^2,t=1..3); ja funktioita voidaan derivoida: diff(sin(x)/x,x); 1 t 4 1 5 4 6 9 ja integroida niin epämääräisenä ( sin x dx) x integrate(sin(x)/x,x); int(sin(x)/x,x); kuin määrättynäkin integraalina ( sin x dx) 0 x integrate(sin(x)/x,x,0,inf); int(sin(x)/x,x=0..infinity); 6

vailla pelkoa siitä että kirjoitusvirhe rivillä 3 saisi koko loppusivun laskun menemään metsään. (Se mitä tietokonealgebrassa pitää puolestaan pelätä on se, että mielikuvitukseton ja äärettömän kirjaimellinen kone tulkitsee jotain väärin jos ihminen kirjoittaa a^2+2*ab+b^2 tietokone ei osaa tulkita että ihminen tietenkin tarkoitti a^2+2*a*b+b^2 mutta ajan ja lukuisien erehdysten kautta ihminen oppii tuntemaan senkin, miten tietokone asioita tulkitsee.) Yleisesti ottaen sekä Maple että Maxima ovat helppoja käyttää, kunhan niiden käytössä vain pääsee alkuun ja saa jonkinlaisen kuvan niiden toiminnasta; tarkempia kuvauksia komentojen yksityiskohdista ja tietoja muista erikoisemmista komennoista voi etsiä itse; esimerkiksi matriisilaskenta, Maplen (ja mahdollisesti myös Maximan) ohjelmointi, omien funktioiden määritteleminen ja monet muut alueet on tässä lyhyessä johdatuksessa ohitettu täysin. 5 Jos on kokemusta ohjelmoinnista, seuraavien komentosarjojen tulkitsemisen ei pitäisi olla kovinkaan vaikeaa. 6 Maple: k := 0: for i from 1 to 10 do k := k + sin(i); end do: k; evalf(k); Maxima: k : 0; for i from 1 thru 10 do k : k+sin(i); k; bfloat(k); 5 Puhumattakaan tilastollisista funktioista, polynomiapproksimaatioista, Gröbnerkannoista ja lukuisista aiheista joista edes keskiviisas matematiikan jatko-opiskelija ei ymmärrä yhtään mitään. Omien funktioiden määrittelystä esimerkkinä sanottakoon että komentojen (ensimmäinen Maximan, toinen Maplen) f(x) := x^2; f := x -> x^2; jälkeen syötteet f(2); ja f(x+1); antavat tulokseksi 4 ja (x + 1) 2. 6 Niiden syöttäminen koneeseen voi olla vaikeaa, ellei tiedä että Maplessa shift-enteryhdistelmällä saa rivinvaihdon ilman että ohjelma alkaa vielä laskemaan käskyjä; Maximassa (tai ainakin wxmaximassa) tätä varten on syöttörivin oikeassa reunassa multiline input-nappi. Lisähuomautuksena ohjelmanpätkästä sanottakoon että kaksoispiste (:) on toiminnaltaan aivan sama kuin puolipiste (;), mutta ei näytä laskun tulosta ruudulla. 7