keskiviikko 29. marraskuuta 2023

MatTa-sivusto


Aikaa eläkkeelle jäämisestäni on ehtinyt kulua seitsemäntoista vuotta. Viimeiset varsinaiset vuoteni työelämässä kuluivat matematiikan alan digitaalisten opiskelumateriaalien kehittelyssä Teknillisessä korkeakoulussa, Aalto-yliopiston edeltäjässä. Tuotokset julkaistiin verkossa osoitteessa http://matta.hut.fi. Projektin nimenä oli MatTa, jonkinlainen lyhenne sanoista MATematiikkaa TietokoneAvusteisesti.

Verkkosivut — MatTa-sivusto — ovat olleet olemassa tuosta ajasta lähtien. Kävin syksyllä vanhalla työpaikallani ja sivusto tuli puheeksi. Olisiko aika poistaa vai mitä sille tehtäisiin? Lokitiedot osoittivat kuitenkin, että ainakin osalla materiaaleista oli edelleen käyttäjiä. Olisiko revisiointi paikallaan? Lupasin katsoa.

Kävin sivuston lävitse. Oli isompi työ kuin kuvittelin. Piti palauttaa mieleen kahdenkymmenen vuoden takaisia ajatuksia. Osa materiaaleista oli auttamatta vanhentunutta, suuri osa animaatioita, jotka eivät enää olleet pitkään aikaan toimineet. Matemaattinen sisältö ei niinkään vanhene, tietotekniset ratkaisut kyllä. Karsin vanhentuneet pois, jätin jäljelle materiaalit, joilla jotenkin voi kuvitella olevan vielä käyttöä. Näihinkin toki jäi vanhentuneita linkkejä enkä ryhtynyt varsinaisiin paikkauksiin.

Sivustolla on nyt uusi osoite: https://matta.math.aalto.fi/. Ainakin jonkin aikaa vanhasta osoitteestakin ohjataan tänne.

Avaamalla osoitesivun lukija näkee parhaiten, millaisista materiaaleista on kyse. Lyhyesti sanottuna taso ulottuu lukion pitkästä matematiikasta yliopisto-opintojen ensimmäiseen, osittain ehkä toiseen vuoteen. Lisäksi on alkeisopas LaTeXin ja Mathematica-laskentaohjelman käyttöön. Lukion osalta on tosin ehkä todettava, että nykyisiin digikirjoihin tottuneet opiskelijat saattavat kokea materiaalin vanhentuneeksi ja haasteelliseksi (= vaikeaksi).



Lukiolaisen tietosanakirja Iso-M

Erikseen kannattaa mainita tavallisten differentiaaliyhtälöiden opiskelupaketti DelTa, joka voidaan räätälöidä erilaajuisten kurssien materiaaliksi. Kyseessä oli kokeilu digitaalimateriaalin mahdollisuuksista. Kovin paljoa sitä ei kuitenkaan ole käytetty. Räätälöinti ei ole aivan yksinkertaista, mutta jos kiinnostusta löytyy, voin auttaa. (Kun nyt kerran palautin asiat mieleeni.)



DelTa-paketti

Digitaalista opiskelumateriaalia on maailmanlaajuisesti saatavissa paljon, huolellisesti tehdyistä kirjoista fragmentaarisiin artikkeleihin, animaatioihin ja videoihin. Saatavissa rahalla tai ilman. Kieli on useimmiten englanti tai ainakaan muunkielisten löytämistä ei useinkaan edes yritetä. Suomeksikin löytyy kaikenlaista, mutta aika hajanaisesti. Käsittääkseni yliopistoissakin tuotetaan kyllä kurssimateriaaleja, mutta näiden jakelu kurssin ulkopuolelle on vähäistä. Syynä usein ehkä puuttuva viimeistely, jolloin laajemman jakelun kynnys nousee.

Helposti tarjolla oleva materiaali saattaisi lisätä kiinnostusta matematiikkaan. Jonkinlainen ohjaus ja sopivien kokonaisuuksien paketointi olisi tarpeen. Tällaisena asiasta tulee paljolti organisointiongelma. Kuka tai mikä — esimerkiksi yhdistys tai muu organisaatio — ottaa asian hoitaakseen? Rahaakin tietysti tarvitaan.


keskiviikko 15. marraskuuta 2023

Gauss ja 17-kulmio

Kaikkien aikojen merkittävimpänä matemaatikkonakin tunnettu Carl Friedrich Gauss (1777 – 1855) osoitti teoksessaan Disquisitiones Arithmeticae (julkaistu 1801) paljon muun ohella, että säännöllinen 17-kulmio on mahdollista konstruoida geometrisesti, ts. ainoastaan harppia ja viivoitinta käyttäen. Konstruktiota Gauss ei kuitenkaan esittänyt.

Säännöllisten monikulmioiden geometrinen konstruointi on kiinnostanut geometrikkoja antiikin ajoista lähtien. Esimerkiksi viisikulmion konstruktion esittää Eukleides Stoikheia- (Elementa-) teoksensa neljännessä kirjassa propositioina 10 ja 11. (Katso esimerkiksi englanninkielistä tai kreikankielistä esitystä.) Seitsemäntoistakulmion ongelmaa ei kuitenkaan kukaan ole ennen Gaussia ratkaissut.

Miten asiaa voisi nykyisillä työvälineillä tutkia?


Seitsemäntoistakulmio

Seitsemäntoistakulmion piirtäminen grafiikkaohjelmalla on helppoa: Koska piste $(\cos(t),\sin(t))$ sijaitsee origokeskisellä yksikköympyrällä kulman $t$ (radiaaneissa) suunnassa, saadaan 17 tasavälistä ympyrän pistettä lausekkeista \[(\cos(2\pi k/17),\sin(2\pi k/17)),\] missä $k$ saa arvot $0,\ 1,\ 2,\ \dots\,\ 16$. Antamalla $k$:lle lisäksi arvo $17$ saadaan ensimmäinen piste uudelleen. Piirtämällä murtoviiva näiden pisteiden kautta saadaan yksikköympyrän sisällä oleva säännöllinen 17-kulmio.

Toinen vaihtoehto on laskea vaikkapa valmiilla laskentaohjelman komennolla numeerinen ratkaisu polynomiyhtälölle $x^{17} - 1 = 0$. Tällä on 17 ratkaisua, joista yksi on reaalinen, $x = 1$, ja muut kompleksisia. Näiden reaali- ja imaginaariosat antavat samat 17-kulmion kärkipisteiden koordinaatit kuin edellä.

Gauss tutki 18-vuotiaana vuonna 1796 polynomiyhtälöiden ratkaisemista ratkaisukaavoilla, ts. neljän peruslaskutoimituksen ja juurenoton avulla. Toisen asteen yhtälön ratkaisukaavat olivat tunnettuja jo vanhalla ajalla, kolmannen ja neljännen asteen yhtälön ratkaisukaavat olivat löytyneet 1500-luvulla. Viidennen asteen yhtälölle oli yleistä ratkaisukaavaa yritetty menestyksettä löytää parin sadan vuoden ajan, ja alkoi vaikuttaa ilmeiseltä, että sellaista ei ehkä voitaisikaan löytää. Vuonna 1824 Nils Henrik Abel lopulta todisti, että viidennen ja korkeamman asteen yhtälöille ei yleistä ratkaisukaavaa ole.


Gaussin esitys Disquisitiones Arithmeticae -teoksessa. Juurilausekkeessa
on painovirhe: neljännen termin edessä tulee olla plusmerkki.

Ratkaisu peruslaskutoimitusten ja juurten ottojen avulla voi kuitenkin olla erikoistapauksissa mahdollista. Gauss tutki muun muassa muotoa $x^n - 1 = 0$ olevia yhtälöitä ja totesi, että eräissä tapauksissa niiden ratkaisut voidaan lausua juurilausekkeita käyttäen. Arvo $n = 17$ on tällainen. Siten esimerkiksi pisteen $P_1$ x-koordinaatille $\cos(2\pi/17)$ saadaan lauseke \[-\frac{1}{16}+\frac{\sqrt{17}}{16}+\frac{1}{16} \sqrt{34-2\sqrt{17}}+\frac{1}{8} \sqrt{17+3 \sqrt{17}-\sqrt{34-2\sqrt{17}}-2 \sqrt{34+2 \sqrt{17}}}.\] Tämän löytäminen ei ole aivan helppoa enkä paneudu siihen, en myöskään lukua $n$ koskeviin ehtoihin.

Symbolisen laskentaohjelman käyttäjä voi yrittää löytää edellä mainitun juurilausekkeen muokkaamalla kosinifunktion arvoa $\cos(2\pi/17)$. Laskentaohjelma Mathematican komento ToRadicals tuottaa lausekkeen \[\frac{1}{4 \sqrt{\frac{2}{15+\sqrt{17}-\sqrt{2\left(17-\sqrt{17}\right)}+\sqrt{2 \left(34+6\sqrt{17}+\sqrt{2 \left(17-\sqrt{17}\right)}-\sqrt{34\left(17-\sqrt{17}\right)}+8 \sqrt{2\left(17+\sqrt{17}\right)}\right)}}}}.\] En saanut Mathematicaa sieventämään tätä. Sen ja edellä saadun juurilausekkeen erotuksen ohjelma kuitenkin sieventää nollaksi, joten ne esittävät samaa lukua.

Mistä Gauss sitten päätteli, että 17-kulmio voidaan piirtää geometrisesti? Mainittu kosinin arvo riippuu vain yhteen-, vähennys-, kerto- ja jakolaskusta sekä neliöjuuren otosta, ja jokainen operaatio voidaan erikseen toteuttaa harpilla ja viivoittimella. Janojen $a$ ja $b$ yhteen- tai vähennyslasku tarkoittavat janojen asettamista samalle suoralle, kerto- ja jakolasku niiden sekä yksikköjanan asettamista kahdelle toisensa leikkaavalle suoralle ja nelijuuren otto suorakulmaisen kolmion piirtämistä puoliympyrän sisään; kuviot alla. Täten juurilausekkeen edustama pituus saadaan vaiheittain konstruoiduksi. Kun yhden 17-kulmion kärjen paikka on täten konstruoitu, loput saadaan harpilla helposti. Tällä tavoin tehty konstruktio ei ole kovin sujuva, mutta se osoittaa  geometrisen konstruktion mahdolliseksi. Gaussille riitti tämä. Myöhemmin on toki esitetty sujuvampiakin konstruktioita.

Juurilausekkeen konstruoinnissa tarvittavat geometriset alkeiskonstruktiot.

Tarkempia tietoja ja yksityiskohtia löytyy ainakin Wikipedia-artikkeleista Konstruoituva monikulmio ja Seitsentoistakulmio sekä niiden englannin- (tai muun-) kielisistä vastineista. (Näissä on eroja. Esimerkiksi saksankieliset näyttävät sisältävän materiaalia, jota muissa ei ole.) Artikkelit sisältävät myös animaatioita 17-kulmion geometrisesta konstruointiprosessista. Juurilausekkeen laskeminen löytyy tietenkin Disquisitiones Arithmeticae -teoksesta ja ainakin Jörg Bewersdorffin kirjasta Galois Theory for Beginners, varmaan muualtakin. Saksankielisessä Wikipedia-artikkelissa näyttää periaate myös olevan kuvattuna.


sunnuntai 18. kesäkuuta 2023

Tekoäly, faktat ja laskeminen

Helsingin korkein rakennus?
(© Joneikifi, CC BY-SA 4.0)

Jatkan edellisessä blogipostauksessa aloittamaani tekoälyn pohdiskelua. Viime aikoina paljon huomiota herättänyt tekoälybotti ChatGPT juttelee sujuvasti ja inhimillisesti, mutta faktat ja matemaattinen laskeminen eivät ole sen vahvoja puolia. Eikä muuta toki ole väitettykään, kyseessä on ennen muuta ns. kielimalli, ts. se on opetettu isolla tekstimassalla, minkä perusteella se rakentaa oman tekstinsä, mutta ajattelua tai edes faktakokoelmia sillä ei ole. Matematiikastakaan se ei kovin hyvin suoriudu, vaikka saa myös oikeita tuloksia; esimerkkinä vaikkapa YouTube-video Can ChatGPT Pass the Oxford University Admissions Test?.

ChatGPT muodostaa yhden askelen siinä jatkumossa, jonka tunnetuimpia palasia ovat hakukoneet, Wikipedia ja lukuisat muut verkon informaatiolähteet. Tällainen on myös kesäkuussa 1988 symbolisen laskennan ohjelmistona syntynyt Wolfram Researchin Mathematica. Historiansa aikana siihen on ympätty — usein ilmeisesti kokeellisina hankkeina — monenlaisia piirteitä: ohjelmointikieli (Wolfram Language) on monipuolistunut, on luotu käsite computable document format (CDF), tarjolla on alkeisgeometrista päättelyä, monenlaista dataa sisältäviä tietokantoja jne. Käyttöliittymänä on Mathematica-ohjelmiston lisäksi verkkosivusto Wolfram|Alpha.

Kovin kaukana ei ole ajatus yhdistää ChatGPT:n kielimalli ja Mathematican laskentakyky sekä Wolfram Researchin tietokannat. Tämä antaa mahdollisuuden paikata ChatGPT:n faktatiedoissa ja matemaattisissa kyvyissä olevia puutteita. Itse asiassa yhdistämiseen tarvittava plugin on olemassa, kuten Stephen Wolfram kirjoittaa blogissaan. Pluginin avulla ChatGPT käy tarvittaessa tutkimassa tietokantoja.  En ole kokeillut, ainakaan vielä. Ei ilmeisesti ole vapaasti käytettävissä.

ChatGPT pystyy myös ainakin periaatteessa kirjoittamaan ohjelmakoodia Wolfram Languagea käyttäen. Koodi voidaan sitten ajaa Mathematicalla tai Wolfram Researchin pilvipalvelussa (jonka käyttöön tarvitaan sopimus).

Wolfram Researchin resurssit eivät luonnollisestikaan ole ainoa mahdollisuus laajentaa tekoälyjärjestelmien kykyjä. Tähän suuntaan varmasti edetään emmekä vielä ole nähneet alkua enempää.

Missä sitten tällä hetkellä ollaan? Miten luotettavia vastauksia ja miten helposti tekoälyltä saadaan? Seuraavassa kuvaan muutamia kokeilujani.

Yksinkertaista faktaa koskeva kysymys

Esitin ChatGPT:lle kysymyksen: Which is the highest building in Helsinki? Se ilmoitti tietojensa ulottuvan vain syyskuuhun 2021 ja tällöin korkein rakennus oli 134 metriä korkea 'the Maamerkki Tower, also known as the Landmark Tower or Pasila Tripla Tower'. En kommentoinut vastausta, mutta kysyin uudelleen. Tällä kertaa vastaus oli 19-kerroksinen 'the Helsingin Pörssitalo (Helsinki Stock Exchange Building), also known as the KPMG Tower'. Kysyin kolmannen kerran, jolloin vastaukseksi tuli 70-metrinen 'Torni Hotel'.

Kysyin samaa asiaa Mathematicalla Wolfram Researchin tietokannoista. Saman voisi tehdä Wolfram|Alphaa käyttäen. Vastaukseksi tuli 74-metrinen Johanneksen kirkko.

Seuraavaksi kysyin kummaltakin, oliko Englannin kuningas Henrik VIII naimisissa. Molemmat antoivat oikean vastauksen ja luettelivat kaikki kuusi vaimoa avioliittovuosineen.

Epämääräisempi pyyntö

Pyysin luetteloa Helsingissä syntyneistä merkittävistä henkilöistä. (Give a list of the most notable persons born in Helsinki.) Tähän ei tietenkään ole yhtä oikeata vastausta, mutta tulos kertonee jotakin tekoälyn luotettavuudesta. Kärkikymmenikkö:

ChatGPT: Jean Sibelius, Linus Torvalds, Aki Kaurismäki, Tove Jansson, Renny Harlin, Armi Ratia, Tarja Halonen, Juha Kankkunen, Tom of Finland, Esa-Pekka Salonen.

Wolfram Research: Linus Torvalds, Ville Valo, Teemu Selänne, George Gaynes, Tarja Halonen, Tove Jansson, Sam Lake, Michael Monroe, Pihla Viitala, Lauri Ylönen.

Kysyin kummaltakin myös syitä Suomen kansalaissotaan. (What are the reasons for the Finnish civil war in 1918?) ChatGPT antoi noin 300-sanaisen jokseenkin paikkansapitävän selostuksen. Wolfram|Alpha antoi sekalaista faktatietoa sodasta,  kun kysymys tehtiin verkkosivulla, Mathematicasta lähetettyä kysymystä se ei ymmärtänyt.

Ohjelmakoodit

Wolfram|Alpha-spesialisti Michael Trottin artikkelissa 100+ ChatGPT-generated Wolfram Language codes on esimerkkejä ChatGPT:n generoimista koodeista erilaisiin laskentatehtäviin. Ohjelmointikielenä on Mathematican käyttämä Wolfram Language.

Yhtenä esimerkkinä on Wolfram Researchin tietokantoja hyödyntävä koodi, joka tuottaa kartan Saksan dorf-, bach-, berg-, burg- ja feld-loppuisista kaupungeista eri väreillä merkittyinä. Trottin mukaan koodi on ChatGPT:n generoima. Kokeilin vastaavaa Suomen mäki-, järvi-, joki-, salmi- ja lahti-loppuisiin kuntiin sovellettuna. Pyysin ChatGPT:tä kirjoittamaan Wolfram Language -koodin tällaisen kartan tekemiseen käyttäen samoja ilmaisuja kuin Trott. Koodi tuli hetkessä ja siirsin sen ajettavaksi Mathematicaan. Ei toiminut, syntaksivirheitä. Valitin tästä ChatGPT:lle, se pyysi anteeksi ja teki uuden koodin. Ei taaskaan toiminut. Tämä toistui muutaman kerran eikä lopultakaan syntynyt toimivaa. Olisin voinut paikata koodin itse, mutta sen sekavuuden takia muunsin mieluummin Trottin esittämän koodin Suomea koskevaksi. Tulos alla.



Todennäköisesti Trottilla on ollut käytössään uudempi versio ChatGPT:stä, joten hän on voinut saada suoraan toimivan koodin. Toisaalta ChatGPT ei ole deterministinen, vaan se tekee samaankin pyyntöön eri kerroilla erilaisia koodeja. Virheellinenkin koodi voi tietenkin antaa hyvän pohjan kehittelyyn, mikäli sen rakenne on selkeä.

Esimerkki osoittaa myös tietokantojen mukaan kytkemisen mahdollisuudet. Koodi hakee ensin tietokannasta kaikki Suomen kunnat ('cities'). Wolfram Language tarjoaa suhteellisen valmiin keinon verrata näiden nimiä tarkasteltuihin loppuihin. Tietokannasta löytyvät myös kuntien maantieteelliset koordinaatit ja Wolfram Languagesta työkalut karttaprojektioihin ja grafiikkaan. Alla kuva koodista joki-päätteen osalta.



Toisena esimerkkinä pyysin ChatGPT:tä tekemään kartan lyhimmästä reitistä, jolla kierretään kaikki Euroopan pääkaupungit. Mathematica, Wolfram Language ja tietokannat antavat tähän tarvikkeet, myös valmiin funktion lyhimmän reitin laskemiseen. Tämäkään ei onnistunut. En saanut toimivaa koodia, vaikka yritin antaa yksityiskohtaisia ohjeita koodin kirjoittamiseen. Tein sitten itse. Ei ollut ihan helppoa, sillä vaikka Wolfram Languagessa tarvikkeet ovat olemassa, niiden logiikan hahmottaminen ei ole selkeää. (Lieneekö ChatGPT:lläkin ollut tässä vaikeuksia?) Kuva alla.



Miten luotettavia tekoälyn vastaukset sitten ovat?

Helsingin korkeinta rakennusta koskeva kysymys ei mennyt hyvin, mutta Henrik VIII:n vaimot olivat oikein. Erona tietenkin on, että jälkimmäinen on jo pysyvää tietoa, edellisessä täytyy pysyä ajan tasalla. Kriittisyyden merkitys korostuu, ja tieto lähteestä ja sen ajankohdasta olisi tarpeen. Epämääräisempiin kysymyksiin saadaan tietenkin epämääräisiä vastauksia, mutta ne saattavat olla kelvollisia lähtökohtia omalle pohdiskelulle. Faktoihin ja näkökulmiin ei kuitenkaan voi luottaa ja muitakin lähteitä on syytä katsoa. ChatGPT vähät välitti vaatimuksesta, että olisi pitänyt syntyä Helsingissä, mutta ei esittänyt mitään varauksia.

Ohjelmakoodin generointi ei esimerkeissä sujunut. Riittävän yksinkertaisissa tapauksissa kuitenkin syntyy toimivaa koodia, tai ainakin koodia, joka kelpaa kehittelyn pohjaksi. Wolfram Languagen liittymä tietokantoihin ei minusta myöskään ole selkeä, jolloin edellä olevat esimerkit saattoivat olla hieman epäreiluja ChatGPT:llekin.

Tarkkaavainen lukija on saattanut havaita, että kartta tiettyihin päätteisiin liittyvistä kunnista ei vastaa nykyistä kuntajakoa. Tietokantojen perusteella muodostettu kuntalista on nimittäin vanhentunut. Ongelmallista on myös, mihin termi 'city' oikeastaan viittaa. Ns. ääkkösissä on myös horjuvuutta. Esimerkin kaltaisissa tilanteissa tällaiset puutteet eivät ole kovin merkityksellisiä, mutta tietokannoissa on paljon dataa, joka on pidettävä ajan tasalla (tai lähteistettävä tarkasti). Suhtaudun tietyllä epäluulolla Wolfram Researchin tietokantoihin.

Kaikkiaan: Tekoälyllä on hauska leikkiä, ja hyötyäkin siitä on sopivissa tehtävissä, mutta kriittisyyttä ei pidä unohtaa. Tulevaisuutta varmasti on, mutta luotettavuuden ja käyttökelpoisuuden hyväksi on vielä paljon tehtävää.


tiistai 23. toukokuuta 2023

Tekoälyä kiusaamassa


Bing Image Creatorin vastaus kuvapyyntöön aiheesta
'AI chatbot trying to solve a geometric problem'.

Tekoälybotti ChatGPT:n matemaattiset kyvyt ovat herättäneet mielenkiintoa: Mitä kaikkea se osaa ja mihin kaikkeen sitä voi käyttää?

Kyseessä on kielimalli, joka pystyy juttelemaan varsin luonnollisen tuntuisesti monista asioista monilla kielillä. Matematiikka on kuitenkin hieman eri asia: on pystyttävä ajattelemaan kerätyn valmiin tiedon lisäksi. (Aivan oikein: Matematiikassakin tarvitaan enemmän tai vähemmän ulkoa oppimista. Ilman asioiden tietämistä ei oikein ole, mitä ajatella.)

Timo Tossavainen on Tieteessä tapahtuu -lehdessä esittänyt ja kommentoinut keskustelunsa ChatGPT:n kanssa Bolzano-Weierstrassin lauseen todistamisesta. Varsin vaativaa pyytää tällaista todistusta eikä ChatGPT asiasta oikein suoriutunutkaan. Se osasi kyllä käyttää luontevia aiheeseen liittyviä fraaseja, mutta pitävää logiikkaa ei syntynyt. Eihän sitä voisi kielimallilta vaatiakaan.

ChatGPT osaa ainakin jonkin verran kirjoittaa ohjelmakoodeja. Python tuntuu olevan sille luonteenomainen ympäristö, nyt jo muinaiseksi käynyttä BASIC-koodiakin sain sen tuottamaan. Mathematica-ohjelmiston ohjelmointikieltä, Wolfram Languageakin se pystyy kirjoittamaan; tähän palaan joskus toiste.


Pyysin ChatGPT:ltä koodia kolmion pinta-alan laskemiseen, kun lähtötietoina ovat kärkipisteiden koordinaatit $(x_1,y_1)$, $(x_2,y_2)$, $(x_3,y_3)$. Tuloksena oli lyhyt täysin oikea koodi, joka perustui valmiin kaavan käyttöön: ala on $|x_3(-y_1 + y_2) + x_2(-y_3 + y_1) + x_1(-y_2 + y_3)|/2$. Näinhän asia tietenkin on. Olin vain ajatellut, että lähtökohtana olisi ollut puolet kannan ja korkeuden tulosta.

Jos kaavaa ei ennestään tunne, sen johtaminen lienee yksinkertaisinta ristitulon avulla: kolmion ala on $|\vec{a} \times \vec{b}|/2$, missä $\vec{a}$ ja $\vec{b}$ ovat kolmion sivuvektorit. Vektorialgebraa tuntemattomalle lienee kuitenkin helpointa ottaa lähtökohdaksi puolet kannan ja korkeuden tulosta. Pyysin siis ChatGPT:tä johtamaan käyttämänsä kaavan tästä lähtökohdasta.

Tapansa mukaan ChatGPT oli myönteinen:

Yes, the formula (x1*(y2-y3)+x2*(y3-y1)+x3*(y1-y2))/2 can be derived from the fact that the area of a triangle is half of the product of its base and height. Consider a triangle with vertices A(x1,y1), B(x2,y2), and C(x3,y3). Let the base of the triangle be the line segment BC and let the height of the triangle be the perpendicular distance from A to BC, which we'll call h.

Tämän jälkeen se laski sivun $BC$ pituuden Pythagoraan mukaisesti ja totesi korkeudesta:

The distance between point A and the line BC is given by: h = (|x2*y3 + y2*x1 + x3*y1 - x1*y3 - y1*x2 - y2*x3|) / BC

Kolmion alan lauseke syntyi nyt tietenkin suoraviivaisesti, mutta en ollut tyytyväinen, vaan kysyin, mistä se sai korkeuden lausekkeen.

The expression |x2y3 + y2x1 + x3y1 - x1y3 - y1x2 - y2x3| can be derived using the formula for the distance between a point and a line.

Aivan oikein, näinhän voi edetä ja käyttää analyyttista geometriaa. ChatGPT muodosti suoralle $BC$ yhtälön ja saattoi sen standardimuotoon, vaikkei tätä myöhemmin käyttänytkään. Laski suoran kulmakertoimen ($m = \dots$) ja totesi, että korkeusjanan kulmakerroin on $-1/m$. Tämän jälkeen se muodosti korkeusjanasuoran yhtälön ja tavoitteena oli laskea korkeusjanan kantapisteen koordinaatit kahden suoran leikkauspisteenä. Sitten voikin laskea korkeusjanan pituuden ja kolmion alan lausekkeen.

Kaikki ei kuitenkaan mennyt niin kuin pitäisi. Kulmakertoimen $m$ lausekkeen sijoittaminen jäi puolinaiseksi: yhteen kohtaan sijoitettiin, kaikkialle ei. Yhtälöiden ratkaisemisessa termejä siirrettiin yhtäläisyysmerkin toiselle puolelle, mutta merkin vaihtaminen unohtui. Oikeaan lopputulokseen pääsemistä tämä ei kuitenkaan häirinnyt.

Esitin kritiikkiä:

I have studied your computations and there are some errors in the algebra of equations. But they annul each other, and then, the ultimate result is correct. I think, you shoud be more careful!

ChatGPT:

I apologize for any errors in my computations. As an AI language model, I try my best to provide accurate answers to the best of my knowledge and understanding. However, I understand that mistakes can still happen, and I appreciate you pointing out any errors you have found.

If you could let me know which equations you found errors in, I can take a closer look and see if there are any corrections I can make to improve the accuracy of my answer. Thank you for your feedback and for your understanding.

Huomautin kulmakertoimen sijoittamisesta ja termien merkinvaihdosta. Hän (tuntuu, että näin todellakin on syytä sanoa) kiitti ja erosimme toivottaen toisillemme hyvää yötä.

Mitä tästä kaikesta sitten pitäisi ajatella? Keskustelu saa hämmästyttävän inhimillisiä piirteitä. ChatGPT oli kohtelias eikä jankuttanut (vaikka tätäkin se tekee). Fraasit se hallitsee, mutta ajattelussa — tietenkin — on puutteita. Jään miettimään, kuinka paljon ihmisten välisessä kanssakäymisessäkin on vakiofraaseja ilman syvempää ajattelua.

Entä sitten tekoäly ja matematiikan opiskelu? ChatGPT:n esitystä en matematiikan opiskeluun suosittelisi. Ajattelu — jota siis oikeastaan ei ole — on sekavaa eikä virheettömyydestä ole takeita. Jos opiskelija ei asiaa ennestään tunne, hän hämmentyy. Tiettyjä faktoja ChatGPT:ltä voi kysyä (samoin kuin vaikka Googlen hakukoneelta) ja saattaa hyvinkin saada kelvollisia vastauksia. Hakukoneen käyttöön verrattuna haittana on, että lähdekritiikkiin on vähemmän mahdollisuuksia. Olen kysynyt ChatGPT:ltä matriisin häiriöalttiuden (condition number) määrittelyä ja saanut moitteettoman vastauksen (ainakin siis tässä tapauksessa).

On tietenkin vaikeata sanoa, mihin tekoälyn kehitys johtaa. Luovaan ajatteluun on kuitenkin vielä matkaa, jos siihen koskaan päästäänkään.

torstai 27. huhtikuuta 2023

Trigonometrinen Pythagoras

American Mathematical Society (AMS) julkaisee Math in the Media -sivustoa, jossa nostetaan esiin mediassa olleita matematiikkaa jollakin tavalla käsitelleitä artikkeleita tai uutisia. Osastossa Math Digests näihin liittyy myös koululaisille tarkoitettu Classroom Activities.

Maaliskuussa aiheena oli muun ohella trigonometriaan perustuva Pythagoraan lauseen todistus, jonka Calcea Johnson ja Ne’Kiya Jackson — kaksi koulutyttöä New Orleansista — olivat esittäneet AMS:n paikallisessa kevätkokouksessa. Asia on saanut mediassa yllättävänkin paljon huomiota, sitä ovat käsitelleet ainakin Scientific American, The Guardian ja Popular Mechanics. Viimeksi mainittu väittäen, että matemaatikot eivät koskaan olleet kyenneet tällaista todistusta esittämään (mitä tytöt itse eivät väittäneet).

Taustana on Elisha Scott Loomisin vuonna 1928 julkaistu teos The Pythagorean Proposition, joka käsittelee erilaisia Pythagoraan lauseen todistuksia ja jossa todetaan, että trigonometrinen todistus ei ole mahdollinen, koska se väistämättä perustuisi identiteettiin $\sin^2 x + \cos^2 x = 1$. Tämä on itse asiassa sama kuin Pythagoraan lause, jolloin kyseessä olisi kehäpäättely.

Loomisin väite on moneen kertaan todettu vääräksi ja esimerkiksi sivustossa Cut-The-Knot on trigonometriaan perustuvia todistuksia. Johnsonin ja Jacksonin todistus saattaa olla uusi, mutta mitenkään mullistava se ei ole. Todistusta ei ilmeisesti ole (vielä?) julkaistu, mutta paikallisen televisiokanavan esitelmätilaisuudesta kuvaaman videon perusteella sen todennäköinen rakenne on hahmoteltu.


Lähtökohtana oleva kolmio $ABC$ peilataan kolmioksi $ADC$ ja piirretään suora $AD$. Asetetaan pisteen $B$ kautta janalle $AB$ normaali; tämä leikkaa suoran $AD$ pisteessä $E$. Suorien $AE$ ja $BE$ väliin konstruoidaan alkuperäisen kolmion $ABC$ kanssa yhdenmuotoiset kolmiot, jotka suppenevat kohden pistettä $E$. Yhdenmuotoisuuden perusteella näiden kolmioiden hypotenuusojen pituudet voidaan laskea. Nämä muodostavat kummallakin suoralla $AE$ ja $BE$ geometrisen jonon, jossa suhdeluku on $a^2/b^2$. Janojen $AE$ ja $BE$ pituudet saadaan tällöin geometrisen sarjan summana: \begin{align*} |AE| &= c + \frac{2a^2c}{b^2} + \frac{2a^4c}{b^4} + \dots = c + \frac{\frac{2a^2c}{b^2}}{1 - \frac{a^2}{b^2}} = c\frac{a^2 + b^2}{b^2 - a^2}, \\ |BE| &= \frac{2ac}{b} + \frac{2a^3c}{b^3} + \dots = \frac{\frac{2ac}{b}}{1 - \frac{a^2}{b^2}} = \frac{2abc}{b^2 - a^2}.\end{align*} Kummallakin rivillä viimeinen vaihe on saadun lausekkeen sieventäminen mahdollisimman yksinkertaiseen muotoon.

Koska kolmio $ABE$ on suorakulmainen, on \[\sin(2\alpha) = \frac{|BE|}{|AE|} = \frac{2ab}{a^2 + b^2}.\] Suorakulmaisessa kolmiossa $ABC$ on $\sin(\beta) = b/c$. Tämän jälkeen seuraa vaihe, joka tekee todistuksesta trigonometrisen: Kolmiossa $ABD$ on trigonometrisen sinilauseen mukaan \[\frac{\sin(2\alpha)}{2a} = \frac{\sin(\beta)}{c}.\] Kun tähän sijoitetaan edellä saadut lausekkeet, päädytään yhtälöön \[\frac{b}{a^2 + b^2} = \frac{b}{c^2},\] mistä seuraa Pythagoraan yhtälö $a^2 + b^2 = c^2$.

Oleellista on, että sinilauseen todistus ei perustu yhtälöön $\sin^2 x + \cos^2 x = 1$, jolloin kyseessä ei ole kehäpäättely. Sinilauseen todistus löytynee edelleenkin esimerkiksi lukion oppikirjoista.

Todistus tuntuu aika mutkikkaalta. Eikö vähemmällä selvittäisi?


Suorakulmainen kolmio voidaan tunnetusti jakaa hypotenuusan vastaisella korkeusjanalla kahteen osakolmioon, jotka ovat yhdenmuotoisia alkuperäisen kolmion kanssa. Yllä olevan kuvion mukaisesti on tällöin \[ x = a\sin\alpha,\ y = b\cos\alpha,\ a = c\sin\alpha,\ b = c\cos\alpha.\] Jakamalla ensimmäinen yhtälö kolmannella ja toinen neljännellä, saadaan $x/a = a/c,\ y/b = b/c$. Tästä seuraa \[ c = x + y = \frac{a^2}{c} + \frac{b^2}{c}\] ja edelleen $c^2 = a^2 + b^2$.

Sivuhuomiona voi todeta, että kertomalla ensimmäinen ja kolmas yhtälö keskenään, samoin toinen ja neljäs, päädytään yhtälöön \[\sin^2\alpha + \cos^2\alpha = \frac{x}{c} + \frac{y}{c} = \frac{x + y}{c} = 1,\] joten trigonometrian perusyhtälökin tulee todistetuksi, tosin vain kulmille $0 < \alpha < \pi/2$.

Voi kysyä, onko edellä oleva Pythagoraan lauseen todistus trigonometrinen. Eihän siinä oikeastaan käytetä trigonometriaa, vaan ainoastaan yhdenmuotoisten kolmioiden sivujen verrannollisuutta. Samaa voi kysyä Johnson-Jackson-todistuksesta. Sekin lepää lähinnä kolmioiden yhdenmuotisuuden ja geometrisen sarjan varassa. Mitä yleensä tarkoittaa trigonometrinen todistus? Miten vahvasti trigonometriaa on käytettävä?

Aikojen kuluessa Pythagoraan lauseelle on esitetty lukuisia erilaisia, eri näkökohtiin pohjautuvia todistuksia. Edellä mainitun Loomisin kirjan lisäksi hyvä kokoelma on Cut-The-Knot-sivustossa. Klassikko on tietenkin Eukleideen todistus (englanniksi  tai kreikaksi).

Mielenkiintoista pohdittavaa antaa todistuksien perimmäisten lähtökohtien ('aksioomien') miettiminen. Jos todistuksessa käytetään yhdenmuotoisia kolmioita, niin mitä itse asiassa tarvitaan näiden määrittelyyn? Mitä oikeastaan tarkoittaa jo peruskäsitekin, suora kulma? Eukleideella on oma vastauksensa, modernin aksiomaattisen määrittelyn esittävät esimerkiksi Matti Lehtinen, Jorma Merikoski ja Timo Tossavainen kirjassaan Johdatus tasogeometriaan. Siinä kuin klassisen geometrian perustana on janojen mittaaminen harpilla, voidaan geometrian lähtökohdaksi myös ottaa Pythagoraan lauseeseen perustuva janojen pituus (pisteiden etäisyysfunktio).

Johnsonin ja Jacksonin todistus ei tuo kovin paljon lisää, mutta osaltaan näyttää, miten Pythagoraan lauseeseen kietoutuu melkoinen annos matematiikkaa.

 

sunnuntai 26. maaliskuuta 2023

Mitä matematiikan tehtävässä kysytään 2

Tammikuun blogikirjoituksessani (26.1.2023) esitin seuraavan, mielestäni lukiolaisillekin aivan hyvin sopivan tehtävän, johon ei niinkään haeta tiettyä ratkaisua, vaan tavoitteena on lähteä tutkimaan tilannetta ja katsomaan, mihin ehkä päädytään:

Tasavälisiä kokonaislukuja korotetaan tiettyyn (positiiviseen) kokonaislukupotenssiin. Syntyvästä lukujonosta lasketaan perättäisten lukujen erotukset, jolloin saadaan uusi lukujono. Tästä lasketaan uudelleen perättäisten lukujen erotukset, jolloin syntyy jälleen uusi lukujono. Näin jatketaan ja todetaan, että jossakin vaiheessa saadaan vakiolukujono, ts. kaikki luvut yhtä suuria. Seuraava askel tuottaisi nollajonon. Miksi näin käy? Mistä tässä on kysymys?

Millaista pohdiskelua sitten — esimerkiksi — odottaisin?

Ensimmäinen vaihe ehkä olisi kokeilu joillakin konreettisilla luvuilla, esimerkiksi korottamalla parilliset luvut seitsemänteen potenssiin. Jotta kokeiluista ei tule toivottoman työläitä, tarvitaan jonkinlainen ohjelmointiympäristö. Minä olen käyttänyt Mathematicaa, mutta vaatimattomampi ympäristökin toki käy, kunhan se helposti sallii yksinkertaisen koodin kirjoittamisen. Jonkinlainen ymmärrys ohjelmoinnin perusrakenteista täytyy kokeilijalla tietenkin olla.

Esimerkkitapauksessa saadaan seuraavat erotukset ja kahdeksannella rivillä vakiojono, seuraavilla riveillä nollaa:


Tämän jälkeen varmaan tekisi mieli kokeilla hieman eri luvuilla ja miettiä, millaisten laskujen tuloksena viimeisen rivin vakio syntyy. Ehkä vastauksenkin voi kokeilujen perusteella arvata.

Jos käytettävissä on symbolinen laskenta (kerrankin käyttöä tällekin), voi seuraavaksi katsoa, mitä tapahtuu, kun tasaväliset luvut $a + kd$, $k = 0,1,2,\dots,n$ korotetaan potenssiin $p$. Jotta symbolilaskenta onnistuisi, on luvuille $n$ ja $p$ annettava numeeriset arvot. Tuloksena saadaan iso taulukko muuttujien $a$ ja $d$ polynomeja. Kun näissä ehkä olevat sulkulausekkeet kehitetään (expand, ts. poistetaan sulut, tai ohjelmasta riippuen ehkä myös simplify), saadaan vakioriville monomi, joka ilmeisestikin on $p!\,d^p$. Näyttäisi siis toimivan, eikä lukujen $a$ ja $d$ edes tarvitse olla kokonaislukuja.

Lähtökohtana olivat siis tasavälisten lukujen kokonaislukupotenssit. Mitä tapahtuu, jos kokonaislukupotenssin $x^p$ sijasta käytettäisiinkin jotakin muuta funktiota? Tässä vaiheessa on ehkä helpointa siirtyä symboleista takaisin lukuihin. Toki symbolejakin voi kokeilla, mutta tulokset saattavat olla monimutkaisia ja vaikeasti hahmotettavia. Eikä lukujen käyttökään ole aivan ongelmatonta: murtoluvuilla laskettaessa nollat näyttävät nollilta, mutta desimaaliluvuilla laskettaessa ne saattavat olla esimerkiksi muotoa $1.23 \times 10^{-15}$, mikä on laitteen laskentatarkkuuden rajoissa sama kuin nolla.

Ehkä on helpointa valita aluksi funktioksi polynomi. Astelukua ei kannata valita kovin korkeaksi, jotta polynomin arvot eivät ole kovin suuria. Esimerkiksi voisi verrata polynomeilla $x^3$ ja vaikkapa $x^3 - 3x^2 + 2x$ laskettuja erotuksia. Numeerisessa kokeilussa täytyy vakiot $a$, $d$ ja $n$ valita jollakin tavoin. Tässä on kokeilun vaikeus. Jotkin arvot saattavat antaa kiinnostavia tuloksia, kun jotkin toiset kätkevät kiintoisat ilmiöt, esimerkiksi pienimittakaavaiset muutokset isojen lukujen seassa. Symbolisen laskun perusteella voi arvella, että luvulla $a$ ei ole kovin suurta merkitystä; valitaan siis yksinkertaisuuden vuoksi $a = 0$. Tasavälisiä lukuja pitää varmaan olla riittävän monta, jotta joitakin ilmiöitä saadaan esiin. Luku $n$ voisi ehkä olla muutamia kymmeniä, esimerkiksi $n = 30$. Luvun $d$ valinta on vaikeinta. Kannattaa kokeilla sekä pientä että suurta, esimerkiksi $d = 0.1$ ja $d = 2$. Kummallakin polynomilla saadaan erotusten neljännelle riville sama luku, jos $d = 0.1$, niin $0.006$, ja jos $d = 2$, niin $48$. Muissa erotuksissa kyllä on eroja.

Polynomi $x^3$, $d = 0.1$.

Polynomi $x^3 - 3x^2 + 2x$, $d = 0.1$.

Mielenkiintoisemmaksi osoittautuu jälkimmäinen taulukko. Hahmojen näkeminen pelkistä luvuista on yleensä vaikeata, mutta usein graafinen esitys auttaa. Piirretään jokaisen erotusrivin kuvaaja murtoviivana. Ensimmäisen rivin kuvaaja muistuttaa kolmannen asteen polynomia; tietenkin, koska lähtökohtana on polynomi $x^3 - 3x^2 + 2x$. Seuraava rivi näyttäisi pohjautuvan paraabeliin, ts. toisen asteen polynomiin. Kolmas rivi antaa suoran, ts. ensimmäisen asteen polynomin kuvaajan. Ja neljäs on vakiorivi. Vertailemalla lisäksi nollakohtia ja ääriarvoja voi alkaa epäillä, että asialla on jotakin tekemistä derivoinnin kanssa.

Polynomi $x^3 - 3x^2 + 2x$, $d = 0.1$.

Mitä tapahtuu, jos funtioksi valitaankin $\sin(x)$? Arvoa vakiolle $d$ täytyy taas hieman hakea; $d = 0.3$ voisi olla sopiva. Eri rivien erotukset näyttäisivät nyt antavan kuvaajat, jotka jotenkin näyttäisivät vastaavan funktioita $\sin(x)$, $\cos(x)$, $-\sin(x)$ ja $-\cos(x)$. Amplitudi kuitenkin pienenee ja viimeinen ei enää kovin hyvin erotu. Derivointiarvelu saa kuitenkin vahvistusta.

Funktio $\sin(x)$, $d = 0.3$.

Taulukon erotukset ovatkin itse asiassa erotusosamääriä, joista nimittäjät on unohdettu. Jos jokainen erotus lisäksi jaetaan luvulla $d$, niistä tulee erotusosamääriä, jotka lähestyvät ensimmäisen rivin funktion ensimmäistä, toista, kolmatta jne. derivaattaa, kun $d \to 0$. Tämän pohjalta on ymmärrettävää, että ensimmäisessä esimerkissä laskettu potenssin $x^p$ erotusten $p$:s rivi antaa vakion $p!\,d^p$. Kyseessä on sama asia kuin derivoinnissa \[\mathrm{D}^p\,x^p = p!.\]

Tammikuun blogikirjoituksen viimeisessä kuvassa on kyse Newtonin interpolaatiopolynomin laskemisesta menettelyllä, jota numeerisessa laskennassa aikoinaan käytettiin. Luvut $\Delta^n x_j$ ovat edellä kuvatun taulukon erotuksia laskettuna approksimoitavasta funktiosta (tai datasta) $x$. Näiden avulla muodostettiin interpolaatiopolynomi. Menettely on jäänyt menneisyyteen laskentaohjelmien kehityksen myötä ja varsin harva osaisi yhdistää erotustaulukon interpolaatiopolynomiin. Käsin laskettavan erotustaulukon sijasta numeerikko kirjoittaisikin vaikka seuraavan Mathematica-koodin:

Newtonin interpolaatio


sunnuntai 26. helmikuuta 2023

Paikantamisesta

Mistä auto tietää, missä se kulkee, ja miten kartoille on saatu kaikki paikat oikeaan paikkaan? Erilaisia paikannusmenettelyjä on käytetty pitkään, ja viime vuosien aikana niiden käyttö on valtavasti lisääntynyt. Jokainen älykännykän omistaja kantaa niitä mukanaan. Mutta millaiseen matematiikkaan ne perustuvat?

