maanantai 18. maaliskuuta 2019

Matematiikkaa kokeilemalla

Erinäisistä syistä tulin hiljattain syöttäneeksi laskentaohjelma Mathematicalle lausekkeen $(-1)^{i-1}$, missä $i$ tarkoittaa imaginaariyksikköä. Tämä sieveni muotoon $-e^{-\pi}$, ei tosin suoraan, mutta komennolla ComplexExpand ohjattuna. Saadun tuloksen korotin potenssiin $i$, siis $(-e^{-\pi})^i$, jolloin tulos oli uudelleen $-e^{-\pi}$.

Kyseessä on tietenkin hieman eksoottinen kompleksiluvuilla laskeminen ja on paikallaan pyrkiä verifioimaan tulokset jollakin tavoin. Yhtenä mahdollisuutena on miettiä, miten tällaiset potenssit oikeastaan pitäisi määritellä ja mitä määritelmä sitten antaisi. Myös kokeilemalla voi edetä ja testata ohjelmiston johdonmukaisuutta laskemalla vastaavat tulokset numeerisesti. Tällöin tulokset olivat seuraavat: \begin{align*} a &= (-1)^{i-1} \approx -0.0432139 - 5.29218 \cdot 10^{-18}\,i \ ,\\ b &= a^i \approx -23.1407 - 2.83392 \cdot 10^{-15}\,i\ . \end{align*} Edellinen näyttää hyvältä, sillä $e^{-\pi} \approx 0.0432139$ ja luokkaa $10^{-18}$ oleva imaginaariosa on $= 0$ numeerisen laskennan tarkkuudella. Jälkimmäinen sen sijaan on kummallinen, sillä $e^{\pi} \approx 23.1407$. Laskeeko Mathematica väärin?

Samat numeeriset tulokset antaa Matlab-klooni Octave. Olisiko Mathematican symbolisesti laskettu tulos väärin?

Kaikki on kuitenkin kunnossa ja Mathematica laskee sekä symbolisesti että numeerisesti juuri niin kuin pitääkin. Tämän ymmärtämiseksi on kuitenkin paneuduttava yleisen potenssin määrittelyyn.

Kompleksinen eksponenttifunktio voidaan määritellä joko sarjakehitelmällä tai hieman läpinäkymättömästi Eulerin kaavalla:
\[ e^z = \sum_{k=0}^\infty \frac{z^k}{k!} = e^x (\cos y + i\sin y), \] missä $z = x + iy$. Tämän käänteisfunktio on (luonnollinen) logaritmi $\log$, joka saadaan esittämällä $z$ napakoordinaateissa yhtälössä $e^w = z$ ja ratkaisemalla $w$: \[ w = \log z = \log|z| + i(\arg z + 2k\pi). \] Tässä $k$ on tavalliseen tapaan kokonaisluku ja $\arg$ tarkoittaa kompleksiluvun argumenttia eli napakulmaa, joka valitaan väliltä $]-\pi,\pi]$. $\log|z|$ on positiivisen reaaliluvun logaritmi ja määritelty reaalialueelta tunnetulla tavalla. (Kompleksianalyysissa on yleisesti tapana käyttää funktion nimenä $\log$ eikä $\ln$. Funktioiden määrittelystä tarkemmin esimerkiksi dokumentissa http://matta.hut.fi/matta/kompleksiluvut/cluvut.pdf.)

Jos valitaan $k = 0$, jolloin imaginaariosa on välillä $]-\pi,\pi]$, kyseessä on funktion päähaara.

Yleisen potenssin määrittely perustuu eksponenttifunktion ja logaritmifunktion käyttöön: \[ a^b = (e^{\log a})^b = e^{b\log a}, \] missä käytetään logaritmin päähaaraa.

Tällöin on \begin{align*} (-1)^{i-1} &= (e^{i\pi})^{i-1} = e^{(-1-i)\pi} = e^{-\pi}\,e^{-i\pi} = -e^{-\pi}\ ,\\ (-e^{-\pi})^i &= (e^{\log(-e^{-\pi})})^i = (e^{\log(e^{-\pi}) + i\pi})^i = (e^{-\pi + i\pi})^i = e^{-i\pi}\,e^{-\pi} = -e^{-\pi}\ . \end{align*} Symboliset tulokset ovat siis oikein.

