Simo K. Kivelä / 23.08.2010
Listat; vektorit ja matriisit
In[1]:=
Lista ja sen alkiot
Lista on tärkein Mathematican datatyyppi. Sillä on erilaisia käyttötapoja tavattoman paljon. Ensimmäisenä eteen tulevia ovat erilaiset taulukot ja toisaalta vektorit.
Lista voidaan yksinkertaisimmin muodostaa luettelemalla sen alkiot alkiot aaltosuluissa. Listan alkioihin voidaan viitata antamalla indeksi(t) kaksinkertaisissa hakasuluissa. Joissakin tapauksissa voidaan käyttää myös listaan kohdistettavia funktioita.
In[2]:=
Out[2]=
In[3]:=
Out[3]=
In[4]:=
Out[4]=
In[5]:=
Out[5]=
Listoja voidaan muodostaa Table- ja Range-funktiolla:
In[6]:=
Out[6]=
In[7]:=
Out[7]=
In[8]:=
Out[8]=
Listat voivat olla useampikertaisia ja niiden käsittelyyn on käytettävissä melkoinen määrä funktioita; seuraavassa on vain muutama yksinkertainen esimerkki.
In[9]:=
Out[9]=
In[10]:=
Out[10]=
In[11]:=
Out[11]=
In[12]:=
Out[12]=
Listat työkaluna
Listoja käytetään työkaluina monissa komennoissa. Jos nämä kohdistuvat esimerkiksi useaan yhtälöön, joissa on useita muuttujia tai tuntemattomia, nämä annetaan usein listoina.
In[13]:=
Out[13]=
In[14]:=
Out[14]=
Kun yhtälöiden kuvaajat piirretään samaan kuvioon yhdellä käskyllä, annetaan yhtälöt listana. Piirtokäskyssä muuttujien vaihteluvälit annetaan myös listoina.
In[15]:=
Out[15]=
Yhtälöparia ratkaistaessa yhtälöt annetaan listana, samoin tuntemattomat. Ratkaisu voidaan sijoitta johonkin lausekkeeseen poimimalla listana saatavasta ratkaisusta haluttu alkio.
In[16]:=
Out[16]=
Leikkauspisteiden etäisyydet origosta voidaan laskea varsin yksinkertaisesti:
In[17]:=
Out[17]=
Sama koskee kuvan piirtämistä:
In[18]:=
Out[18]=
Kovin monien rakenteiden pakkaamista samalle riville ei kuitenkaan voi suositella: syntyy herkästi ajatusvirheitä, joiden seurauksena on hämmästyttäviä virheilmoituksia ja käsittämätön tulos.
Vektorit
Vektorit esitetään listoina. Esimerkkinä kaksi avaruusvektoria.
In[19]:=
Out[19]=
In[20]:=
Out[20]=
Vektorioperaatioille on omat symbolinsa: skalaaritulo esitetään pisteellä (tai kahden argumentin funktiolla Dot), vektoritulo funktiolla Cross. Vektorin pituus saadaan funktiolla Norm. Näitä käyttäen voidaan suorittaa vektorialgebran laskuja.
In[21]:=
Out[21]=
In[22]:=
Out[22]=
In[23]:=
Out[23]=
In[24]:=
Out[24]=
In[25]:=
Out[25]=
Oletuksena on, että kulmat ilmaistaan radiaaneissa; asteiden käyttöä varten on valmiiksi määriteltynä vakio Degree:
In[26]:=
Out[26]=
In[27]:=
Out[27]=
In[28]:=
Out[28]=
Tarkistuksen vuoksi vektoritulon pituutta koskeva kaava:
In[29]:=
Out[29]=
Skalaari- eli sisätulo muissa yhteyksissä
Skalaaritulo on käytettävissä myös mille tahansa listoille, joissa on yhtä monta alkiota. Listojen ei siis välttämättä tarvitse olla (2- tai 3-komponenttisia) vektoreita.
Polynomin muodostus:
In[30]:=
Out[30]=
In[31]:=
Out[31]=
In[32]:=
Out[32]=
Matriisit
Matriisit esitetään kaksinkertaisina listoina. Ns. kaksiulotteinen tulostus voidaan saada aikaan kohdistamalla matriisiin funktio MatrixForm.
In[33]:=
Out[33]=
In[34]:=
Out[34]//MatrixForm=
In[35]:=
Out[35]=
In[36]:=
Out[36]//MatrixForm=
Matriisituloa merkitään pisteellä kuten skalaarituloakin:
In[37]:=
Out[37]=
In[38]:=
Out[38]//MatrixForm=
Matriisista voidaan poimia alkioita indeksimekintää käyttäen:
In[39]:=
Out[39]=
In[40]:=
Out[40]=
Matriiseihin voidaan kohdistaa erilaisia funktioita:
In[41]:=
Out[41]//MatrixForm=
In[42]:=
Out[42]=
In[43]:=
Out[43]=
Matriisin ominaisarvojen ja ominaisvektoreiden laskemiseen on valmiit funktiot. Tulokset voivat joskus näyttää hieman yllättäviltä:
In[44]:=
Out[44]//MatrixForm=
In[45]:=
Out[45]=
In[46]:=
Out[46]=
Numeerinen laskeminen onnistuu:
In[47]:=
Out[47]=
In[48]:=
Out[48]=
Root[p,k] on polynomiyhtälön p(x)=0 k:s juuri. Polynomi p on tässä ilmaistu ns. puhtaana funktiona (pure function).