Kolmiomittausta on kartoituksessa käytetty jo pitkään. Esimerkkinä vaikkapa 1800-luvun alkupuoliskolla mitattu maailmanperintökohteisiinkin kuuluva  Struven ketju, joka Suomessa ulottuu Suomenlahdelta Enontekiölle. Pohjana on kolmioverkko, jonka pisteiden koordinaattien laskeminen havaintoarvoista on trigonometriaa. Kehittelin aiheesta ylioppilastehtävän vuoden 2011 kevään lyhyen matematiikan ylioppilaskokeeseen (tehtävä 12, http://matta.hut.fi/matta/yoteht/). Malliratkaisu tosin on pikemmin analyyttistä geometriaa kuin trigonometriaa (mikä olisi laskennallisesti helpompaa eikä tarvitsisi käsitellä isoja lukuja).

Ylioppilastehtävän trigonometrinen ratkaisu: tuntemattomat $x$ ja $y$ voidaan ratkaista
kahden suorakulmaisen kolmion avulla muodostetusta trigonometrisesta yhtälöryhmästä.


Kolmiomittauksen pohjana on sopivien kulmien mittaaminen ja sivujen pituuksien laskeminen näiden avulla. Entäpä jos meneteltäisiinkin toisin ja mitattaisiin etäisyyksiä, joiden avulla laskettaisiin uusien kärkipisteiden koordinaatit? Tämä luonnollisesti edellyttää, että tekniikka etäisyyksien mittaamiseen on olemassa. 1800-luvulla ei ollut, nykyään on. Mitataan siis etäisyydet kahdesta tunnetusta pisteestä kolmanteen pisteeseen sen sijaan, että mitattaisiin tähtäyssuuntien suuntakulmat. Tällöin saadaan kaksi ympyränkaarta, joiden leikkauspisteessä kolmas piste on.

Tunnetut pisteet $K_1$ ja $K_2$ sekä näistä mitatut etäisyydet $r_1$ ja $r_2$;
etsittävä piste on  $P_1$ tai $P_2$.


Jos tunnettujen pisteiden koordinaatit ovat $(x_1,y_1)$ ja $(x_2,y_2)$ ja mitatut etäisyydet $r_1$ ja $r_2$, niin tuntemattoman pisteen koordinaateille $(x,y)$ saadaan yhtälöt \begin{align*} &(x - x_1)^2 + (y - y_1)^2 = r_1^2, \\ &(x - x_2)^2 + (y - y_2)^2 = r_2^2. \end{align*} Tämä on epälineaarinen yhtälöpari, jolla on kaksi ratkaisua. Jollakin lisäargumentilla on pääteltävä (tilanteen mukaan), kumpaa ratkaisua haetaan.

Maailma kuitenkin on kolmiulotteinen ja vaikkapa lentoliikenteessä (tai sodassa ...) tarvitaan myös korkeuskoordinaatteja. Tällöin tarvitaan kolme tunnettua pistettä, joista etäisyydet mitataan. Ympyrät korvautuvat tällöin kolmella pallolla, joiden keskipisteinä ovat tunnetut pisteet ja säteinä mitatut etäisyydet. Yhtälöryhmässä on kolme pallon yhtälöä: \begin{align*} &(x - x_1)^2 + (y - y_1)^2 + (z - z_1)^2 = r_1^2, \\ &(x - x_2)^2 + (y - y_2)^2 + (z - z_2)^2= r_2^2, \\ &(x - x_3)^2 + (y - y_3)^2 + (z - z_3)^2 = r_3^2. \end{align*} Tälläkin on kaksi ratkaisua.

Kyseessä on satelliittipaikannuksen perusidea. Tunnetut pisteet ovat satelliittien sijaintipisteet. Jokainen satelliitti lähettää signaalia, josta ilmenee sen sijainti ja tarkka kellonaika. Paikannettavassa pisteessä otetaan signaalit vastaan ja lasketaan vastaanottimen kellonajan ero signaalissa ilmoitettuun aikaan. Satelliitti kiertää yleensä noin $20\,000$ kilometrin etäisyydellä maapallon pinnasta ja signaali etenee valon nopeudella, jolloin aikaero on kymmenesosasekunnin luokkaa. Tästä voidaan laskea etäisyys (= aika $\times$ nopeus).

Laskenta edellyttää kuitenkin erittäin tarkkaa ajanmittausta. Satelliteissa on synkronoidut atomikellot, joten ne ovat aina samassa ajassa. Paikannettavassa pisteessä olevassa laitteessa ei kuitenkaan samaan tarkkuuteen ja synkronointiin päästä, vaan ajanmittaukseen sisältyy tuntematon virhetermi $e$. Ratkaisuna on neljän satelliitin käyttö kolmen sijasta. Jos $c$ on valonnopeus ja lasketut aikaerot ovat $d_i$, saadaan yhtälöryhmäksi \begin{align*} &(x - x_1)^2 + (y - y_1)^2 + (z - z_1)^2 = (c(d_1 + e))^2, \\ &(x - x_2)^2 + (y - y_2)^2 + (z - z_2)^2= (c(d_2 + e))^2, \\ &(x - x_3)^2 + (y - y_3)^2 + (z - z_3)^2 = (c(d_3 + e))^2, \\ &(x - x_4)^2 + (y - y_4)^2 + (z - z_4)^2 = (c(d_4 + e))^2. \end{align*} Tässä on neljä tuntematonta, paikannettavan pisteen koordinaatit $(x,y,z)$ ja aikaeron virhetermi $e$.

Neljän pallon leikkaus yhdessä pisteessä, kun säteet on saatu sopiviksi
määrittämällä aikaeron virhetermi. Kuvio on periaatteellinen eikä liity
mihinkään satelliittipaikannustilanteeseen.


Yhtälöryhmän (nopea) ratkaiseminen ei ole aivan yksinkertaista, mutta siihen on kehitetty sekä numeerisia että algebrallisia menetelmiä. Laskenta tapahtuu vastaanottimessa (esimerkiksi autossa), joten kyseessä ei ole mikään suurtietokone. Ratkaisuja on tässäkin periaatteessa kaksi, joten oikea on tunnistettava muilla keinoin (esimerkiksi aikaeron, periaatteellisen sijainnin tai hetkeä aiemmin lasketun sijainnin avulla).

Edellä sanottu antaa vain periaatteellisen kuvan satelliittipaikannuksesta. Käytännössä siihen liittyy paljon muutakin. Jos vastaanotin esimerkiksi löytää neljää useamman satelliitin signaalit, näitä voidaan käyttää tuloksen tarkentamiseen. Koordinaattienmääritys on tällöin ylimäärätty probleema, jolla ei yleensä ole kaikki yhtälöt toteuttavaa ratkaisua, vaan haetaan ratkaisua, joka toteuttaa kaikki yhtälö mahdollisimman tarkoin (esimerkiksi ns. pienimmän neliösumman menettelyllä).

Tarkempia tietoja löytyy esimerkiksi Wikipedia-artikkeleista
https://www.maanmittauslaitos.fi/tutkimus/teematietoa/satelliittipaikannus,
https://en.wikipedia.org/wiki/Satellite_navigation,
https://en.wikipedia.org/wiki/Global_Positioning_System.

Laajasti käytettyjä satelliittipaikannusjärjestelmiä ovat seuraavat: amerikkalainen GPS (Global Positioning System), Euroopan Unionin Galileo, venäläinen GLONASS (Глобальная навигационная спутниковая система) ja kiinalainen BeiDou (北斗卫星导航系统). Usein on tapana puhua GPS-järjestelmistä, koska amerikkalainen oli ensimmäinen. Nykyään kuitenkin mieluummin käytetään lyhennettä GNSS, Global Navigation Satellite System, ja GPS tarkoittaa vain amerikkalaista järjestelmää.