Entä numeeriset? Luvun $-e^{-\pi}$ napakulma on $\pi$, sillä napakulma valitaan väliltä $]-\pi,\pi]$. Sen numeerisen approksimaation $-0.0432139 - 5.29218 \cdot 10^{-18}\,i$ napakulma sen sijaan on hyvin lähellä arvoa $-\pi$ negatiivisen, vaikkakin lähellä nollaa olevan imaginaariosan takia. Napakulmalla on $2\pi$:n suuruinen hyppyepäjatkuvuus negatiivista reaaliakselia ylitettäessä. Tämä muuttaa tilannetta numeerisessa laskennassa ja tulos on likimain \[ (e^{-\pi - i\pi})^i = e^{-i\pi}\,e^{\pi} = -e^{\pi} \approx -23.1407. \]
Kokeilevan matematiikan harrastaja piirtää vielä mielellään funktion $z^i = (x + iy)^i$ reaaliosan kuvaajan. Tämä on tavallinen kahden reaalimuuttujan reaaliarvoinen funktio $f(x,y) = \text{Re}(x + iy)^i$, jonka kuvaajasta epäjatkuvuuskohta selvästi näkyy:

perjantai 8. maaliskuuta 2019

Mikä on neliöjuuri?

Kompleksilukuihin perustuva lasku
\[ -1 = i \cdot i = \sqrt{-1}\sqrt{-1} = \sqrt{(-1)(-1)} = \sqrt{1} = +1 \] herättää aina toisinaan ihmetystä. Koska tunnetusti $-1$ ja $+1$ eivät ole sama asia, niin jonkin yhtäläisyysmerkin täytyy olla väärä. Mutta mikä?

Vastaus riippuu siitä, mitä neliöjuurella tarkoitetaan. Ainakin vielä puoli vuosisataa sitten kouluissa opetettiin, että neliöjuurella on kaksi arvoa, esimerkiksi $\sqrt{4} = \pm 2$. Sittemmin on yleistynyt määrittely, että neliöjuuri tarkoittaa aina positiivista vaihtoehtoa: $\sqrt{4} = +2$. Aiemman määritelmän mukaan neliöjuuri ei kaksiarvoisena ole funktio siinä mielessä, kuin funktioita nykyään yleensä ajatellaan. Jälkimmäisessä määrittelyssä on kyse funktiosta, jota selvyyden vuoksi ehkä kannattaisi kutsua juurifunktioksi tai neliöjuuren päähaaraksi.

Asiasta tulee hieman mutkikkaampi, jos tarkastellaan kompleksilukujen neliöjuuria. Esimerkiksi sekä luvun $-2+i$ että luvun $2-i$ toinen potenssi on $3-4i$. Kumpi olisi oikeutetummin $\sqrt{3-4i}$ ?

Luontevaa onkin joko ajatella neliöjuurta kaksiarvoisena (ja yleisemmin $n$:ttä juurta $n$-arvoisena) tai kiinnittää toinen (tai $n$:nnen juuren tapauksessa jokin) arvoista päähaara-arvoksi. Kumpi on parempi, riippuu yhteydestä. Molempia käytetään. Laskentaohjelmat käyttävät päähaara-arvoa, jolloin neliöjuuri on funktio. Neliöjuuren päähaara valitaan tällöin siten, että juuren napakulma on välillä $]-\pi/2,\pi/2]$, ts. reaaliosa on positiivinen. Jos reaaliosa on $= 0$, tulee imaginaariosan olla positiivinen (jolloin napakulma on $\pi/2$, ei $-\pi/2$). Siten esimerkiksi $\sqrt{-1} = i$ (eikä $-i$). Määrittely antaa positiivisten reaalilukujen neliöjuurille positiiviset arvot, kuten pitääkin.

Vastaavaan tapaan valitaan $n$:nnen juuren päähaara, mutta tilanne on hieman mutkikkaampi.  Lukija voi katsoa vaikka dokumenttia http://matta.hut.fi/matta/kompleksiluvut/cluvut.pdf.

Mikä alkuperäisen laskun yhtäläisyysmerkeistä sitten on väärä? Jos neliöjuurta ajatellaan kaksiarvoisena, pitäisi lopussa olla $\sqrt{1} = \pm 1$ ja kahdesta mahdollisesta merkistä pitäisi valita sopiva, ts. miinus. Jos neliöjuuren merkki tarkoittaa päähaaran mukaista funktiota, on keskimmäinen yhtäläisyysmerkki väärä. Yleisesti ei nimittäin päde $\sqrt{z_1}\sqrt{z_2} = \sqrt{z_1z_2}$. Kaikki tavanomaiset laskusäännöt eivät siirrykään rajoituksitta kompleksialueelle.

Esimerkkinä Mathematicalla tehty lasku, jonka voi toki laskea helposti käsinkin: