Simo K. Kivelä / 08.08.2002
Mathematicassa on valtava määrä erilaisia komentoja lausekkeiden muokkaamiseen. Seuraavat on esitetty lähinnä esimerkeiksi eikä kyseessä ole millään tavoin kattava tai edes kovin johdonmukaisesti laadittu kokoelma. Ongelmana usein onkin, millä tavoin Mathematica saadaan tekemään lausekkeelle juuri haluttu muunnos.
Paitsi koko lausekkeeseen kohdistuvilla komennoilla voidaan interaktiivisessa käytössä myös valita hiirellä osa lausekkeesta ja kohdistaa paletteja käyttäen tähän jokin komento. Menettely on interaktiivisessa käytössä näppärä, mutta ohjelmakoodin osaksi se ei sovellu.
![[Graphics:Images/edist_gr_1.gif]](Images/edist_gr_1.gif)
Lausekkeiden kehittäminen ('avaaminen') tapahtuu komennolla Expand tai jollakin sen variaatiolla. Seuraava komentojono kuvaa tällöin esiin tulevia ongelmia ja ainakin osittain niiden ratkaisuja.
![[Graphics:Images/edist_gr_2.gif]](Images/edist_gr_2.gif)
![[Graphics:Images/edist_gr_4.gif]](Images/edist_gr_4.gif)
![[Graphics:Images/edist_gr_6.gif]](Images/edist_gr_6.gif)
![[Graphics:Images/edist_gr_8.gif]](Images/edist_gr_8.gif)
![[Graphics:Images/edist_gr_10.gif]](Images/edist_gr_10.gif)
![[Graphics:Images/edist_gr_12.gif]](Images/edist_gr_12.gif)
![[Graphics:Images/edist_gr_14.gif]](Images/edist_gr_14.gif)
![[Graphics:Images/edist_gr_16.gif]](Images/edist_gr_16.gif)
Lausekkeiden sieventämiseen on kaksi peruskomentoa, Simplify ja hieman vahvempi FullSimplify. Tällöin Mathematica sieventää lausekkeita omien kriteeriensä mukaisesti. Mitä muotoa on pidettävä toista sievempänä, ei kuitenkaan ole itsestään selvää, vaan riippuu siitä mihin pyritään.
![[Graphics:Images/edist_gr_18.gif]](Images/edist_gr_18.gif)
![[Graphics:Images/edist_gr_20.gif]](Images/edist_gr_20.gif)
![[Graphics:Images/edist_gr_22.gif]](Images/edist_gr_22.gif)
![[Graphics:Images/edist_gr_24.gif]](Images/edist_gr_24.gif)
![[Graphics:Images/edist_gr_26.gif]](Images/edist_gr_26.gif)
![[Graphics:Images/edist_gr_28.gif]](Images/edist_gr_28.gif)
![[Graphics:Images/edist_gr_30.gif]](Images/edist_gr_30.gif)
![[Graphics:Images/edist_gr_32.gif]](Images/edist_gr_32.gif)
![[Graphics:Images/edist_gr_34.gif]](Images/edist_gr_34.gif)
Joidenkin lausekkeiden sieventämisessä on otettava huomioon, että Mathematica olettaa symbolit kompleksiluvuiksi, ellei muuta ilmoiteta. Laskut ovat siten päteviä sekä reaali- että kompleksialueella, mutta on mahdollista, että reaalialueella voitaisiin päästä yksinkertaisempiin tuloksiin.
![[Graphics:Images/edist_gr_36.gif]](Images/edist_gr_36.gif)
![[Graphics:Images/edist_gr_38.gif]](Images/edist_gr_38.gif)
![[Graphics:Images/edist_gr_40.gif]](Images/edist_gr_40.gif)
![[Graphics:Images/edist_gr_42.gif]](Images/edist_gr_42.gif)
![[Graphics:Images/edist_gr_44.gif]](Images/edist_gr_44.gif)
PowerExpand on vahva sievennyskomento, jonka sisältä voitaisiin lähinnä tulkita 'sievennä käyttäjän vastuulla'.
Samantapaisia ilmiöitä esiintyy monien funktioiden käsittelyssä, mikä edellyttää käyttäjältä varsin hyvää funktioiden ominaisuuksien hallintaa. On myös tapauksia, missä Mathematica ei hallitse funktioita täydelleen ja antaa virheellisiä tuloksia. Tällaiset virheet on usein korjattu ohjelmiston seuraavassa versiossa, mutta toisaalta siihen on syntynyt uusia virheitä ...
![[Graphics:Images/edist_gr_46.gif]](Images/edist_gr_46.gif)
![[Graphics:Images/edist_gr_48.gif]](Images/edist_gr_48.gif)
![[Graphics:Images/edist_gr_50.gif]](Images/edist_gr_50.gif)
Monien alkeisfunktioiden arvot tietyillä argumentin arvoilla voidaan esittää yksinkertaisessa muodossa. Osittain nämä lasketaan automaattisesti, osittain arvon laskeminen on erikseen käskettävä. Mitä on pidettävä yksinkertaisena muotona, riippuu myös siitä, halutaanko laskut suorittaa reaalialueella vai hyväksytäänkö kompleksilukujen käyttö.
![[Graphics:Images/edist_gr_52.gif]](Images/edist_gr_52.gif)
![[Graphics:Images/edist_gr_54.gif]](Images/edist_gr_54.gif)
![[Graphics:Images/edist_gr_56.gif]](Images/edist_gr_56.gif)
![[Graphics:Images/edist_gr_58.gif]](Images/edist_gr_58.gif)
![[Graphics:Images/edist_gr_60.gif]](Images/edist_gr_60.gif)
![[Graphics:Images/edist_gr_62.gif]](Images/edist_gr_62.gif)
![[Graphics:Images/edist_gr_64.gif]](Images/edist_gr_64.gif)
![[Graphics:Images/edist_gr_66.gif]](Images/edist_gr_66.gif)
![[Graphics:Images/edist_gr_68.gif]](Images/edist_gr_68.gif)
![[Graphics:Images/edist_gr_70.gif]](Images/edist_gr_70.gif)
![[Graphics:Images/edist_gr_72.gif]](Images/edist_gr_72.gif)
![[Graphics:Images/edist_gr_74.gif]](Images/edist_gr_74.gif)
Käyttäjä voi määritellä Mathematicassa omat funktionsa. Määrittelyssä on vasemmalla funktion nimi, jolla on argumentteina ns. muodolliset parametrit. Näiden merkkinä tulee olla alaviiva. Merkin := oikealla puolella annetaan funktion lauseke, jossa argumentit esiintyvät, mutta jossa ei enää saa käyttää alaviivoja.
![[Graphics:Images/edist_gr_76.gif]](Images/edist_gr_76.gif)
Määrittelyn jälkeen funktiota voidaan käyttää normaaliin tapaan. Jos argumentit ovat symboleja tai rationaalilukuja, lasketaan ns. tarkka arvo, jos ne ovat desimaalilukuja, lasketaan likiarvo.
![[Graphics:Images/edist_gr_77.gif]](Images/edist_gr_77.gif)
![[Graphics:Images/edist_gr_79.gif]](Images/edist_gr_79.gif)
Yhden muuttujan funktion derivaattoja voidaan merkitä pilkuilla.
![[Graphics:Images/edist_gr_81.gif]](Images/edist_gr_81.gif)
![[Graphics:Images/edist_gr_82.gif]](Images/edist_gr_82.gif)
![[Graphics:Images/edist_gr_84.gif]](Images/edist_gr_84.gif)
![[Graphics:Images/edist_gr_86.gif]](Images/edist_gr_86.gif)
![[Graphics:Images/edist_gr_88.gif]](Images/edist_gr_88.gif)
Tämä soveltuu myös standardifunktioihin:
![[Graphics:Images/edist_gr_90.gif]](Images/edist_gr_90.gif)
Funktiot voidaan myös määritellä paloittain:
![[Graphics:Images/edist_gr_92.gif]](Images/edist_gr_92.gif)
![[Graphics:Images/edist_gr_93.gif]](Images/edist_gr_93.gif)
![[Graphics:Images/edist_gr_94.gif]](Images/edist_gr_94.gif)
![[Graphics:Images/edist_gr_97.gif]](Images/edist_gr_97.gif)
![[Graphics:Images/edist_gr_99.gif]](Images/edist_gr_99.gif)
![[Graphics:Images/edist_gr_101.gif]](Images/edist_gr_101.gif)
![[Graphics:Images/edist_gr_103.gif]](Images/edist_gr_103.gif)
![[Graphics:Images/edist_gr_105.gif]](Images/edist_gr_105.gif)
Global`h
|
Vaihtoehtoinen tapa funktion määrittelemiseen on funktion Function käyttö.
![[Graphics:Images/edist_gr_109.gif]](Images/edist_gr_109.gif)
![[Graphics:Images/edist_gr_110.gif]](Images/edist_gr_110.gif)
Funktiomäärittelyt voivat olla myös rekursiivisia. Esimerkiksi Fibonacci'n luvut voidaan määritellä seuraavasti.
![[Graphics:Images/edist_gr_112.gif]](Images/edist_gr_112.gif)
![[Graphics:Images/edist_gr_114.gif]](Images/edist_gr_114.gif)
![[Graphics:Images/edist_gr_116.gif]](Images/edist_gr_116.gif)
![[Graphics:Images/edist_gr_117.gif]](Images/edist_gr_117.gif)
Global`a
|
![[Graphics:Images/edist_gr_121.gif]](Images/edist_gr_121.gif)
Tätä määrittelyä voidaan tehostaa antamalla se hieman erilaisessa muodossa. Määrittelyn idea kuitenkin sivuutetaan.
![[Graphics:Images/edist_gr_123.gif]](Images/edist_gr_123.gif)
![[Graphics:Images/edist_gr_125.gif]](Images/edist_gr_125.gif)
![[Graphics:Images/edist_gr_127.gif]](Images/edist_gr_127.gif)
![[Graphics:Images/edist_gr_128.gif]](Images/edist_gr_128.gif)
Global`b
|
![[Graphics:Images/edist_gr_132.gif]](Images/edist_gr_132.gif)
![[Graphics:Images/edist_gr_134.gif]](Images/edist_gr_134.gif)