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:

Ei kommentteja: